Skip to content

Installation - Self-hosted

To get started, you need a server, it can be a VPS, a Raspberry Pi, or any other server that you have SSH access to.

Requirements

Supported Operating Systems

  • Debian based Linux distributions (Debian, Ubuntu, etc.)
  • Redhat based Linux distributions (CentOS, Fedora, Redhat, AlmaLinux, Rocky etc.)
  • SUSE based Linux distributions (SLES, SUSE, openSUSE, etc.)
  • Arch Linux
  • Alpine Linux
  • Raspberry Pi OS (Raspbian)

Supported Architectures

  • AMD64
  • ARM64

Minimum Required Server

For Coolify

  • 2 CPUs
  • 2 GBs memory
  • 30+ GB of storage for the images.

If you build on the same server and your builds are utilizing all available memory, this may cause the server to become unresponsive. To prevent this, consider enabling swap space on your server (or paying for more resources).

For Your Resources

Choosing your server resources depends on your usage. If you are planning to run a lot of things, you should consider buying a server with more resources.

Hosting Supabase, Appwrite or Posthog requires more resources than hosting a static site (waay more).

Installation

Automated

This works with Docker Engine (not Docker Desktop, for that, go here) on any supported Linux distribution.

  1. SSH Enabled Make sure SSH is enabled and you can connect to your server with SSH from your local machine with root user: more details here.

  2. Curl Installed Make sure curl command is available on your server.

  3. Install Execute the following command on your server with root user.

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

    You can find the source code of this script here.

  4. Open Coolify’s UI Now you can access Coolify on port http://<ip>:8000 of your server.

What it does? The script will do the following on your operating system.

  • Install basic commands: curl wget git jq
  • Docker Engine (24+).
  • Configures proper logging for Docker Engine.
  • Creates directory structure at /data/coolify for all the configuration files.
  • Creates an SSH key for Coolify to be able to manage this server from itself at /data/coolify/ssh/keys/[email protected].
  • Install and start dockerized Coolify.

Manually

  1. SSH Enabled Make sure SSH is enabled and you can connect to your server with SSH from your local machine with root user: more details here.

  2. Curl Installed Make sure curl command is available on your server.

  3. Install Docker Engine (24+) Follow the official documentation to install Docker Engine on your server: Docker Engine Installation.

  4. Create Directories Create the base configuration directories under /data/coolify.

    Terminal window
    mkdir -p /data/coolify/{source,ssh,applications,databases,backups,services,proxy,webhooks-during-maintenance}
    mkdir -p /data/coolify/ssh/{keys,mux}
    mkdir -p /data/coolify/proxy/dynamic
  5. Generate SSH Key Generate an SSH key for Coolify to be able to manage this server from itself.

    Terminal window
    ssh-keygen -f /data/coolify/ssh/keys/[email protected] -t ed25519 -N '' -C root@coolify
  6. Setup Your SSH Key Add your public SSH key to ~/.ssh/authorized_keys. This will allow Coolify to connect to this server from itself.

    Terminal window
    cat /data/coolify/ssh/keys/[email protected] >>~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
  7. Setup Configuration Files Copy the docker-compose.yml, docker-compose.prod.yml, .env.production & upgrade.sh files from Coolify’s CDN to /data/coolify/source.

    Terminal window
    curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.yml -o /data/coolify/source/docker-compose.yml
    curl -fsSL https://cdn.coollabs.io/coolify/docker-compose.prod.yml -o /data/coolify/source/docker-compose.prod.yml
    curl -fsSL https://cdn.coollabs.io/coolify/.env.production -o /data/coolify/source/.env
    curl -fsSL https://cdn.coollabs.io/coolify/upgrade.sh -o /data/coolify/source/upgrade.sh
  8. Set Permissions Set permissions for all the files and directories.

    Terminal window
    chown -R 9999:root /data/coolify
    chmod -R 700 /data/coolify
  9. Generate Values Generate values for the following variables in /data/coolify/source/.env.

    Terminal window
    sed -i "s|APP_ID=.*|APP_ID=$(openssl rand -hex 16)|g" /data/coolify/source/.env
    sed -i "s|APP_KEY=.*|APP_KEY=base64:$(openssl rand -base64 32)|g" /data/coolify/source/.env
    sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env
    sed -i "s|REDIS_PASSWORD=.*|REDIS_PASSWORD=$(openssl rand -base64 32)|g" /data/coolify/source/.env
    sed -i "s|PUSHER_APP_ID=.*|PUSHER_APP_ID=$(openssl rand -hex 32)|g" /data/coolify/source/.env
    sed -i "s|PUSHER_APP_KEY=.*|PUSHER_APP_KEY=$(openssl rand -hex 32)|g" /data/coolify/source/.env
    sed -i "s|PUSHER_APP_SECRET=.*|PUSHER_APP_SECRET=$(openssl rand -hex 32)|g" /data/coolify/source/.env
  10. Default Docker Network Make sure the default coolify Docker network is available.

    Terminal window
    docker network create --attachable coolify
  11. Start Coolify

    Terminal window
    docker compose --env-file /data/coolify/source/.env -f /data/coolify/source/docker-compose.yml -f /data/coolify/source/docker-compose.prod.yml up -d --pull always --remove-orphans --force-recreate
  12. Open Coolify’s UI Now you can access Coolify on port http://<ip>:8000 of your server.

Docker Desktop

  • Install Docker Desktop for Windows.
  • Create a directory that will hold all your Coolify related data. For example in your User directory: C:\Users\yourusername\coolify.
  • Copy docker-compose.windows.yml and .env.windows-docker-desktop.example to the directory you created in the previous step.
  • Rename docker-compose.windows.yml to docker-compose.yml.
  • Rename .env.windows-docker-desktop.example to .env.
  • Create a coolify docker network with docker network create coolify.
  • Optional: Change the values in .env file.
  • Start Coolify with docker compose up command.
  • You can access Coolify on port localhost:8000 of your machine.

Coolify Proxy is still not working on Windows.