Skip to main content

Coolify — Restore

What the backup covers

  • Coolify database (services, env vars, domains) — via the pg dump in /data/coolify/backups/
  • Coolify config (SSH keys, proxy config, SSL certs, .env) — via /data/coolify/
  • Service data (admin accounts, files, database contents) — via Docker volumes in /mnt/data/docker/volumes/

Coolify's built-in backup only covers its own database, not service data. Volumes must be backed up separately.

Backing up

Run from your local Mac:

rsync -aP --rsync-path="sudo rsync" -e ssh personal-services:/data/coolify/backups/ ~/Desktop/coolify-backup/
rsync -aP --rsync-path="sudo rsync" -e ssh personal-services:/mnt/data/docker/volumes/ ~/Desktop/docker-volumes-backup/
rsync -aP --rsync-path="sudo rsync" -e ssh personal-services:/data/coolify/ ~/Desktop/coolify-config-backup/

Stop Docker before backing up to avoid writes mid-transfer:

sudo docker stop $(sudo docker ps -q)
sudo systemctl stop docker docker.socket containerd

Restoring

1. Set up the new server

Follow the Coolify setup doc completely before restoring.

2. Upload backups to the new server

rsync -aP -e ssh ~/Desktop/coolify-backup/ personal-services:/tmp/coolify-restore/
rsync -aP -e ssh ~/Desktop/docker-volumes-backup/ personal-services:/tmp/volumes-restore/
rsync -aP -e ssh ~/Desktop/coolify-config-backup/ personal-services:/tmp/coolify-config-restore/

3. Stop Coolify

sudo docker stop $(sudo docker ps -q)

4. Restore config and volumes

sudo rsync -aP /tmp/coolify-config-restore/ /data/coolify/
sudo rsync -aP /tmp/volumes-restore/ /mnt/data/docker/volumes/

5. Add the old APP_KEY as APP_PREVIOUS_KEYS

grep APP_KEY /tmp/coolify-config-restore/source/.env
echo "APP_PREVIOUS_KEYS=<old_app_key>" | sudo tee -a /data/coolify/source/.env

6. Restart via the install script

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash

7. Fix SSH access

Coolify connects to the server via SSH as root. Add its public key to authorized_keys:

sudo ssh-keygen -y -f /data/coolify/ssh/keys/<key_file> | sudo tee -a /root/.ssh/authorized_keys

The key file name is whatever is in /data/coolify/ssh/keys/ (no .pub extension).

Then in Coolify: Servers → localhost → Validate & configure.

8. Redeploy services

In the Coolify UI, redeploy each service. The volumes with all data are already in place — they will reconnect automatically.