Skip to main content

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.

  1. Update OS packages before doing anything else, then reboot to apply any kernel upgrades:

    sudo apt update && sudo apt upgrade -y
    sudo reboot
  2. Redirect /data to the data disk via symlink (Coolify hardcodes /data with no override):

    sudo mkdir -p /mnt/data/coolify-data
    sudo ln -s /mnt/data/coolify-data /data
  3. Configure Docker to use the data disk:

    sudo mkdir -p /etc/docker
    sudo 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
  4. Configure containerd to use the data disk:

    sudo mkdir -p /mnt/data/containerd /etc/containerd
    sudo tee /etc/containerd/config.toml <<EOF
    disabled_plugins = ["cri"]
    root = "/mnt/data/containerd"
    EOF
  5. 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 update
    sudo apt-get install -y ca-certificates curl
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
    sudo chmod a+r /etc/apt/keyrings/docker.asc
    echo "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.list
    sudo apt-get update
    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

    When dpkg asks about config.toml, answer N to keep our version.

    Verify Docker is using the right root:

    sudo docker info | grep "Docker Root Dir"
  6. Run the Coolify installer (ignore disk space warnings, it continues after 5s):

    curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
  7. Back up /data/coolify/source/.env to a password manager — it contains APP_KEY, DB_PASSWORD, REDIS_PASSWORD and Pusher keys. Without it you cannot decrypt service environment variables after a restore:

    sudo cat /data/coolify/source/.env