Современная веб-разработка избаловала нас удобством облачных PaaS-платформ вроде Vercel, Netlify, Render и Heroku. Разработчику больше не нужно думать о системном администрировании: подключил репозиторий GitHub — и каждый git push автоматически компилирует проект, выкатывает контейнер, привязывает поддомен и выписывает SSL-сертификат. Но когда проект начинает расти, облачный комфорт оборачивается суровой реальностью: жесткие лимиты на время работы функций (10–60 секунд), запрет длительных фоновых задач, драконовские цены на базы данных и внезапные счета в сотни долларов за исходящий сетевой трафик. Для разработчиков и агентств из России добавляется еще один критический фактор — невозможность прямой оплаты зарубежных подписок российскими картами.
Решением, взорвавшим международное сообщество разработчиков (более 40 000 звезд на GitHub и топовые места в трендах Hacker News), стал Coolify v4 — открытый, бесплатный self-hosted PaaS, который вы можете установить на собственный VDS за 10 минут. Вы получаете ровно тот же опыт деплоя «как на Vercel», но на собственном сервере с фиксированной ценой, без ограничений по ресурсам и с полным контролем над своими данными.
В этом исчерпывающем руководстве мы разберем весь путь: от расчета аппаратных ресурсов сервера и безопасной установки до настройки Wildcard DNS через Traefik, деплоя веб-приложений из Git и резервного копирования баз данных в S3.
1. Что такое Coolify v4: архитектура и экономика собственного PaaS
Coolify — это мощный центр управления инфраструктурой (Infrastructure Manager), превращающий обычный сервер под управлением Ubuntu или Debian в полноценное частное облако.
Под капотом Coolify не изобретает велосипед, а связывает проверенные временем production-ready технологии:
- Traefik v3: современный обратный прокси (Reverse Proxy), который автоматически регистрирует новые запущенные сервисы через Docker Socket, маршрутизирует входящие HTTP/HTTPS запросы и на лету выписывает бесплатные SSL-сертификаты с автопродлением от Let's Encrypt.
- Nixpacks и Buildpacks: интеллектуальные сборщики от Railway и Heroku. Они анализируют структуру вашего репозитория (например, находят
package.json,requirements.txt,go.modилиCargo.toml) и автоматически компилируют оптимальный Docker-образ без необходимости писать кастомныйDockerfile. - Docker Engine и Docker Compose: нативная контейнеризация приложений, изолированные пользовательские подсети и возможность запускать сложные мультиконтейнерные стеки одной конфигурацией.
- Панель управления (Dashboard): реактивный интерфейс на стеке Laravel, Livewire и Tailwind CSS, через который вы управляете серверами, базами данных, переменными окружения, вебхуками и логами сборки.
💡 Почему VDS окупает себя в первый же месяц
Сравните математику: подписка Vercel Pro ($20/мес за каждого участника команды) + управляемая база данных Supabase или Neon ($25/мес) + Redis Cloud ($15/мес) суммарно обходятся от $60/мес (~5 500–6 000 ₽). При этом тариф VDS на 2 vCPU / 4 GB RAM с быстрым NVMe-диском и безлимитным трафиком у российских провайдеров стоит всего 600–900 ₽/мес. На одном таком сервере вы можете без доплат держать десятки пет-проектов, тестовых сред, ботов и клиентских сайтов.
2. Выбор тарифа VDS и сайзинг памяти: защита от OOM при сборках
Самая распространенная ошибка новичков — попытка развернуть Coolify на минимальном сервере с 1 vCPU и 1 ГБ RAM. Сам интерфейс Coolify потребляет немного (около 400–600 МБ RAM), однако этап компиляции современных веб-приложений (особенно на Next.js, Nuxt, Astro или NestJS) кратковременно требует огромного объема оперативной памяти.
Когда Node.js запускает npm run build, компилятор Webpack или Turbopack легко утилизирует от 1.5 до 2.5 ГБ RAM. Если свободной памяти на сервере нет, в игру вступает подсистема ядра Linux OOM Killer (Out-of-Memory Killer), которая аварийно принудительно завершает процесс сборки (ошибка с кодом Killed или exit code 137), а в худшем случае роняет саму панель управления.
| Назначение сервера | Конфигурация VDS | Накопитель | Что можно разместить |
|---|---|---|---|
| Минимум (Пет-проекты) | 2 vCPU / 2 GB RAM |
от 30 GB NVMe | Coolify, 1–2 небольших приложения, база SQLite / мини-PostgreSQL (обязателен Swap). |
| Рабочий стандарт (Рекомендуется) | 2–4 vCPU / 4 GB RAM |
от 50 GB NVMe | Комфортные сборки Next.js, полноценные PostgreSQL + Redis, 5–10 сайтов без замедления. |
| Продакшен веб-студии | 4 vCPU / 8 GB RAM |
от 80 GB NVMe | Параллельные сборки микросервисов, нагруженные СУБД, независимые staging/prod окружения. |
Перед установкой обязательно создайте и активируйте файл подкачки (Swap) размером 4 ГБ. Это гарантирует, что при пиковом потреблении памяти сборка не упадет:
# Создаем swap-файл на 4 ГБ с защищенными правами
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Фиксируем монтирование в fstab при перезагрузках
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# Оптимизируем системную агрессивность сброса в swap
sudo sysctl vm.swappiness=15
echo 'vm.swappiness=15' | sudo tee -a /etc/sysctl.conf
3. Установка Coolify в одну команду и первичный запуск
Coolify устанавливается на чистую операционную систему Ubuntu 22.04 / 24.04 LTS или Debian 12. На сервере не должно быть заранее установленных веб-серверов Apache или Nginx, чтобы порты 80 и 443 были полностью свободны для системного прокси Traefik.
Подключитесь к вашему VDS по SSH и выполните официальный установочный скрипт:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
Скрипт полностью автономен. В процессе выполнения он:
- Установит свежий официальный пакет Docker Engine и плагин Docker Compose v2.
- Создаст системную директорию
/data/coolifyдля хранения всех конфигураций, сертификатов и баз. - Развернет внутреннюю Docker-сеть
coolify. - Запустит контейнеры ядра: Traefik Proxy, базу данных PostgreSQL (для настроек Coolify), Redis (для очередей задач деплоя) и контейнер приложения.
💡 Полезная альтернатива: если для ваших задач не требуется полноценный компилятор PaaS и сборка из Git, а нужен только ультралегкий веб-интерфейс для файлов compose.yaml с расходом 30 МБ RAM, читайте наш гайд Dockge вместо Portainer на VDS 2026: легковесное управление Docker Compose.
Установка занимает около 2–4 минут в зависимости от скорости диска VDS. По завершении в терминале отобразится поздравление и ссылка для входа:
Coolify is ready!
Please visit: http://<IP_вашего_сервера>:8000 to finish the setup.
Откройте браузер и перейдите по адресу http://<IP_вашего_сервера>:8000. На первом экране вам будет предложено зарегистрировать учетную запись главного администратора: введите имя, рабочий email и надежный мастер-пароль.
⚠️ Важное предупреждение: первоначальный доступ по HTTP
При первом входе трафик передается по незашифрованному протоколу HTTP на порту 8000. Не откладывайте настройку доменного имени: сразу после регистрации мы привяжем панель к собственному домену с автоматическим SSL-шифрованием, чтобы защитить учетные данные от перехвата.
4. Сетевая инфраструктура: настройка Wildcard DNS и SSL через Traefik
Главное удобство PaaS-платформ — моментальное присвоение красивых URL любому новому сайту без ручного редактирования конфигов веб-сервера. Чтобы добиться такого же эффекта в Coolify, настроим Wildcard DNS.
Предположим, у вас есть домен myserver.ru. Перейдите в панель управления DNS у вашего регистратора или в DNS-хостинг и добавьте две ресурсные записи:
# Основная A-запись для самого сервера
@ IN A 198.51.100.25 (внешний IP вашего VDS)
# Подстановочная Wildcard A-запись для всех клиентских приложений
*.apps IN A 198.51.100.25 (внешний IP вашего VDS)
Благодаря записи *.apps.myserver.ru любой поддомен (например, client-crm.apps.myserver.ru, tg-bot.apps.myserver.ru или staging-shop.apps.myserver.ru) будет автоматически резолвиться на ваш сервер.
Убедитесь, что DNS-записи обновились и отдают правильный IP-адрес, с помощью нашего бесплатного онлайн-инструмента DNS Lookup и Резолвер. Введите test.apps.myserver.ru: если чекер показывает IP вашего сервера, можно двигаться дальше.
Теперь защитим саму панель Coolify. В интерфейсе перейдите в Settings → Instance Settings. В поле Instance's Domain введите постоянный адрес панели (например, https://coolify.myserver.ru).
Coolify мгновенно передаст команду встроенному контейнеру Traefik, который сделает следующее:
- Сгенерирует закрытый ключ RSA/ECDSA;
- Отправит запрос ACME HTTP-01 в Let's Encrypt;
- Подтвердит владение доменом и сохранит сертификат в
/data/coolify/proxy/acme.json; - Включит автоматический HTTP-to-HTTPS редирект со статусом 301.
Проверить валидность и срок действия выпущенного сертификата можно прямо через Проверка SSL-сертификата онлайн. Порт 8000 теперь можно закрыть в системном фаерволе, так как вход будет осуществляться по безопасному адресу через стандартный HTTPS-порт 443.
5. Деплой первого веб-приложения из GitHub по git push
Переходим к самому приятному — деплою реального веб-приложения. Развернем проект (например, современное fullstack-приложение на Next.js или FastAPI).
- В панели Coolify откройте раздел Projects, создайте проект
My Productionи добавьте в него окружениеproduction. - Нажмите + New → Application → Public Repository (для открытых проектов) либо выберите GitHub App (для безопасной интеграции с приватными репозиториями организации).
- Вставьте URL репозитория: например,
https://github.com/mycompany/my-awesome-siteи укажите рабочую веткуmain. - В поле Build Pack выберите
Nixpacks. Nixpacks автоматически просканирует репозиторий, определит рантайм Node.js, установит зависимости черезpnpm/npm, выполнит билд и сформирует легковесный контейнер. - В поле Domains укажите желаемый адрес:
https://site.apps.myserver.ruили ваш отдельный клиентский доменhttps://awesome-site.ru.
💡 Управление секретами и переменными окружения (.env)
Никогда не коммитьте файлы .env в публичные репозитории. Во вкладке Environment Variables интерфейса Coolify вы можете вставить весь блок переменных списком. Coolify автоматически передаст их внутрь контейнера в момент компиляции (Build-time Secrets) и во время выполнения приложения (Runtime Secrets).
Нажмите синюю кнопку Deploy. В режиме реального времени откроется терминал со streaming-логами: вы увидите, как загружаются базовые слои, компилируются ассеты и запускается контейнер. Как только статус изменится на healthy, сайт сразу станет доступен по HTTPS с готовым сертификатом.
Чтобы настроить непрерывный деплой (Continuous Deployment), откройте вкладку Webhooks в настройках приложения. Скопируйте сгенерированный Coolify Webhook URL и добавьте его в настройки репозитория на GitHub (Settings → Webhooks). Теперь каждый коммит вашей команды в ветку main будет вызывать моментальное бесшовное обновление приложения без простоя сервиса (Zero-Downtime).
6. Запуск PostgreSQL и Redis в один клик с сетевой изоляцией
Практически любому бэкенду требуются реляционная база данных и быстрый кэш. В Coolify базы данных запускаются за несколько секунд из встроенного каталога:
- Нажмите + New → Database;
- Выберите необходимую СУБД: PostgreSQL, MySQL, MariaDB, Redis, MongoDB или ClickHouse;
- Задайте имя базы, логин пользователя и пароль (или нажмите генерацию безопасного пароля).
Критически важный аспект сетевой безопасности:
По умолчанию Coolify размещает базу данных исключительно во внутренней виртуальной сети Docker. Это означает, что база данных физически не имеет открытых наружу сетевых портов на интерфейсе вашего VDS. Ваше веб-приложение обращается к PostgreSQL по внутреннему имени хоста контейнера (например, postgres:5432).
В настройках базы данных есть переключатель «Make Publicly Available». Никогда не включайте его без острой необходимости! Если сделать порт 5432 или 6379 публичным, автоматические ботнеты начнут сканировать его уже через пару минут.
Проверим прямо сейчас, не торчат ли порты баз данных наружу. Зайдите в Сканер открытых портов онлайн, введите внешний IP своего VDS (его можно узнать через инструмент Мой IP адрес и данные клиента) и проверьте порты 5432, 3306 и 6379. Они должны возвращать статус «Порт закрыт» или «Connection timed out».
💡 Как безопасно подключиться к базе через DBeaver или DataGrip
Если вам нужно администрировать базу данных со своего рабочего компьютера, не открывайте порт наружу. Используйте SSH-туннель, который встроен в любой популярный GUI-клиент (DBeaver, TablePlus, DataGrip): укажите SSH-хост вашего VDS, порт 22 и SSH-ключ, а адресом базы укажите локальный localhost:5432.
7. Харденинг безопасности, фаервол UFW и бэкапы в S3
Чтобы ваш собственный PaaS работал надежно годами и не пострадал от сетевых угроз, завершите настройку сервера тремя обязательными шагами:
- Настройка системного фаервола UFW: на внешнем сетевом интерфейсе должны быть открыты строго порты 22 (SSH), 80 (HTTP для валидации ACME) и 443 (HTTPS для сайтов и панели). Порт 8000 должен быть закрыт.
# Включаем базовые правила фильтрации sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow 22/tcp comment 'SSH' sudo ufw allow 80/tcp comment 'Traefik HTTP' sudo ufw allow 443/tcp comment 'Traefik HTTPS' sudo ufw enable - Двухфакторная аутентификация (2FA): обязательно зайдите в профиль пользователя в Coolify и включите вход по одноразовым кодам через приложение-аутентификатор (Google Authenticator, Bitwarden, 2FAS). Это исключит перехват управления даже при компрометации пароля.
- Автоматический бэкап баз данных в S3: в настройках каждой базы данных перейдите во вкладку Backups. Подключите любое недорогое S3-совместимое хранилище (например, объектное хранилище Selectel, Timeweb Cloud S3 или Yandex Object Storage) и настройте расписание
0 3 * * *(ежедневно в 3 часа ночи). Coolify будет автоматически создавать дампpg_dump, архивировать его и выгружать в независимый географический дата-центр.
🎯 Разверните собственный PaaS на надежном VDS
Создайте мощный сервер для Coolify: высокочастотные процессоры vCPU, сверхбыстрые NVMe-диски до 3000 МБ/с и моментальные снимки системы (снапшоты) перед обновлениями.
Подобрать сервер для CoolifyРекомендуемые VDS-провайдеры
Отказоустойчивые сервера с быстрыми NVMe и каналом до 1 Гбит/с
Timeweb Cloud
Сверхбыстрые NVMe-диски до 3000 МБ/с и почасовая оплата. Оптимально для сборки контейнеров Coolify и изоляции проектов во внутренней сети VPC.
Selectel
Инфраструктура Tier III в Москве и Санкт-Петербурге. Выделенные приватные подсети, защита от сетевых атак L3/L4 и безлимитный трафик на 1 Гбит/с.
Beget
Готовый маркетплейс Docker-образов, моментальное развертывание VDS, автоматические ежедневные бэкапы и отзывчивая круглосуточная поддержка.