Self‑Hosting Coolify: Руководство по альтернативе Heroku
Self-hosting Coolify: установка, настройка и деплой приложений на собственном VPS. Полное руководство по альтернативе Heroku с полным контролем и без подписок.
Подключение к 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Как Self-Hosted Coolify превращает ваш VPS в полноценную альтернативу Heroku и Vercel
Введение: Зачем вам нужен собственный PaaS
Платформы как сервис (PaaS) вроде Heroku и Vercel упростили развертывание приложений, но их стоимость растет пропорционально масштабу. Для стартапов, фрилансеров или небольших команд, которые хотят контролировать инфраструктуру без переплаты, Self-Hosted PaaS — идеальное решение. Вы получаете гибкость настройки, полный контроль над данными и возможность размещать приложения на дешевых VPS, сохраняя удобство современных инструментов развертывания.
В этой статье мы разберем, как Coolify превращает обычный VPS в мощную платформу для развертывания, управляемую через интуитивный веб-интерфейс. Это не просто Docker-обертка, а полноценная альтернатива облачным PaaS с открытым исходным кодом.
Что такое Coolify и почему это лучше, чем писать docker-compose вручную
Coolify — это open-source панель управления, которая автоматизирует развертывание приложений, баз данных и сервисов на любом VPS. В отличие от ручного написания docker-compose.yml и настройки Nginx, Coolify предоставляет веб-интерфейс для управления всем через UI, с поддержкой Git-репозиториев, автоматическим SSL и CI/CD.
Почему Coolify лучше ручного Docker:
- Автоматизация: Вместо того чтобы вручную настраивать сети, тома и переменные окружения, вы просто указываете репозиторий, и Coolify сам собирает и разворачивает приложение.
- Удобство: One-click деплой для популярных стеков (Node.js, Python, PHP, Go и др.), встроенный мониторинг и логи.
- Масштабируемость: Поддержка мульти-хостов, бэкапов и интеграции с внешними провайдерами баз данных.
- Безопасность: Полный контроль на вашем хосте, нет локов от облачных провайдеров.
Если вы устали от бесконечного дебага Dockerfile и настройки прокси, Coolify сэкономит вам часы времени.
Быстрый старт: Установка Coolify на VPS за 5 минут
Для установки вам понадобится VPS с Ubuntu/Debian, Docker и хотя бы 2 ГБ RAM. Подойдет любой провайдер (Hetzner, DigitalOcean, Linode и т.д.). Процесс занимает 5-10 минут.
Шаг 1: Подготовка VPS
- Зарегистрируйтесь у провайдера и создайте VPS (рекомендуется Ubuntu 22.04 LTS).
- Подключитесь по SSH:
ssh root@your_vps_ip - Обновите систему:
sudo apt update && sudo apt upgrade -y
Шаг 2: Установка 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 # Перезагрузите сессию или выполните exit и залогиньтесь снова
Шаг 3: Установка Coolify
Запустите официальный скрипт установки (он автоматически скачивает и запускает контейнеры):
curl -sSL https://get.coollabs.io/coolify/install.sh | bash
Этот скрипт:
- Проверяет систему.
- Скачивает docker-compose.yml.
- Запускает контейнеры Coolify (веб-интерфейс и агенты).
Шаг 4: Настройка первого доступа
После установки вы увидите в выводе URL веб-интерфейса (обычно http://your_vps_ip:8000). Откройте его в браузере.
- Создайте аккаунт администратора (введите email и пароль).
- В настройках добавите ваш VPS как "Server": введите IP, SSH-ключ (сгенерируйте на локальной машине:
ssh-keygenи скопируйте публичный ключ на VPS в~/.ssh/authorized_keys).
Проверка: Если интерфейс недоступен, убедитесь, что порт 8000 открыт в файрволе:
sudo ufw allow 8000/tcp
sudo ufw reload
Теперь у вас есть полноценная панель управления! Для продакшена добавьте обратный прокси (см. раздел "Бонус").
Основной разбор функций: One-click деплой, авто-SSL, базы данных и CI/CD
Coolify делает развертывание простым, как никогда. Рассмотрим ключевые функции на примере развертывания Node.js приложения.
One-click деплой
- В интерфейсе Coolify перейдите в "Projects" -> "New Project".
- Выберите тип: "Application" (для веб-приложений) или "Service" (для баз данных, кеша и т.д.).
- Укажите источник: Git-репозиторий (GitHub, GitLab, Bitbucket) или Docker-образ.
- Пример: Введите URL вашего репо
https://github.com/user/repo.git. - Coolify автоматически определит стек (Node.js, Python и т.д.) и предложит Dockerfile или Buildpack.
- Пример: Введите URL вашего репо
- Настройте переменные окружения (например,
NODE_ENV=production), команды сборки (npm install) и запуска (npm start). - Нажмите "Deploy" — контейнер соберется и запустится за минуту.
Поддерживается мульти-деплой: несколько репозиториев, веток, автоматический ребилд при коммитах (через webhooks).
Авто-SSL
Coolify интегрируется с Let's Encrypt для бесплатных сертификатов.
- При создании приложения укажите домен (например,
app.example.com). - В настройках сервера включите "SSL" и укажите email для уведомлений.
- Coolify автоматически получит и обновит сертификат, привяжет его к Nginx/Traefik внутри контейнера.
Если домен не настроен, используйте IP:8000 для тестов.
Базы данных
Coolify поддерживает one-click развертывание баз:
- Перейдите в "Services" -> "New Service".
- Выберите: PostgreSQL, MySQL, Redis, MongoDB и др.
- Укажите версию, пароль и объем диска.
- Coolify создаст контейнер с томом для данных (бэкапы вручную или через крон).
Для привязки к приложению: в настройках приложения добавьте переменные вида DATABASE_URL=postgres://user:pass@db-host:5432/dbname (Coolify автоматически подставит хост из сервиса).
CI/CD
- Интеграция с Git: Webhooks автоматически запускают деплой при коммитах в main/production ветки.
- Билд-пакеты: Автоматически определяет Node.js, Python, Go и собирает без Dockerfile.
- Мониторинг: Встроенные логи (Real-time logs), метрики производительности и уведомления в Telegram/Slack.
- Бэкапы: Настройте cron для бэкапа баз данных на внешнее хранилище (S3, локальный диск).
Для расширенного CI/CD можно интегрировать с GitHub Actions, где ваш workflow вызывает API Coolify для деплоя.
Coolify vs Hetzner vs DigitalOcean: Где размещать и сколько это стоит
Coolify — не хостинг, а панель. Ее можно установить на любой VPS. Сравнение с популярными провайдерами:
| Провайдер | Цена за базовый VPS (2 ГБ RAM, 1 vCPU) | Плюсы для Coolify | Минусы |
|---|---|---|---|
| Hetzner (Германия/Финляндия) | €4.15/мес (CX21) | Дешевый, высокая производительность, много локаций. Идеален для EU-пользователей. | Иногда медленная поддержка, требуется ИП/юр. лицо для некоторых опций. |
| DigitalOcean | $6/мес (Basic 2 ГБ) | Простота, отличная документация, мгновенные snapshot. США/Европа. | Дороже Hetzner, ограничения по bandwidth. |
| Linode (Akamai) | $5/мес (Nanode 1 ГБ) | Глобальные DC, хороший Uptime. | Аналогично DO, меньше фич в базовом тарифе. |
Стоимость Coolify: Бесплатно (open-source). Платные фичи (Enterprise) — от $15/мес, но для большинства хватает бесплатной версии.
Рекомендации:
- Для старта: Hetzner (дешевле, быстрее).
- Для глобальной аудитории: DigitalOcean с CDN.
- Бюджет: На дешевом VPS (от $2/мес от Vultr или Hostinger) Coolify работает отлично, но следите за RAM.
Итоговая стоимость для одного приложения: $5-10/мес (VPS) + бесплатный Coolify.
Бонус: Настройка обратного прокси и Wildcard SSL
Для продакшена добавим обратный прокси (Traefik или Nginx) и Wildcard SSL для всех поддоменов. Это скроет порт 8000 и защитит трафик.
Шаг 1: Установка Traefik как Reverse Proxy
Coolify поддерживает Traefik из коробки, но настроим его отдельно для Wildcard.
- Создайте файл
docker-compose.ymlдля Traefik на VPS:version: '3' services: traefik: image: traefik:v2.10 ports: - "80:80" - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./traefik.yml:/traefik.yml:ro - ./acme.json:/acme.json networks: - web networks: web: external: true - Создайте
traefik.yml:entryPoints: web: address: ":80" websecure: address: ":443" providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false api: dashboard: true certificatesResolvers: le: acme: email: your-email@example.com storage: /acme.json caServer: "https://acme-v02.api.letsencrypt.org/directory" dnsChallenge: provider: cloudflare # Или ваш DNS-провайдер resolvers: - "1.1.1.1:53" - Запустите:
docker network create web && docker-compose up -d. - В DNS вашего домена (например, Cloudflare) настройте wildcard
*.example.comна IP VPS.
Шаг 2: Привязка Coolify к Traefik
- В интерфейсе Coolify перейдите в "Servers" -> ваш сервер -> "Proxy" и выберите "Traefik".
- Укажите сеть
webи включите Wildcard SSL (Traefik сам получит сертификат через DNS-чалленж). - Для каждого приложения в Coolify укажите домен
app.example.com. Traefik автоматически проксирует трафик с SSL.
Шаг 3: Проверка Wildcard SSL
- Проверьте сертификат:
docker exec -it traefik_container_name traefik config test. - Откройте
https://app.example.com— должно работать с автоматическим SSL.
Если используете Cloudflare, включите "Proxy mode" для дополнительной защиты (DDoS, кэширование).
Заключение: Ваша первая развернутая приложение
Теперь у вас есть полноценная Self-Hosted альтернатива Heroku на базе Coolify. Начните с простого: разверните тестовое Node.js приложение, добавьте базу данных и настройте домен. Это займет час, но сэкономит тысячи долларов в год.
Coolify — это свобода без компромиссов: вы контролируете все, сохраняя удобство. Попробуйте на своем VPS, и вы уже не вернетесь к ручному Docker. Если столкнетесь с проблемами, документация Coolify (coolify.io/docs) и сообщество в Discord помогут быстро. Удачи в деплое!