Coolify
See Coolify's evaluation for why it was chosen over Cloudron/YunoHost. This page is the baseline install — the same regardless of what happens next. From here: Fresh Install for a genuinely first-time setup, or Migration for backing up and restoring from an old server.
Everything below must be configured before the Coolify installer runs. The installer detects an existing Docker installation and skips it, preserving our config.
-
Update OS packages before doing anything else, then reboot to apply any kernel upgrades:
sudo apt update && sudo apt upgrade -ysudo reboot -
Redirect
/datato the data disk via symlink (Coolify hardcodes/datawith no override):sudo mkdir -p /mnt/data/coolify-datasudo ln -s /mnt/data/coolify-data /data -
Configure Docker to use the data disk:
sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<EOF{"data-root": "/mnt/data/docker","log-driver": "json-file","log-opts": {"max-size": "10m","max-file": "3"},"default-address-pools": [{"base":"10.0.0.0/8","size":24}]}EOF -
Configure containerd to use the data disk:
sudo mkdir -p /mnt/data/containerd /etc/containerdsudo tee /etc/containerd/config.toml <<EOFdisabled_plugins = ["cri"]root = "/mnt/data/containerd"EOF -
Install Docker manually so the Coolify installer skips it and leaves our config intact. The Coolify installer uses a non-interactive convenience script which fails silently when dpkg prompts about
config.toml— installing via apt lets us handle that prompt ourselves:sudo apt-get updatesudo apt-get install -y ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.ascsudo chmod a+r /etc/apt/keyrings/docker.ascecho "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian trixie stable" | sudo tee /etc/apt/sources.list.d/docker.listsudo apt-get updatesudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginWhen dpkg asks about
config.toml, answerNto keep our version.Verify Docker is using the right root:
sudo docker info | grep "Docker Root Dir" -
Run the Coolify installer (ignore disk space warnings, it continues after 5s):
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash -
Back up
/data/coolify/source/.envto a password manager — it containsAPP_KEY,DB_PASSWORD,REDIS_PASSWORDand Pusher keys. Without it you cannot decrypt service environment variables after a restore:sudo cat /data/coolify/source/.env