AboutWorksServicesBlogFAQContact UsCustomer Area
← All posts22 Oct 2026

Coolify: Run Your Own Heroku, Vercel and Netlify on a Small VPS

What Coolify is and how it helps

Coolify is an open-source, self-hostable platform for deploying apps, databases and services on servers you control. It is licensed Apache-2.0, has over 60,000 GitHub stars, and positions itself as an alternative to Vercel, Heroku and Netlify. It is not a hosting company: you rent a server from a provider like Hetzner or Contabo, and Coolify runs your deployments on it using standard Docker.

What you get:

  • Flexible deploys. Deploy from a Git repository, a Dockerfile, a Docker Compose file or a ready-made Docker image.
  • Databases. PostgreSQL, MySQL, Redis and others, with persistent storage and backup settings.
  • 280+ one-click services. Ready-made templates for popular self-hosted software.
  • Automatic HTTPS. A built-in proxy routes your domains and requests and renews certificates for you.
  • Many servers, one dashboard. One Coolify instance can manage one or more servers.
  • No lock-in. Configuration is saved on your server, and running containers keep running if Coolify goes offline (you lose the dashboard until it returns).

Cost: Coolify vs paid platforms

Self-hosted Coolify costs nothing; you pay only for the server. A comparable 2 CPU / 4 GB workload on a managed platform costs several times more, but those platforms also run the infrastructure for you, so this is not a like-for-like comparison.

Option What you get Monthly price
Heroku Basic dyno 0.5 GB RAM $7
Heroku Standard-1X dyno 0.5 GB RAM $25
Heroku Postgres Essential-0 / Standard-0 1 GB disk / 4 GB RAM $5 / $50
Render web service 2 CPU, 4 GB RAM $85 (workspace plan extra: Hobby $0, Pro $25)
Vercel Pro per developer seat; the free Hobby plan is non-commercial $20
Coolify self-hosted you pay only for the server $0
Coolify Cloud managed Coolify instance, covers 2 servers, $3 per extra server $5
Hetzner VPS (EU, excl. VAT) 2 vCPU, 4 GB RAM about €6 to €20

Prices are list prices checked in October 2026, in USD unless marked, and exclude tax. VPS prices and availability change often: Hetzner raised prices in 2026, and several of its plans showed as unavailable when I checked, so confirm on the provider's page before you order.

The trade-off: you become the sysadmin

Self-hosting moves the work from the platform to you. You handle OS updates, security, backups and uptime, there is no support contract, and a single server is a single point of failure.

  • A great fit for: side projects, internal tools and small business apps.
  • If downtime costs real money: set up backups and add a second server before you rely on it. One Coolify instance can manage several servers.

Choosing a server: Hetzner or Contabo

Coolify's minimum is a Linux server with 2 CPU cores, 2 GB RAM and 10 GB of free disk, on amd64 or arm64, with SSH access. Ubuntu LTS (20.04, 22.04 or 24.04) is the safe choice. My advice is to start with 4 GB of RAM, because building apps uses memory.

Hetzner Contabo
Strength Reliable and well priced; Regular Performance plans use AMD CPUs and NVMe storage More RAM and disk per euro
Watch out for Prices rose in 2026, and several plans showed as unavailable when I checked Shared resources, so performance is less consistent
Good for Apps you depend on Testing and light workloads

Contabo's own page lists a one-month initial contract and 32 TB of outbound traffic. Check live prices and stock on both providers before you order.

Install guide: from empty server to Coolify dashboard

Step 1: Create the server

  1. Hetzner: open the Cloud Console, create a project and click Add Server. Pick a location, the Ubuntu 24.04 image and a plan with at least 4 GB of RAM, add your SSH key, and create the server.
  2. Contabo: order a Cloud VPS, choose Ubuntu, set an SSH key or a password, and wait for the email with the server's IP address.
  3. Copy the server's IP address.

Step 2: Install Coolify

Connect over SSH as root, then run the official install script:

ssh root@YOUR_SERVER_IP
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

The installer requires root access. If you log in as a non-root user with sudo, Coolify's docs describe an option that runs the command with sudo -E.

When it finishes, open http://YOUR_SERVER_IP:8000 in your browser and create your admin account straight away. Whoever reaches the registration page first becomes the instance admin, with root access to your server.

Step 3: Add a domain and lock down the firewall

  1. Create a DNS A record that points a hostname, such as coolify.example.com, to your server's IP address.
  2. In Coolify, go to Settings > General and set URL to https://coolify.example.com. Do this only after the DNS record points at the server, and do not reuse an application's domain for the dashboard. The built-in proxy then requests and renews the HTTPS certificate.
  3. Set your firewall to match the table below.
Port Purpose Keep open?
22 SSH Yes
80 HTTP and certificate generation Yes
443 HTTPS Yes
8000 Dashboard by IP address Close once the domain works
6001 Real-time dashboard updates by IP Close once the domain works
6002 Web terminal by IP Close once the domain works

Keep the SSH rule in place while you edit the others, because a wrong rule can lock you out. Docker can publish ports around some host firewall tools such as UFW, so enforcing these rules in your provider's cloud firewall is the more reliable choice.

Deploy your first app: nginx:alpine

Your first deployment is a plain Nginx container. It proves that your server, Docker, the proxy and the generated domain all work before you connect your own code.

Before you start: open Servers and confirm your server is listed and the proxy shows "Proxy is running". If it is stopped, click Start Proxy.

  1. Click New Project, name it (for example my-first-project) and click Continue.
  2. Open the project, click Create New Resource and choose Docker Image.
  3. In the image field, enter nginx:alpine.
  4. Under network settings, set Ports Exposes to 80.
  5. Keep the generated domain. It looks like http://<uuid>.<server-ip>.sslip.io, works without any DNS, and stays on HTTP, so use it for testing only.
  6. Click Deploy. Coolify pulls the image, starts the container and connects it to the proxy.
  7. Open the application URL. If you see the default Nginx welcome page, the deployment worked.

To use your own domain: create an A record that points a hostname (for example app.example.com) to your server's IP, open the app's Domains field, enter https://app.example.com, and redeploy. The https:// prefix tells the proxy to set up the certificate.

If it fails: check that the image is nginx:alpine and Ports Exposes is 80. A wrong port is the usual cause of "No Available Server", a link that will not open, or a "Site not secure" warning.

Next steps

Once Nginx loads, deploy something real: connect a Git repository, add a database, and configure database backups. When the stakes rise, add a second server so one failure does not take everything down.