Deployment guide

Coolify

Overview

Coolify is an open source, self-hostable platform as a service (PaaS) and an alternative to Heroku, Netlify and Vercel that you run on your own server. Connect a Git repository, or point Coolify at a Dockerfile or Compose file, and it builds, deploys and reverse-proxies your application from a single dashboard.

This SecureAnyCloud image installs Coolify 4.1.2 from the official installer as a Docker Compose stack and runs it as a systemd service. A self-hosted PaaS with automatic HTTPS, one-click managed databases, environment and secret management and live build logs is online within minutes of launch.

What you get:

  • Coolify 4.1.2 (Apache 2.0) installed from the official installer, pinned so the image never silently upgrades at build time
  • Docker Engine (Docker CE) and the Docker Compose plugin, installed by the Coolify installer as the build and deployment runtime
  • The Coolify Docker Compose stack: the coolify Laravel app, coolify-db (PostgreSQL 15), coolify-redis (Redis 7) and coolify-realtime (the Soketi websocket server for the live dashboard)
  • The dashboard published on port 8000 with Coolify's own first-party email and password authentication
  • Coolify's built-in Traefik reverse proxy (coolify-proxy) owning ports 80 and 443 to route traffic to the applications you deploy
  • All Coolify state (application database, per-application build state, managed SSH keys, backups and source/.env) on a dedicated 40 GiB data disk mounted at /data/coolify, independently resizable and re-provisioned on every VM
  • A per-VM administrator login (email and a 25-character password) generated and seeded at first boot, with open self-registration disabled
  • Two systemd units: coolify.service (a oneshot wrapper around docker compose up -d) and coolify-firstboot.service
  • 24/7 SecureAnyCloud support

Prerequisites

You need an active Azure subscription, an SSH key, and a VNet with a subnet.

Standard_B4ms (16 GB RAM) is the recommended size. It is comfortable for the Coolify stack plus the containers you deploy.

Configure the network security group (NSG) inbound rules as follows:

  • 22/tcp from your management CIDR, for SSH
  • 8000/tcp from the CIDR that needs the Coolify dashboard
  • 80/tcp and 443/tcp from any client CIDR that will reach the applications Coolify deploys through its Traefik proxy
1

Connect over SSH

Connect to the VM over SSH as azureuser, the default login user. Replace <vm-ip> with the public IP of your VM.

ssh azureuser@<vm-ip>
2

Confirm the services are active

sudo systemctl is-active docker.service coolify.service docker --version docker compose version

The output shows active twice, then the Docker Engine version and the Docker Compose v2 plugin version.

3

Confirm the Coolify containers are running

sudo docker ps --format "table {{.Names}}\t{{.Status}}"

The containers coolify, coolify-db, coolify-redis and coolify-realtime should all show the Up / healthy state. Coolify's own Traefik proxy (coolify-proxy) starts when you connect your first server from the dashboard.

4

Confirm the data disk is mounted

All Coolify state lives on a dedicated data disk mounted at /data/coolify. Check the mount:

findmnt /data/coolify df -h /data/coolify

findmnt shows the device backing /data/coolify, and df confirms the 40 GiB volume.

5

Read the per-VM administrator credentials

First boot generates a unique administrator email and password for your instance and writes them to a root-only file. Self-registration is disabled, so this is the only login until you invite more users from the dashboard.

sudo cat /root/coolify-credentials.txt

Note the coolify.url, coolify.admin.email and coolify.admin.pass values. The dashboard URL is http://<vm-ip>:8000/.

6

Confirm the dashboard health endpoint

curl -fsS http://127.0.0.1:8000/api/health

Coolify returns OK once the application is fully up.

7

Verify the administrator login works

Confirm that the per-VM administrator password authenticates against Coolify's login. This script fetches the CSRF token, posts the credentials and checks that the response is a successful redirect.

