---
title: "How to install Coolify on a VPS and deploy with HTTPS | StreetHosting"
description: "Install Coolify on an Ubuntu VPS, lock down the panel ports, set up a domain with automatic HTTPS and deploy on every GitHub push."
url: "https://streethosting.com.br/en/guides/vps/install-coolify-on-vps"
type: "page"
language: "en-US"
---

VPS · 9 min · Intermediate

Published on Sep 28, 2026 · Updated on Sep 28, 2026

# Install Coolify on a VPS: a deploy panel that is all yours

Coolify turns an empty VPS into a deploy platform with builds, a proxy, certificates and rollback. Here is the install, the firewall details Docker forces on you and the path from repository to a domain with HTTPS.

By [Equipe StreetHosting](https://streethosting.com.br/en/autores#equipe-streethosting) · StreetHosting infrastructure and support team

[Certificates and HTTPS](https://streethosting.com.br/en/guides/topics/ssl) [Deploying and running apps](https://streethosting.com.br/en/guides/topics/deploy) [Linux administration](https://streethosting.com.br/en/guides/topics/linux) [Containers and Docker](https://streethosting.com.br/en/guides/topics/docker)

Summarize with:

[](https://chat.openai.com/?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "ChatGPT") [](https://claude.ai/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Claude") [](https://www.google.com/search?udm=50&aep=11&q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Google AI Mode") [](https://x.com/i/grok?text=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Grok") [](https://www.perplexity.ai/search/new?q=Summarize%20the%20key%20points%20of%20this%20StreetHosting%20guide%3A%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps.%20Highlight%20the%20step-by-step%20instructions%2C%20the%20prerequisites%20and%20the%20most%20common%20mistakes. "Perplexity")

Share:

[](https://x.com/intent/tweet?text=How%20to%20install%20Coolify%20on%20a%20VPS%20and%20deploy%20with%20HTTPS&url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps "Share on X") [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps "Share on Facebook") [](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps "Share on LinkedIn") [](https://wa.me/?text=How%20to%20install%20Coolify%20on%20a%20VPS%20and%20deploy%20with%20HTTPS%20https%3A%2F%2Fstreethosting.com.br%2Fen%2Fguides%2Fvps%2Finstall-coolify-on-vps "Share on WhatsApp")

For agents: Copy as Markdown [.md](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps.md)

In this guide 8 sections

* [What Coolify does](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#o-que-e)
* [Requirements and ports](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#requisitos)
* [Installing with the official script](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#instalacao)
* [Firewall and the Docker catch](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#firewall)
* [Domain and automatic HTTPS](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#dominio-https)
* [First deploy and automatic deploys](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#primeiro-deploy)
* [Common errors](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#erros-comuns)
* [Which VPS to choose](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#onde-rodar)

Quick answer

To **install Coolify on a VPS**, start from a clean Ubuntu LTS with at least 2 vCPUs and 2 GB of RAM, run the official script and create the admin account at `http://IP_DA_VPS:8000` as soon as the install finishes. Then point a domain at the panel, connect the repository through the GitHub App and Coolify takes over builds, HTTPS and a deploy on every push.

## What Coolify does for you[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#o-que-e)

Coolify is an open source deploy platform you install on your own server. It turns an empty VPS into something close to a PaaS: you connect a Git repository, give it the domain and it handles the image build, the reverse proxy, the HTTPS certificate and the version swap on every deploy. Everything runs in Docker containers, so each application stays isolated from the others.

* **Applications from Git:** it detects the language with Nixpacks (or Railpack, still in beta), uses your Dockerfile or brings up an entire Docker Compose file.
* **Databases in a few clicks:** PostgreSQL, MySQL, MariaDB, Redis and MongoDB, with scheduled backups to S3-compatible storage.
* **Proxy and certificates:**a proxy (Traefik by default, Caddy as an option) takes the traffic on ports 80 and 443 and requests the Let's Encrypt certificates on its own.
* **Operations:** automatic deploys, preview environments per pull request, rollback to earlier images and notifications through Discord, Telegram or email.

What it does not do is manage the operating system. Ubuntu updates, SSH access, disk space and backups of the instance itself stay with whoever has root. Since Coolify is, at its core, a Docker orchestrator with a web interface, it is worth understanding how [Docker works on Ubuntu](https://streethosting.com.br/en/guides/vps/install-docker-ubuntu-vps) before you put important projects on it.

## Requirements and ports[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#requisitos)

The official documentation asks for 2 CPU cores, 2 GB of RAM and about 10 GB of free disk just for Coolify. That is the floor for the panel to stay up, not for hosting projects. Every build produces Docker images, every database creates a volume and Coolify keeps old images around for rollback, so the disk fills up faster than it looks.

| Resource | Minimum for the panel       | Recommended with applications                                                |
| -------- | --------------------------- | ---------------------------------------------------------------------------- |
| vCPU     | 2                           | 3 to 4, because builds compete for CPU with the applications already running |
| RAM      | 2 GB                        | 4 to 8 GB, depending on the number of applications and databases             |
| Disk     | 10 GB free                  | 30 GB at minimum; 60 GB or more with databases                               |
| OS       | Ubuntu LTS (22.04 or 24.04) | Ubuntu 24.04 LTS on a clean install                                          |

Prefer a freshly installed VPS. Coolify's proxy needs ports 80 and 443 free, and an Nginx or Apache installed beforehand will fight it for them. If Docker is already installed through snap, remove it: the documentation asks for the official Docker Engine, which the script itself installs when it finds none.

| Port     | Use                                                         | Can it be closed later?                   |
| -------- | ----------------------------------------------------------- | ----------------------------------------- |
| 22/tcp   | SSH, including the access Coolify uses to manage the server | No                                        |
| 80/tcp   | HTTP and Let's Encrypt certificate validation               | No                                        |
| 443/tcp  | HTTPS for the applications and for the panel on its domain  | No                                        |
| 8000/tcp | Panel accessed by IP                                        | Yes, once the panel answers on the domain |
| 6001/tcp | Real-time updates for the panel over IP                     | Yes, same rule                            |
| 6002/tcp | Panel web terminal over IP                                  | Yes, same rule                            |

## Installing with the official script[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#instalacao)

Connect over SSH as root or as a user with sudo, update the system and run the installer:

`sudo apt update && sudo apt upgrade -y curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash`

The script installs basic packages (curl, git, jq and openssl), installs Docker Engine if it is missing, adjusts Docker's log configuration, creates the structure under `/data/coolify`, generates the SSH key the panel uses to manage its own server and brings the containers up. At the end, it prints the access address.

### Create the admin account right away[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#conta-admin)

Open `http://IP_DA_VPS:8000` as soon as the script finishes and create the account. Whoever reaches the registration screen first becomes the instance administrator and, in practice, gets root access to your VPS. Do not leave that screen sitting there.

If you would rather never expose the registration screen at all, the installer can create the administrator during the install:

`sudo -E env ROOT_USERNAME=admin \ ROOT_USER_EMAIL=voce@seu-dominio.com.br \ ROOT_USER_PASSWORD='TroqueEstaSenha#2026' \ bash -c 'curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash'`

The password stays in the shell history. Run `history -c` before you leave the session, or change the password on first login.

### Save the secrets file[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#backup-env)

The file `/data/coolify/source/.env` holds the application key and the internal passwords. Without it, there is no way to restore the instance on another machine. Make a copy your user can read, download it to your computer and delete the copy from the VPS:

`# on the VPS sudo cp /data/coolify/source/.env ~/coolify.env sudo chown $USER: ~/coolify.env # on your computer scp usuario@IP_DA_VPS:coolify.env ./coolify.env # back on the VPS rm ~/coolify.env`

## Firewall: the detail UFW does not handle on its own[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#firewall)

Docker creates its own iptables rules for every port a container publishes, and those rules are evaluated before UFW's. In practice, a port published by Docker stays reachable from the internet even when UFW says it is closed. In Coolify this shows up in two places: the panel ports (8000, 6001 and 6002) and any port mapping you create for an application or a database.

UFW is still useful for everything that runs outside Docker, starting with SSH. Turn on the basics without locking yourself out, following the guide on the [UFW firewall on an Ubuntu VPS](https://streethosting.com.br/en/guides/vps/ufw-firewall-ubuntu-vps):

`sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable`

### Closing 8000, 6001 and 6002 the right way[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#fechar-portas-painel)

Once the panel, the real-time updates and the web terminal are working through the domain (next section), make those ports listen only on localhost. Do not edit `docker-compose.yml`, because Coolify updates overwrite that file. Create an override file instead, which is loaded automatically and survives updates:

`sudo nano /data/coolify/source/docker-compose.custom.yml services: coolify: ports: !override - "127.0.0.1:${APP_PORT:-8000}:8080" soketi: ports: !override - "127.0.0.1:${SOKETI_PORT:-6001}:6001" - "127.0.0.1:6002:6002"`

Validate the combined configuration and apply it by running the installer again, which picks up the new file:

`cd /data/coolify/source sudo docker compose --env-file .env \ -f docker-compose.yml -f docker-compose.prod.yml \ -f docker-compose.custom.yml config > /dev/null && echo "configuracao ok" curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash`

If something goes wrong and the panel disappears, you can still get in through an SSH tunnel: `ssh -L 8000:127.0.0.1:8000 usuario@IP_DA_VPS` and then open `http://localhost:8000` in the browser. The same tunnel works for reaching a database without publishing its port to the internet.

## Panel domain and automatic HTTPS[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#dominio-https)

Create an A record for a panel subdomain, such as `coolify.seu-dominio.com.br`, pointing at the VPS IP. The step by step for each registrar is in [how to point a domain at your VPS](https://streethosting.com.br/en/guides/vps/point-domain-to-vps). Confirm it resolves before moving on:

`dig +short coolify.seu-dominio.com.br # should return the VPS IP`

1. In the panel, open Settings and then Configuration.
2. Under URL, enter the full address with the protocol: `https://coolify.seu-dominio.com.br`.
3. Save and wait a few seconds while the proxy requests the certificate.
4. Open it through the domain and check the padlock before closing the IP ports.

Applications follow the same rule: in the Domains field of each one, enter the full URL with `https://`. The prefix is what tells the proxy to issue and renew the certificate. Multiple domains on the same application go in separated by commas, and Coolify handles the redirect between them.

To avoid creating a DNS record for every project, use a wildcard domain. Create the record `*.apps.seu-dominio.com.br` pointing at the VPS and enter `https://apps.seu-dominio.com.br` as the Wildcard Domain in the server settings. Every new resource gets its own subdomain with HTTPS. Without it, Coolify generates a test address based on the IP (sslip.io), useful for validation but not for production.

## First deploy and automatic deploys[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#primeiro-deploy)

Coolify organizes everything into projects, each project into environments (such as production and staging) and each environment into resources. A resource can be an application, a database or a ready-made service.

1. Create a project and open the production environment.
2. Under Add New Resource, pick the source: a public repository by URL, a private repository through the GitHub App (access only to the repositories you allow) or a deploy key for other Git services.
3. Pick the Build Pack: Nixpacks for common stacks with no configuration, Dockerfile when you want full control of the image, Docker Compose when the application has more than one service.
4. Under Ports Exposes, enter the port the application listens on inside the container, such as 3000 for Node or 8000 for FastAPI.
5. Under Domains, enter `https://app.seu-dominio.com.br`.
6. Add the environment variables and click Deploy, following the build log to the end.

Each variable has two independent toggles: Build Variable and Runtime Variable. Variables read during the build, such as the `NEXT_PUBLIC_` ones in Next.js, need the build option turned on. Secrets the application only reads after it starts should stay runtime-only, because build arguments can end up visible in the image.

The application has to listen on `0.0.0.0` inside the container. If it only listens on localhost, the proxy cannot reach it and the browser shows Bad Gateway. This is the most common error on a first deploy.

### Automatic deploy on every push[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#deploy-automatico)

Applications created through the GitHub App start with Auto Deploy turned on (it lives under Configuration, Advanced). Every push to the configured branch triggers a new build. For that, GitHub needs to reach the panel over the internet, so keep 80 and 443 open. GitLab, Bitbucket and Gitea work with a manual webhook protected by a secret.

If you want to run tests before publishing, let the pipeline do the heavy lifting and only then call Coolify's deploy webhook with an API token. The full flow is in the guide on [deploying to a VPS with GitHub Actions](https://streethosting.com.br/en/guides/vps/github-actions-deploy-to-vps).

Two features save you headaches. With no fixed port mapping and a healthcheck configured, Coolify brings the new container up next to the old one and only switches over when the new one responds, without taking the site down. And under Configuration, Rollback, the previous images are kept so you can go back one version with a click. Rollback swaps only the code: database migrations are not undone.

Prefer to set everything up by hand, with no panel? Compare it with the classic route in [hosting Next.js on a VPS with PM2 and Nginx](https://streethosting.com.br/en/guides/vps/host-nextjs-on-vps).

## Common errors and how to fix them[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#erros-comuns)

| Symptom                                             | Likely cause                                                                       | How to fix it                                                                                           |
| --------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Panel does not open on port 8000                    | Containers did not start or the install stopped halfway                            | Run sudo docker ps, check that the coolify container is Up and run the script again, reading its output |
| Browser shows an invalid certificate from the proxy | DNS does not point yet, port 80 is closed or the domain was saved without https:// | Check with dig, test the domain over HTTP and save it again with https://                               |
| Bad Gateway or no available server                  | Application listens on localhost or the wrong port is set in Ports Exposes         | Make the application listen on 0.0.0.0 and double-check the port you entered                            |
| Build ends with Killed or exit code 137             | Out of memory during the build                                                     | Add swap, avoid simultaneous builds or move to a plan with more RAM                                     |
| Disk full after a few weeks                         | Old images and build cache piling up                                               | Adjust Docker's automatic cleanup in the server options and the image retention                         |
| Installer complains that port 80 is in use          | Nginx or Apache installed beforehand                                               | Stop and disable the service, or use a clean VPS                                                        |

The out-of-memory build error shows up mostly on 2 GB VPS plans with large JavaScript projects. A swap file absorbs the spike at no cost, and the guide on [swap on an Ubuntu VPS](https://streethosting.com.br/en/guides/vps/set-up-swap-ubuntu-vps) shows how to create one in two minutes. If builds keep blowing up, it is a sign the VPS has become too small for the number of projects.

## Which VPS to choose for running Coolify[](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#onde-rodar)

Coolify's load comes in bursts: the build for each deploy takes CPU and memory for a few minutes while the applications keep serving traffic. A high per-core clock shortens that build and speeds up server-side rendering. That is why the [Ryzen 9 9950X VPS](https://streethosting.com.br/en/vps/ryzen), with up to 5.7 GHz, DDR5 memory and NVMe, is the main recommendation. The entry plan, with 1 vCPU, falls below the 2 cores Coolify asks for, so the real starting point is the 2 vCPU plan.

| Use case                                         | Suggested plan                        | Monthly price |
| ------------------------------------------------ | ------------------------------------- | ------------- |
| Panel plus one or two small applications         | Ryzen 2 vCPU, 4 GB DDR5, 40 GB NVMe   | R$ 66.00      |
| Several applications and a PostgreSQL            | Ryzen 3 vCPU, 6 GB DDR5, 60 GB NVMe   | R$ 92.00      |
| Team with staging and production on the same VPS | Ryzen 4 vCPU, 8 GB DDR5, 80 GB NVMe   | R$ 118.00     |
| Many services and larger databases               | Ryzen 6 vCPU, 16 GB DDR5, 160 GB NVMe | R$ 222.00     |
| More vCPU for the money, lower clock             | Xeon 3 vCPU, 4 GB DDR4, 40 GB NVMe    | R$ 43.00      |

Every line is hosted in São Paulo, with Anti-DDoS included, root access, KVM virtualization (Docker runs with no restrictions) and activation within 60 seconds. If the number of projects grows, the upgrade is done from the control panel, charges only the prorated difference for the billing cycle and requires a VM reboot. Compare the two lines on the [VPS plans page](https://streethosting.com.br/en/vps).

* Clean VPS with Ubuntu LTS and 2 vCPUs or more
* Admin account created right after the install
* Installation .env file stored outside the VPS
* Panel answering on the domain with HTTPS
* Ports 8000, 6001 and 6002 restricted to localhost
* No database with a port published to the internet

In this guide

* [What Coolify does](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#o-que-e)
* [Requirements and ports](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#requisitos)
* [Installing with the official script](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#instalacao)
* [Firewall and the Docker catch](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#firewall)
* [Domain and automatic HTTPS](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#dominio-https)
* [First deploy and automatic deploys](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#primeiro-deploy)
* [Common errors](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#erros-comuns)
* [Which VPS to choose](https://streethosting.com.br/en/guides/vps/install-coolify-on-vps#onde-rodar)

## Frequently asked questions

Is Coolify free?

Yes. The version you install on your own server is open source and has no license fee; the only cost is the VPS. There is also a paid cloud version, where the Coolify team runs the panel and you connect your own servers to it.

How much RAM does Coolify need?

The documentation asks for 2 GB of RAM and 2 cores for the panel to run. To host applications and databases on the same VPS, plan on 4 GB or more, because building Docker images eats a lot of memory while the other applications keep running.

Can I install Coolify on a VPS that already has Nginx?

Not recommended. Coolify's proxy needs ports 80 and 443, and an Nginx installed on the system already holds those ports. The cleanest path is a fresh VPS, or migrating the existing sites into Coolify before shutting Nginx down.

Does Coolify issue SSL certificates on its own?

It does. When the application's domain is saved with https:// and DNS already points to the VPS, the proxy requests the certificate from Let's Encrypt and renews it before it expires. Port 80 has to be reachable for the validation.

How do I back up Coolify?

Keep the /data/coolify/source/.env file, which holds the installation keys, somewhere outside the VPS, and set up scheduled backups of the instance and the databases to S3-compatible storage. Test the restore every so often, because a backup that has never been restored does not deserve your trust.

Next step

See Ryzen VPS

Ryzen 9 9950X VPS in São Paulo with root access, NVMe and gamer Anti-DDoS.

[See Ryzen VPS](https://streethosting.com.br/en/vps/ryzen)

[See VPS plans Root VPS in Brazil with NVMe and Anti-DDoS.](https://streethosting.com.br/en/vps)

## Related guides

[VPS Intermediate How to install Docker on Ubuntu 22.04 or 24.04 on a VPS (straight to the point) A stable Docker install on an Ubuntu VPS depends on the right package source and step by step validation. In this guide you set up the official repository, install Engine and Compose, test the daemon and apply basic security measures before deploying applications. 3 min Read guide](https://streethosting.com.br/en/guides/vps/install-docker-ubuntu-vps) [VPS Intermediate How to install Nginx Proxy Manager on a VPS with Docker Nginx Proxy Manager puts a reverse proxy and Let's Encrypt certificates behind a web interface. Learn how to install it with Docker Compose, connect applications running in containers or on the host, and keep the admin panel off the public internet. 9 min Read guide](https://streethosting.com.br/en/guides/vps/install-nginx-proxy-manager-on-vps) [VPS Intermediate How to host Next.js on a VPS with PM2, Nginx and HTTPS Next.js runs in full on a VPS with Node, including server rendering, ISR and Server Actions. Learn how to build it, keep the process alive with PM2, put Nginx in front and update without breaking the site. 9 min Read guide](https://streethosting.com.br/en/guides/vps/host-nextjs-on-vps)

[← Back to the Guide Center](https://streethosting.com.br/en/guides)
