Understanding and installing Coolify#

Coolify is a self-hostable platform for deploying applications, databases and other services. Its interface describes what should run; Coolify connects to the target server over SSH and manages Docker there. Coolify: how it works

In this homelab, Coolify is installed in LXC 120. The blog post records the setup. The installation described here uses the official installer.

What each layer does#

LayerResponsibility in this setup
Proxmox VEmanages the LXC, its disk, CPU, RAM and network interface
Ubuntu inside the LXCprovides the base Linux system, package management and SSH
Docker inside the LXCruns the containers
Coolifymanages deployments, settings and services through Docker

Coolify adds application management to the setup. For the virtualization host itself, see Understanding Proxmox.

A typical deployment starts with source code from a Git repository or an existing container image. Coolify has the image built or downloaded and starts the containers on the chosen server. For web applications, a reverse proxy can use the domain to route requests to the appropriate application. Coolify: deployment and runtime

Installation inside the LXC#

This assumes the prepared Ubuntu 24.04 LXC with nesting, keyctl and working networking. This instance uses:

SettingValue
LXC address10.10.10.20/24
Gateway10.10.10.1
DNSPi-hole at 10.10.10.3
Dashboard after installationhttp://10.10.10.20:8000

As root on the Proxmox host, enter the container:

pct enter 120

Run the following commands as root inside the LXC:

apt-get update
apt-get install -y curl ca-certificates openssh-server
systemctl enable --now ssh

Coolify uses SSH even when deploying on the same system. The official installer normally sets up the appropriate key and connection to the local server. Coolify: OpenSSH

Locale warning in a fresh container#

Enabling SSH during this setup produced:

perl: warning: Setting locale failed.

LANG=en_US.UTF-8 was set, but that locale was unavailable. The fix inside the Ubuntu LXC:

LC_ALL=C apt-get install -y locales
locale-gen en_US.UTF-8
update-locale LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale-gen generates the locale; update-locale sets the system default. export applies to the current shell, while the prefixed LC_ALL=C affects only the package installation command. This step addresses the warning encountered here. Ubuntu: locales, update-locale

Running the installer#

First check that SSH reports active:

systemctl is-active ssh

Then run the official installer inside the LXC:

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

The command downloads the installation script and executes it as root. It sets up Docker and the Coolify services. Once it finishes successfully, open the dashboard at http://10.10.10.20:8000 and create the admin account immediately: the first registered user becomes the administrator. Coolify: installation

For deployments in the same LXC, select the local server. Under Servers → localhost, check that it is reachable and validated. This local server is the environment inside the LXC; there is no need to add the Proxmox host as a deployment target. Coolify: local SSH connection

Access from the home network#

In the current firewall setup, the server network belongs to Internal. Work devices in Trusted may access it. If an additional host or container firewall is enabled, direct dashboard access needs TCP 8000, real-time features need 6001, and the web terminal needs 6002. SSH must remain reachable for Coolify. Coolify: firewall ports

Websites using the integrated proxy will use 80 and 443. A domain must point to the appropriate server, and automated HTTPS certificates require working validation. A local IP address alone does not configure HTTPS. The current LAN access needs no router port forwarding. Coolify: domains

Which data needs backups#

A Coolify instance backup saves management data. Application data, databases and volumes need their own backups. Also store /data/coolify/source/.env, containing the APP_KEY, securely outside the LXC: without that key, encrypted credentials cannot be read after a restore. Coolify: instance backup

Installation is complete. Deploying the first application, adding an HTTPS address and configuring and testing backup recovery are further steps.