How to Install and Use Coolify: A Step-by-Step Guide
This guide is based on the open-source project Coolify by coollabsio, licensed under Apache-2.0.
Coolify is a self-hosted platform as a service: a web dashboard that turns your own server into something that feels like Heroku, Vercel, or Netlify, without handing your apps to a hosted platform. You connect a Git repository, Coolify builds it into a container, and it serves it with a domain and automatic HTTPS. Databases and one-click services work the same way.
What Coolify is, and who it is for
Coolify sits on top of Docker. It manages the proxy, builds, deployments, rollbacks, and service containers for you, and it can deploy from GitHub, GitLab, Bitbucket, Gitea, a public repository, a Dockerfile, a Docker Compose file, or a prebuilt image. Builds use Nixpacks auto-detection, a Dockerfile you supply, or Docker Compose, depending on what the repository contains.
It suits developers and small teams who already run a VPS and want push-to-deploy without a hosted platform's pricing or limits, and people who want databases and apps on hardware they control. It is not a good first server project if you have never used Docker: the docs assume working Docker knowledge, and a Coolify server is a server you own, including its security updates.
One distinction matters: self-hosted Coolify is free and open source, while Coolify Cloud is a separate paid managed service. This guide covers the self-hosted install only, on a server you provide and pay for.
Prerequisites
- A fresh server: a Linux server with SSH access, running a supported Ubuntu LTS release. Check the installation docs for the current supported list before you provision; the docs have historically named Ubuntu LTS releases, and the installer is happiest on a clean machine.
- Minimum size: the installation docs list 2 CPU cores, 2 GB of RAM, and 10 GB of free disk as the minimum. The docs advise keeping additional space for Docker images, volumes, and backups, and builds on the same server as Coolify need headroom. A machine that only just meets the minimum will struggle with a large build.
- Root access: the automated installer requires root. Log in as
root, or, as a non-root sudo user, follow the non-root variant or the manual method in the installation docs. - Ports: 22 for SSH, 80 and 443 for your apps and HTTPS, and 8000 for the first dashboard setup. Ports 6001 and 6002 are also used for live dashboard updates and the web terminal when you access Coolify by IP address.
- A domain, for real use: you can test with an IP address, but automatic HTTPS needs a domain with a DNS record pointing at the server.
- Nothing else running on the server: the installer installs Docker itself and starts its own proxy on ports 80 and 443. An existing web server, Docker setup, or proxy on those ports will collide with it, so use a fresh server.
Step 1: Install Coolify on a fresh server
Log in to your fresh server over SSH and run the official install script as root:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
As with any install script, you can download it first and read it before piping it to a shell. The script installs Docker if it is missing, pulls the Coolify containers, and starts the dashboard. When it finishes, it prints the dashboard address, which uses port 8000 during setup.
Do not wait to do the next step. The dashboard on port 8000 has no account yet, and the first person to reach the registration page becomes the instance admin. Open it and create your account immediately, before anyone else finds the page.
Step 2: Complete first setup securely
Open the dashboard in your browser:
http://YOUR_SERVER_IP:8000
Replace YOUR_SERVER_IP with your server's public IP address. Create the root admin account with a strong password and an email address you actually check, since password resets go through email.
After registration, confirm your server is connected in the dashboard before deploying anything. In a single-server setup, this is the machine Coolify itself runs on; you can add more servers later as deployment targets, but get one server and one app working first.
Once the dashboard has its own domain, close the setup ports in your firewall. Port 8000, and 6001 and 6002 for IP access, are needed for the first setup, not for day-to-day use behind a domain, where 22, 80, and 443 are the ports that stay open. Also set up operating-system security updates on the server itself: Coolify manages your apps, not your OS patches.
Step 3: Deploy your first app from a public repository
Start with a small public repository, so a build failure is easy to diagnose. In the dashboard, add a new resource and choose a public Git repository. Paste the repository URL, and let Coolify detect the build method: Nixpacks for a typical app with no Dockerfile, your Dockerfile if the repository has one, or Docker Compose for a multi-service app.
Set the port your app listens on, if Coolify does not detect it, and add any environment variables the app needs. Then deploy, and watch the build logs in the dashboard. A successful deploy shows the app running; a failed deploy shows where the build stopped, which is far more useful than re-running the deploy and hoping.
For push-to-deploy on your own repositories, connect a Git provider through a GitHub App or a deploy key, following the docs for your provider. After that, a push to the tracked branch triggers a new build and deployment automatically. For a first test, a manual deploy from a public repository teaches you the same screens without the webhook setup.
Step 4: Add a domain, HTTPS, and a database
Domain and HTTPS. Add a domain to the deployed resource, and create a DNS A record pointing that domain at your server's IP address. Once DNS resolves to the server, Coolify's proxy provisions a Let's Encrypt certificate for the domain automatically, so the app is served over HTTPS without you managing certificates by hand. If the certificate does not appear, check DNS first, then that port 80 is reachable: both are needed for the certificate check.
Database. Add a database or service from the dashboard's one-click services, for example PostgreSQL, MySQL, MariaDB, MongoDB, or Redis. Coolify runs it as a container on your server, and you connect your app to it with the connection details and environment variables Coolify shows for that service. Back up database data on your own schedule: Coolify deploys the database, but your backups are still your responsibility.
Check the running app. After the first deploy, confirm three things: the app answers on its domain over HTTPS, its logs show no repeated restarts, and a second deploy, after a small change, replaces it without manual steps. Those three checks are the whole point of a platform as a service, and they are worth doing before you move a real project onto it.
Common errors and fixes
| Problem | Fix |
|---|---|
| Port 8000 does not load | Check your cloud provider's firewall or security group, not just the server's own firewall. Port 8000 must be reachable for the first setup, and the installer must have finished. |
| Someone else registered first | Do not try to work around a compromised admin account. Start from a fresh install and create the admin account immediately, as in Step 2, before the dashboard is reachable by anyone else. |
| Ports 80 or 443 are already in use | Another web server, proxy, or Docker setup is holding them. Coolify needs those ports for its own proxy, so remove the conflicting service from this server, or use a different, fresh server. |
| Builds fail or the server becomes unresponsive during a build | Builds run on the same server by default and compete with running apps for CPU and memory. Give the server more RAM, or move builds to a separate build server, and check the build logs for the exact failing step. |
| HTTPS certificate does not appear | Confirm the DNS A record points at this server, DNS has propagated, and port 80 is reachable from the internet. A domain pointing elsewhere, or a blocked port 80, stops the certificate check. |
| An app deploys but does not answer | Check the port setting and the app's logs in the dashboard. A wrong port, a missing environment variable, or an app that binds only to localhost inside its container are the usual causes. |
| Disk fills up | Docker images and build cache accumulate. Plan for more disk than the minimum, prune old images deliberately rather than blindly, and keep database backups off the same disk where you can. |
| Updates break a deployment | Check Coolify's update notes and the dashboard's update section before updating a production instance, and back up your server and databases first. A platform update is a change to everything it manages. |
FAQ
Is Coolify free? Self-hosted Coolify is free and open source under Apache-2.0. You still pay your VPS provider for the server, and Coolify Cloud, the managed service, is paid separately.
Do I need Docker knowledge? You do not need to write Dockerfiles for a typical app, since Nixpacks auto-detection handles many stacks. You do need working Docker knowledge to diagnose builds, ports, and storage problems when they happen, because Coolify is a layer over Docker, not a replacement for it.
Can Coolify host any app? Any app that runs as a Docker container, or that Coolify can build into one from a Git repository, a Dockerfile, or a Docker Compose file. Static sites, full-stack apps, databases, and one-click services are all in scope.
Can I run Coolify on a Raspberry Pi or a home server? Any server Coolify supports that meets the size and OS requirements can work, as long as it is reachable in the way your apps need, with ports 80 and 443 available and a domain for HTTPS. A home server behind a residential connection needs extra care with DNS, ports, and uptime.
What happens to my apps if Coolify is down? Running containers keep running, but you lose the dashboard, new deployments, and automatic management until Coolify is back. Keep server backups and know how to restart the Coolify containers from the server itself.
What to try next
Once one app and one database run behind a domain, deploy a second app from your own repository with push-to-deploy, add a staging copy of the same app, and practise a rollback to a previous deployment. That sequence tests the three things Coolify is actually for: repeatable deploys, connected services, and recovery, before a real project depends on them.
This guide was written with AI assistance and checked against the official documentation as of October 30, 2026.