1. Start with a Fresh Server
A new Ubuntu 24.04 or Debian 12 server, with nothing else on ports 80 and 443. Do the first steps (SSH key, updates), but skip installing Docker yourself: Coolify does that.
Coolify manages the server over SSH as root, with a key it adds itself. If you turned root logins off, allow root with a key only (never a password) before installing:
echo 'PermitRootLogin prohibit-password' | sudo tee /etc/ssh/sshd_config.d/00-root-key.conf sudo sshd -t && sudo systemctl restart ssh
SSH uses the first value it reads, so if 00-hardening.conf from the first-steps guide sets PermitRootLogin no, change that line there instead.
2. Open the Ports
Coolify's documentation lists these. If you turned on the firewall on your server's page in the dashboard, allow them there:
- 80 and 443 from anywhere: your apps and their certificates.
- 8000, 6001 and 6002, from your own address only: the dashboard, its live updates and its web terminal, until the dashboard has a domain.
- 22: SSH, which Coolify also uses to manage the server.
3. Install
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
It takes a few minutes. Then open http://203.0.113.10:8000 (your server's address) and create the admin account straight away: until you do, whoever reaches the registration page first becomes the admin.
Back up /data/coolify/source/.env somewhere safe. It holds the secrets Coolify needs to restore its own database.
4. Give the Dashboard a Domain
Point an A record such as coolify.example.com at the server, then set it as the instance's domain in Coolify's settings. Once the dashboard opens at https://coolify.example.com, close public access to ports 8000, 6001 and 6002: the dashboard now runs through the proxy on 443.
For apps, a wildcard record (*.apps.example.com) pointing at the server lets Coolify give each app its own name without another DNS change.
5. Deploy an App from Git
- Create a project, then a new resource from a public or private Git repository (GitHub, GitLab and others).
- Coolify detects how to build it (Node.js, Python, PHP, a Dockerfile, a Compose file) and proposes a domain.
- Deploy. Turn on automatic deploys and every push to the branch redeploys the app.
Databases (PostgreSQL, MySQL, Redis and others) are resources too, with scheduled backups that Coolify can send to S3-compatible storage. For settings, see Using object storage.