Self-Hosting Coolify: Полное руководство по альтернативе Heroku на своем сервере

Научитесь self-hosting Coolify — мощного PaaS для развертывания приложений. Установка, настройка и деплой полного стека на собственном VPS. Полный контроль и никаких подписок.

Не указано

Подключение к VPS и обновление системы

Подключитесь к вашему серверу по SSH и выполните базовое обновление пакетов для обеспечения безопасности и стабильности.

ssh root@your_vps_ip
sudo apt update && sudo apt upgrade -y

Установка Docker

Coolify работает поверх Docker, поэтому необходимо установить движок контейнеров. Используем официальный скрипт установки.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker

Установка Coolify

Запустите официальный скрипт установки, который автоматически скачает и запустит контейнеры Coolify (веб-интерфейс и агенты).

curl -sSL https://get.coollabs.io/coolify/install.sh | bash

Первоначальная настройка в веб-интерфейсе

Откройте http://your_vps_ip:8000 в браузере. Создайте администраторский аккаунт, затем добавьте ваш сервер в панели управления (Settings -> Servers). Скопируйте публичный SSH-ключ в ~/.ssh/authorized_keys на VPS для связи.

Пример деплоя приложения (Node.js)

В интерфейсе Coolify создайте новый проект (New Project -> Application). Укажите ссылку на Git-репозиторий. Coolify автоматически определит стек и предложит команды сборки. Нажмите 'Deploy' для запуска.

Repository: https://github.com/user/example-node-app.git
Build Command: npm install
Start Command: npm start

Бонус: Настройка обратного прокси (Traefik) для Wildcard SSL

Для продакшена создайте сеть и запустите Traefik для автоматического получения SSL сертификатов и проксирования трафика. Используйте DNS-чалленж (например, Cloudflare) для Wildcard сертификатов.

docker network create web
# Создайте файлы traefik.yml и acme.json, затем:
docker run -d -p 80:80 -p 443:443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ./traefik.yml:/traefik.yml \
  -v ./acme.json:/acme.json \
  --network web \
  traefik:v2.10