Coolify на VPS: свой Heroku для деплоя приложений из Git
Установка Coolify одной командой, защита первого входа, сохранение секретов, порты в UFW, домен с HTTPS для панели и деплой приложения из публичного репозитория. Ubuntu 24.04 и Debian 12.

Coolify — открытая self-hosted платформа в духе Heroku, Netlify или Vercel, только на вашем сервере. Указываете Git-репозиторий, Coolify собирает образ Docker, запускает контейнер, вешает на него домен и получает сертификат HTTPS. Там же в пару кликов создаются PostgreSQL, MySQL, Redis и десятки готовых сервисов. Ниже — установка на чистый VPS, защита первого входа и деплой приложения из публичного репозитория.
Что нужно
- Сервер на tanaka.host с Ubuntu 24.04 (Debian 12 и другие LTS тоже подходят). Минимум для самого Coolify — 2 ядра, 2 ГБ памяти и 10 ГБ диска, но приложения собираются и работают на том же сервере: сборка через Nixpacks или Dockerfile на несколько минут съедает много процессора и памяти, а каждое приложение и база добавляют свой контейнер. Для комфортной работы берите 4 ядра и 8 ГБ.
- Доступ по SSH под root — см. подключение по SSH.
- Домен для панели и приложений с доступом к DNS.
1. Подключитесь и обновите систему
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y
Сервер должен быть чистым: Coolify управляет Docker и собственным reverse proxy, поэтому ничто другое не должно занимать порты 80 и 443.
2. Запустите установщик
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Скрипт поставит Docker, если его нет, скачает контейнеры Coolify и запустит их. Через несколько минут он напечатает адрес панели.
Docker из snap не поддерживается. Если Docker стоял через snap, удалите его перед запуском или дайте скрипту установить свой — см. удаление Docker.
3. Сразу создайте аккаунт администратора
Откройте в браузере:
http://YOUR_SERVER_IP:8000
Первый, кто зарегистрируется, становится администратором с root-уровнем контроля над сервером. Не оставляйте страницу «на потом» — заполните её немедленно.
Дальше короткий онбординг. На вопрос, где разворачивать приложения, выберите сервер, на котором работает сам Coolify, — он добавлен автоматически как localhost.
4. Сохраните секреты установки
Coolify держит свои ключи, включая APP_KEY, в /data/coolify/source/.env. Без этого файла восстановить панель на другом сервере не получится. Скопируйте его к себе:
scp root@YOUR_SERVER_IP:/data/coolify/source/.env ./coolify.env
И положите в менеджер паролей.
5. Откройте порты
На свежем образе UFW выключен. Если включаете, сначала разрешите нужное:
| Порт | Назначение |
|---|---|
| 22/tcp | SSH |
| 80/tcp | HTTP и выпуск сертификатов через прокси Coolify |
| 443/tcp | HTTPS через прокси Coolify |
| 8000/tcp | панель по IP-адресу |
| 6001/tcp | обновления панели в реальном времени по IP |
| 6002/tcp | веб-терминал по IP |
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 8000/tcp
ufw allow 6001/tcp
ufw allow 6002/tcp
ufw enable
Никогда не удаляйте правило для SSH — иначе останетесь снаружи. И помните: порты, опубликованные контейнерами Docker, идут в обход UFW, брандмауэр не спрячет то, что вы сами выставили. Подробнее — UFW и firewalld.
6. Домен для панели
Работать по IP и порту 8000 без шифрования допустимо первые минуты, дальше панели нужен свой домен.
- В DNS создайте A-запись, например
coolify→YOUR_SERVER_IP. - Дождитесь, пока она разойдётся:
dig coolify.example.com. - В Coolify откройте Settings и впишите
https://coolify.example.comкак instance domain. Сохраните. - Откройте новый адрес — прокси Coolify сам получит сертификат Let’s Encrypt.
Когда панель работает по домену, порты 8000, 6001 и 6002 снаружи больше не нужны:
ufw delete allow 8000/tcp
ufw delete allow 6001/tcp
ufw delete allow 6002/tcp
7. Деплой приложения из Git
Подойдёт любой публичный репозиторий с веб-приложением — Node.js, Python или статический сайт.
- Projects → выберите проект (или создайте) и окружение → + New.
- Public Repository, вставьте HTTPS-адрес репозитория, Check Repository.
- Выберите ветку и Build Pack: Nixpacks сам определит язык и фреймворк; Dockerfile — если он есть в репозитории; Docker Compose — для многоконтейнерных проектов.
- Для серверного приложения укажите внутренний порт, который оно слушает, например
3000. Для статического сайта включите static-режим и укажите папку публикации. - На странице приложения в Configuration добавьте переменные окружения, если нужны.
- В поле Domains впишите
https://app.example.comи создайте A-записьappна тот же IP. - Deploy — и следите за логом сборки.
Когда деплой закончится, откройте https://app.example.com: сертификат выпущен, трафик идёт в контейнер. Для приватных репозиториев сначала подключите GitHub или другой Git-провайдер в Sources.
Что делать дальше
Обновления. Coolify показывает доступные версии в панели и ставит их оттуда же.
Диск. Каждая сборка оставляет образы и кеш. Следите за местом (df -h) и включите в настройках сервера автоочистку.
Базы данных. PostgreSQL, MySQL, Redis и другие создаются в несколько кликов. Для каждой настройте расписание резервных копий в её настройках, лучше в S3-совместимое хранилище — локальный бэкап пропадёт вместе с сервером. Общий подход — в статье про резервные копии VPS.
Почта. Исходящие SMTP-порты у многих хостеров закрыты по умолчанию, поэтому приложения должны отправлять письма через HTTPS-API: Postmark, Resend, Amazon SES.
Доступность. Повесьте проверки на панель и приложения в Uptime Kuma — его тоже можно развернуть прямо из каталога сервисов Coolify.
Если из всей платформы нужна только автоматизация, проще поставить n8n за Caddy — он легче и не требует 4 ядер. Документация Coolify: https://coolify.io/docs.