This guide walks through migrating ClimWeb from an old server to a new server using Docker and Docker Compose.
-
Docker Engine & Docker Compose Plugin
Ensure Docker Engine is installed and running on the new server:
👉 https://docs.docker.com/engine/install/
Docker Engine provides the runtime environment for containers.
git clone https://github.com/wmo-raf/climweb-docker.git climweb
cd climwebcp docker-compose.yml.sample docker-compose.ymlcp nginx/nginx.conf.sample nginx/nginx.confpwdcd climweb
docker compose exec climweb /bin/bashInside the container:
climweb dbbackup --clean --noinput
climweb mediabackup --clean --noinput
exitscp climweb/backup/*.tar user@NEW_IP_ADDRESS:CLIMWEB_PATH/climweb/backupscp climweb/.env user@NEW_IP_ADDRESS:CLIMWEB_PATH/.envidEdit the .env file and update the UID and GID values to match the new server:
nano .envSave and exit:
- Ctrl + O, press Enter
- Ctrl + X
docker network ls
docker compose up -dsudo chown -R UID:GID climweb/static
sudo chown -R UID:GID climweb/media
sudo chown -R UID:GID climweb/backup(Replace UID and GID with the values from your .env file.)
docker compose exec climweb_db /bin/bashpsql -U <CMS_DB_USER> -d <CMS_DB_NAME>Replace
<CMS_DB_USER>and<CMS_DB_NAME>with values from the.envfile.
Run:
DROP EXTENSION IF EXISTS postgis_topology;
DROP EXTENSION IF EXISTS postgis_tiger_geocoder;Exit:
exit
exitdocker compose exec climweb /bin/bashclimweb mediarestore
climweb dbrestoremv nginx-proxy-manager ..
cd ..
cd nginx-proxy-manager
docker compose up -d