EMAIL=$(sudo grep '^coolify.admin.email=' /root/coolify-credentials.txt | cut -d= -f2-)
CJ=$(mktemp)
curl -s -c "$CJ" 'http://127.0.0.1:8000/login' >/dev/null
XSRF=$(grep XSRF-TOKEN "$CJ" | awk '{print $NF}' | python3 -c 'import sys,urllib.parse;print(urllib.parse.unquote(sys.stdin.read().strip()))')
curl -s -b "$CJ" -o /dev/null -w 'login HTTP %{http_code}\n' \
  -H "X-XSRF-TOKEN: ${XSRF}" -H 'X-Requested-With: XMLHttpRequest' \
  --data-urlencode "email=${EMAIL}" --data-urlencode "password=<COOLIFY_ADMIN_PASSWORD>" \
  'http://127.0.0.1:8000/login' rm -f "$CJ"

A 302 (redirect to the dashboard) confirms the login succeeded.

8

Sign in to the Coolify dashboard

Browse to http://<vm-ip>:8000/ and sign in with the email and password from Step 5. The login page notes that registration is disabled, because the first-boot root administrator is the only account.

9

Complete the welcome / onboarding

On first sign-in, Coolify shows a short onboarding screen. Click Skip Setup to go straight to the dashboard, or click Let's go! to walk through connecting your first server.

10

The Coolify dashboard

The dashboard is your single pane of glass. The left sidebar lists Projects, Servers, Sources (Git providers), Destinations, S3 Storages, Shared Variables, Keys & Tokens, Settings and more.

The localhost server, which is the Docker host Coolify runs on, is ready to deploy to immediately.

11

Servers

Open Servers to manage the local Docker host and connect additional servers for distributed deployments. The pre-configured localhost entry is the server Coolify itself runs on, so do not delete it.

12

Instance settings

Open Settings to configure the instance. You can set the public URL and name, the instance timezone, the public IPv4/IPv6 used for deployments, transactional email, OAuth providers, automated backups and scheduled jobs.

Set the URL to your own domain here once you front the dashboard with HTTPS.

13

Deploy your first application

From the dashboard, create a Project, then add a resource. Connect a Source (GitHub, GitLab, Bitbucket or a public Git URL), or point Coolify at a Dockerfile or Docker Compose file.

Coolify builds the image, deploys the container, wires it into its Traefik proxy and, optionally, provisions a Let's Encrypt certificate. You can also provision one-click managed databases (PostgreSQL, MySQL, MariaDB, MongoDB, Redis, KeyDB and more) and deploy ready-made services from the catalogue.

Coolify's own Traefik proxy serves the applications you deploy on ports 80 and 443. That is why this image does not run nginx and does not rebind port 80. The dashboard stays on port 8000.

14

Serve the dashboard over HTTPS on your own domain (optional)

To reach the dashboard at https://coolify.example.com instead of http://<vm-ip>:8000, point a DNS A record at the VM's public IP. Then open Settings > Configuration > General and set the instance URL to your domain.

Coolify's Traefik proxy requests a Let's Encrypt certificate and routes the domain to the dashboard. Make sure ports 80 and 443 are open in your NSG so the ACME HTTP-01 challenge and HTTPS traffic can reach the proxy.

15

Day-2 operations

Manage the stack with systemd and Docker Compose:

sudo systemctl status coolify.service --no-pager sudo systemctl restart coolify.service

The Coolify state, including the application database, lives under /data/coolify on the dedicated data disk. It survives instance replacement and can be resized independently.

To upgrade Coolify, review the Coolify release notes first, then run the official upgrade script at /data/coolify/source/upgrade.sh.

Support

SecureAnyCloud provides 24/7 technical support by email and chat. Support covers deployment, connecting Git providers and servers, application and database deployment, the Traefik reverse proxy and HTTPS, environment and secret management, backups and runtime tuning.

All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. Coolify is a trademark of its respective owner.

Deploy on Azure

Launch Coolify 4.1.2 Self-Hosted PaaS on Ubuntu 24.04 LTS on Azure with 24/7 support from SecureAnyCloud.

View this image

Need Help?

Our support team is available 24/7.

sales@secureanycloud.com

Deploy on Azure