Requirements
cvm.small) and monitor disk usage.
Install Coolify
Deploy Ubuntu 24.04
Connect over SSH
Prepare DNS and a protected bootstrap path
A record such as coolify.example.com that points to the server’s public IPv4 address. Add an AAAA record only when IPv6 is configured and reachable.Coolify binds these TCP ports during setup:ufw-docker alternative before proceeding; an ordinary UFW deny rule is not sufficient.Run the official installer
/data/coolify, generates secrets and SSH keys, and starts the control plane. Do not install Docker through Snap.Claim the administrator account
http://YOUR_SERVER_IP:8000 is unreachable without the tunnel, then open http://127.0.0.1:8000 through the tunnel. Create the first administrator with a unique password and enable two-factor authentication before adding servers or secrets.Configure the dashboard domain and HTTPS
coolify.example.com resolves to this VPS. In Coolify, open Settings > Configuration > General, set URL to the complete address https://coolify.example.com, and save.Coolify’s integrated proxy requests and renews the TLS certificate. Confirm the dashboard, real-time updates, and web terminal all work through the HTTPS domain before restricting the setup ports.Protect secrets and remove direct public access
APP_KEY, which Coolify needs to decrypt credentials during a restore.After the HTTPS dashboard, real-time connection, and web terminal are verified, keep ports 8000, 6001, and 6002 denied at the network firewall and close the SSH tunnel. Keep 22, 80, and 443 available as required. Recheck the policy whenever you add direct port mappings to a workload.Verify the installation
Persistent Data and Security
Coolify stores its control-plane configuration under/data/coolify, including its environment file, SSH keys, proxy configuration, application definitions, and local backups. Do not edit the base Compose files in /data/coolify/source; updates replace them. Use docker-compose.custom.yml for supported overrides.
80 and 443.
Back Up and Restore
Configure two separate backup layers:- In Settings > Backup, add an S3-compatible destination, schedule a Coolify instance database backup, run it once manually, and verify the object exists in remote storage.
- Save
/data/coolify/source/.env, especiallyAPP_KEY, and/data/coolify/ssh/keys/in encrypted off-server storage. - Configure scheduled backups for each application database and persistent volume. A Coolify instance backup does not include workload databases, application volumes, or arbitrary files on managed servers.
- Record the Coolify version whenever you take a recovery checkpoint.
APP_KEY, load the instance .dmp backup into Coolify’s database using the official restore procedure, restore the SSH keys, and then restore every application database and volume independently. Test this process on a replacement server before relying on it for production recovery.
Update and Roll Back Safely
Before changing the Coolify version:- Create and verify an instance backup plus workload backups.
- Copy
.envand SSH keys off-server. - Review the Coolify releases and wait for active deployments to finish.
- Record the current version shown in the dashboard.
/data/coolify/source/ as upgrade-*.log.
To return to a known release, disable automatic updates and run the installer with the exact target version from the official releases page:
APP_KEY instead of repeatedly downgrading. Coolify control-plane rollback does not roll back deployed applications or their data.
Troubleshooting
The installer finishes but port 8000 does not open
The installer finishes but port 8000 does not open
8000 should remain blocked publicly. Connect through the SSH tunnel, then check sudo ss -lntp | grep ':8000', sudo docker ps --filter name=coolify, and the newest /data/coolify/source/upgrade-*.log. Another service occupying port 8000 can prevent a correct start.The domain works over HTTP but not HTTPS
The domain works over HTTP but not HTTPS
A record points to this server and ports 80 and 443 are publicly reachable. Remove an incorrect AAAA record, then inspect the Coolify proxy logs for ACME errors.The dashboard loads but real-time updates or web terminal fail
The dashboard loads but real-time updates or web terminal fail
6001 and 6002. After domain setup, confirm the instance URL uses https:// and that the proxy routes the dashboard, real-time service, and terminal before closing those ports.Applications fail during builds or the server freezes
Applications fail during builds or the server freezes
free -h, df -h, and sudo docker system df. Builds can exceed the control-plane minimum. Add RAM/storage, use a dedicated build server, and configure Coolify’s automated Docker cleanup rather than deleting active volumes.A restored instance reports an Invalid MAC or encryption error
A restored instance reports an Invalid MAC or encryption error
APP_KEY do not match. Restore the exact key saved with that backup; generating a replacement cannot decrypt existing values.