# Coolify и Claude Code: публикация Next.js на VPS за 6 шагов

> Пошагово разверните Coolify на VPS и опубликуйте Next.js-проект из Claude Code: настройка GitHub, домена, HTTPS и MCP, требования к серверу и расходы.

Source: https://ailoot.ai/blog/ru/coolify-claude-code-deploy/
Canonical: https://ailoot.ai/blog/ru/coolify-claude-code-deploy/
Language: ru
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-087
Revision: sha256-17a2b14a6f74db81cce4d7666131881a07ba48ee02e9d9451d9063577c69e0c0


<div class="aside" data-semantic="editorial-reference" role="note" aria-label="Документация Ailoot">

[Документация Ailoot](https://ailoot.ai/docs/) — справочные материалы по работе с сервисом.

</div>

## Ограничения платформ и оплата в 2026 году

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Бесплатные тарифы помогают, пока вы не превысили лимиты; после этого может потребоваться международная карта. Heroku закрыл бесплатный тариф для всех в 2022 году и в феврале 2026 года перешёл в режим поддержки существующего продукта. При самостоятельном размещении Coolify вы контролируете сервер, обходитесь без оплаты за каждого пользователя и зависимости от одного поставщика.

</div>

Типичная ситуация для разработчика, работающего с ИИ в 2026 году: вечером создаёте MVP в Cursor или Claude Code, отправляете его в репозиторий GitHub, открываете vercel.com и подключаете репозиторий. На экране оформления подписки вводите карту и получаете сообщение `Transaction declined`.

Это не обязательно ошибка сервиса или временный сбой.

С Railway, Render и Heroku могут возникать похожие сложности. Heroku прекратил предоставлять бесплатный тариф всем пользователям в 2022 году, а в феврале 2026 года перешёл в режим поддержки: новые возможности и контракты Enterprise больше не появляются. Если ваша карта не принимается, придётся искать другой доступный способ оплаты.

Оплатить сервис можно виртуальной картой Visa в Казахстане или через корпоративный платёжный сервис. Это может увеличить стоимость, добавить время на каждую транзакцию и создать риск блокировки аккаунта, если платёжный процессор обнаружит несовпадение страны.

В исходном примере проверялись три варианта: Vercel Pro, Railway и Render.

## Что такое Coolify и как работает платформа для самостоятельного размещения?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Coolify — платформа PaaS с открытым исходным кодом, которую можно развернуть на собственном сервере. Она служит альтернативой Heroku, Vercel и Netlify. Установка на VPS с Ubuntu выполняется одной командой `curl`. В основе — Docker, Traefik для обратного прокси и Let's Encrypt для HTTPS. Доступны интеграция с GitHub, webhooks для автоматических публикаций и резервное копирование в S3. Проект заявляет поддержку более 280 сервисов с установкой в один клик, включая PostgreSQL, Redis и MinIO. Самостоятельно размещаемая версия бесплатна без ограничений. Репозиторий на GitHub использует лицензию Apache-2.0 и имеет 55 800 звёзд.

</div>

Coolify — проект с открытым исходным кодом, созданный на Laravel и Docker. Он превращает чистый VPS в платформу для размещения приложений. После первоначальной установки остальные действия выполняются через веб-интерфейс: подключите GitHub, выберите репозиторий и нажмите Deploy.

В README проекта на GitHub Coolify описан как открытая платформа, которую пользователь может размещать самостоятельно, и альтернатива Heroku, Netlify и Vercel.

Под капотом Coolify состоит из четырёх частей:

1. **Веб-интерфейс на Laravel 12, Livewire 3 и Tailwind v4** — панель управления приложениями.
2. **Docker и Docker Compose** — приложения работают в контейнерах, изолированных друг от друга.
3. **Обратный прокси Traefik или Caddy** — принимает входящий HTTP/HTTPS-трафик и направляет его к контейнерам.
4. **Интеграция с Let's Encrypt** — автоматически выпускает и обновляет SSL-сертификаты для доменов.

Сравнение основных возможностей Coolify и Vercel:

| Возможность | Vercel | Coolify |
|----|----|----|
| Автоматическая публикация после git push | ✅ | ✅ (через GitHub webhook) |
| Бесплатный HTTPS | ✅ | ✅ (Let's Encrypt) |
| Предварительные публикации для PR | ✅ | ✅ (через GitHub App) |
| Интерфейс для переменных окружения | ✅ | ✅ |
| Резервные копии базы данных | ❌ (собственных БД нет) | ✅ (в совместимое с S3 хранилище) |
| PostgreSQL / Redis / MongoDB | \$20+/мес каждая | ✅ установка в один клик, бесплатно |
| Запланированные задачи (cron) | ❌ | ✅ (синтаксис cron) |
| Оплата за пользователя | \$20/пользователь/мес | Нет |
| Зависимость от поставщика | Высокая (Edge Functions, ISR) | Отсутствует (ваш Docker) |
| Глобальный CDN | ✅ | ❌ (только ваш VPS) |

Встроенного глобального CDN у Coolify нет. Если проект рассчитан на пользователей по всему миру и важно уменьшить задержку для аудитории из США и Европы, можно подключить Cloudflare; для статических файлов доступен бесплатный тариф.

Самостоятельно размещаемая версия Coolify бесплатна без ограничений по числу приложений, серверов и публикаций. Также предлагается платный Coolify Cloud: \$5/мес за 2 сервера и \$3 за каждый дополнительный. Сами серверы при этом остаются вашими — Coolify Cloud размещает панель управления.

Последний релиз — **v4.1.0 от 18 мая 2026 года**. Среди нововведений: beta-версия build pack Railpack, аудит действий, сравнение конфигураций между публикациями и нативная точка MCP с доступом только для чтения. Сведения доступны в [релизах на GitHub](https://github.com/coollabsio/coolify/releases).

## Какой VPS выбрать для Coolify в 2026 году?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Минимальная конфигурация для Coolify — 2 vCPU, 2 GB RAM, 30 GB SSD и Ubuntu LTS (20.04, 22.04 или 24.04). На таком VPS можно одновременно разместить 3–5 небольших проектов.

</div>

Минимальные системные требования приведены в [официальной документации Coolify](https://coolify.io/docs/get-started/installation):

| Параметр | Минимум | Рекомендуемая конфигурация |
|-------------|----------------------------------|---------------------------|
| CPU | 2 ядра | 2–4 ядра |
| RAM | 2 GB | 4 GB (запас для сборки) |
| Хранилище | 30 GB | 50–80 GB (образы и БД) |
| Архитектура | AMD64 или ARM64 (64-bit) | AMD64 |
| ОС | Ubuntu LTS 20.04 / 22.04 / 24.04 | 22.04 LTS |
| Root | Обязателен | Через SSH-ключ, не пароль |

2 GB RAM — **строгий нижний предел**. На сервере с 1 GB установщик может дойти до установки Docker, после чего процесс зависнет или завершится из-за нехватки памяти (OOM, out of memory). Не стоит экономить на оперативной памяти.

Цены и доступность VPS можно проверить у [Timeweb Cloud](https://timeweb.cloud/services/vds-vps), [FirstVDS](https://firstvds.ru/products/vds_vps_hosting) и [Selectel](https://selectel.ru/services/cloud/vps-vds/).

Для более ресурсоёмкой конфигурации — например, базы объёмом 100 ГБ и нескольких экземпляров Postgres — рассмотрите выделенный сервер Aeza.

Не выбирайте:

- **Общий VPS с 512 МБ–1 ГБ RAM** — ресурсов может не хватить даже для запуска Coolify. Такая конфигурация подходит скорее для статического сайта на nginx, но не для PaaS.

## Как установить Coolify за 5 минут?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Для установки выполните одну команду из документации. После запуска веб-интерфейс станет доступен на порту 8000; создайте первого администратора и откройте пустую панель. В примере установка на чистой Ubuntu занимает 5–7 минут, из которых 3–4 минуты уходят на `apt-get install docker`. Скрипт загружает необходимые зависимости и настраивает Docker автоматически.

</div>

**Шаг 1. Подключитесь к VPS по SSH.**

После создания VPS провайдер покажет IP-адрес сервера и пароль root в панели или пришлёт их по электронной почте. Подключитесь с локального компьютера:

```bash
ssh root@1.2.3.4
```

Если вместо пароля провайдер выдал SSH-ключ, укажите его через `-i path/to/key`. Далее предполагается, что на сервере установлена чистая Ubuntu 22.04 или 24.04 LTS.

**Шаг 2. Запустите установщик Coolify.**

Выполните команду из [официальной инструкции по установке](https://coolify.io/docs/get-started/installation):

```bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
```

Скрипт выполняет три действия:

1. Проверяет систему: версию Ubuntu LTS, наличие root и архитектуру AMD64.
2. Устанавливает Docker и Docker Compose, если они отсутствуют.
3. Загружает образы Coolify (`coolify/coolify`, `coolify/realtime`, `traefik`) и запускает их в фоне с помощью docker-compose.

Установка занимает примерно 3–5 минут. В терминале появятся журналы `apt-get`, затем начнётся `docker pull`. После сообщения `Coolify v4.1.0 is now running` переходите к следующему шагу.

**Шаг 3. Откройте веб-интерфейс.**

Перейдите в браузере по адресу:

```
http://1.2.3.4:8000
```

Откроется мастер первоначальной настройки с формой для создания пользователя. Укажите электронную почту и пароль и сохраните данные. Первый пользователь автоматически получит права администратора.

После сохранения появится пустая панель: слева меню Resources / Projects / Servers / Sources / Notifications / Settings, в центре — предложение «Add your first resource».

**Шаг 4. Настройте firewall у провайдера, а не только UFW.**

После установки снаружи доступна панель на порту 8000. Чтобы пользователи могли обращаться к приложениям, откройте порты 80 (HTTP) и 443 (HTTPS):

| Порт | Назначение |
|----|----|
| 22 | SSH-доступ к серверу |
| 80 | HTTP-трафик и проверка Let's Encrypt |
| 443 | HTTPS-трафик пользователей |
| 8000 | Панель Coolify; после настройки домена для панели порт можно закрыть |

В [официальной документации Coolify по firewall](https://coolify.io/docs/knowledge-base/server/firewall) поясняется, что Docker применяет правила iptables на основе NAT, которые могут обходить традиционные Linux-firewall, например UFW.

Поэтому одного UFW может быть недостаточно: Docker способен перенаправлять порты контейнеров наружу через iptables. Управляйте доступом через firewall в панели провайдера. У Timeweb, Selectel и Aeza соответствующие настройки находятся в разделе «Сеть → Firewall» или похожем.

**Шаг 5 (необязательный). Подключите домен к панели.**

Чтобы открывать Coolify по адресу `https://coolify.example.com`, создайте DNS A-record `coolify.example.com → 1.2.3.4`. В панели Coolify перейдите в **Settings → Instance Settings → Instance Domain**, укажите поддомен и сохраните изменения. Coolify запросит сертификат Let's Encrypt; после его получения панель будет доступна по HTTPS.

Когда домен заработает, порт 8000 можно закрыть в firewall: панель будет открываться по HTTPS на стандартном порту 443.

## Как подключить GitHub: App или PAT?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Coolify позволяет подключить GitHub через **GitHub App** или **Personal Access Token (PAT)**. GitHub App поддерживает предварительные публикации для PR и точечные разрешения на уровне репозиториев. PAT может подойти для старых сценариев, но не предоставляет такие предварительные публикации и при широких правах может открывать доступ ко многим репозиториям.

</div>

В Coolify откройте **Sources → + Add → GitHub App**. Мастер состоит из трёх экранов:

1. **Name & description** — задайте источнику имя, например `github-main`, и при необходимости добавьте описание.
2. **Configure on GitHub** — кнопка перенаправит на GitHub.com и откроет форму создания GitHub App с запрашиваемыми разрешениями.
3. **Confirm** — вернувшись из GitHub, нажмите «Save».

На следующем этапе GitHub покажет запрошенные Coolify разрешения:

| Разрешение | Уровень доступа | Назначение |
|-----------------|------------|----------------------------------------------|
| Contents | Только чтение | Клонирование репозитория |
| Pull Requests | Чтение и запись | Создание preview-деплоев и комментариев к PR |
| Email addresses | Только чтение | Идентификация коммитов |
| Metadata | Только чтение | Список репозиториев |

Проверьте разрешения перед подтверждением. GitHub App может работать только с подключёнными репозиториями; не предоставляйте ей более широкий доступ, чем необходимо.

Если политика безопасности организации запрещает GitHub Apps, рассмотрите PAT, предварительно проверив его область доступа и срок действия.

После сохранения Coolify покажет GitHub App и список подключённых репозиториев. При создании приложения можно будет выбрать нужный репозиторий из списка.

## Как опубликовать проект Next.js из Claude Code за 6 шагов?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Рабочий процесс состоит из шести этапов: создайте проект в Claude Code, инициализируйте Git-репозиторий, отправьте его на GitHub, добавьте приложение в Coolify, укажите переменные окружения и запустите Deploy. Coolify может определить Next.js, использовать Nixpacks для сборки и выдать временный домен вида `<YOUR_TEMPORARY_DOMAIN>` с HTTPS.

</div>

**Шаг 1. Опишите проект в Claude Code.**

```bash
mkdir my-vibe-app
cd my-vibe-app
git init
claude
```

В сессии укажите задачу:

```
Создай проект Next.js 14 с App Router:
- главная страница со списком пользователей
- эндпоинт /api/users, который возвращает массив данных из БД
- PostgreSQL через Prisma
- Tailwind для стилей
- файл .env.example с DATABASE_URL
- README.md с инструкцией по запуску
```

Claude Code создаст структуру проекта, `package.json`, `prisma/schema.prisma` и `.env.example`. Отдельно попросите добавить Dockerfile и `.dockerignore`:

```
Подготовь Dockerfile для production-сборки и файл .dockerignore.
```

Dockerfile необязателен: Coolify может собрать приложение через Nixpacks и без него. Собственный Dockerfile даёт больше контроля над сборкой и может быть удобен для крупных проектов.

**Шаг 2. Создайте репозиторий GitHub и отправьте туда код.**

Репозиторий можно создать в интерфейсе GitHub, затем настроить `git remote add origin ...`. Claude Code также может выполнить публикацию через команду:

```
/commit-push-pr Initial Next.js app generated with Claude Code
```

Или попросите словами: «Закоммить все файлы и отправь их в новый репозиторий `my-vibe-app` в моём аккаунте». Для этого Claude Code использует установленный `gh` CLI. Перед отправкой проверьте, какие файлы попадут в репозиторий, и выберите приватный или публичный доступ.

**Шаг 3. Создайте Application в Coolify.**

В панели Coolify нажмите **+ New → Application** и заполните форму:

1. **Source** — выберите `github-main`, созданный ранее источник GitHub App.
2. **Repository** — выберите `my-vibe-app`.
3. **Branch** — укажите `main`.
4. **Build Pack** — Coolify определит его автоматически: при наличии Dockerfile выберет `dockerfile`, иначе — `nixpacks`. При необходимости значение можно изменить вручную.
5. **Domain** — оставьте предложенный временный домен, например `<YOUR_TEMPORARY_DOMAIN>`; позднее его можно заменить.
6. **Port** — для Next.js обычно используется `3000`.

Сохраните настройки.

**Шаг 4. Укажите переменные окружения.**

В созданном приложении откройте вкладку **Environment Variables** и добавьте необходимые значения, например:

```
DATABASE_URL=postgresql://user:pass@db-host:5432/mydb
NODE_ENV=production
ANTHROPIC_API_KEY=sk-ant-...
```

Если базы данных ещё нет, создайте её в Coolify через **+ New → Database → PostgreSQL**. Coolify запустит контейнер PostgreSQL и покажет внутренний адрес `DATABASE_URL`, например `postgresql://postgres:pass@postgres-xyz:5432/postgres`. Укажите его в переменных приложения.

Проверьте настройки хранения секретов и журналирования в своей инсталляции, прежде чем добавлять чувствительные значения.

**Шаг 5. Нажмите Deploy.**

Нажмите синюю кнопку Deploy в правом верхнем углу. Ход сборки будет отображаться во вкладке Logs:

```
[stage: clone]   Cloning '<repository-url-from-github>'
[stage: build]   Detected Next.js, using Nixpacks
[stage: build]   Installing Node 20, npm 10
[stage: build]   npm install (245s)
[stage: build]   npm run build (87s)
[stage: deploy]  Creating container my-vibe-app-xyz
[stage: deploy]  Container started, health check passed
[stage: proxy]   Traefik routing configured for <YOUR_TEMPORARY_DOMAIN>
[stage: ssl]     Let's Encrypt cert issued for <YOUR_TEMPORARY_DOMAIN>
```

В примере первая сборка занимает 3–5 минут, поскольку требуется загрузить базовый образ Node и установить зависимости. Последующие сборки могут проходить быстрее благодаря Docker layer cache.

Когда статус станет **Running**, скопируйте URL приложения из поля **Domains** Coolify и откройте именно его. Далее `<app-url-from-coolify>` обозначает это значение, а не настоящий адрес-заглушку. `<YOUR_TEMPORARY_DOMAIN>` используется как временный wildcard-DNS: поддомен в имени указывает на IP-адрес, например `1-2-3-4.<YOUR_TEMPORARY_DOMAIN>` на `1.2.3.4`. Такой адрес помогает проверить публикацию до настройки собственного DNS.

**Шаг 6. Убедитесь, что приложение работает.**

Добавьте `/api/users` к скопированному URL без двойной косой черты: `<app-url-from-coolify>/api/users`. Это JSON-эндпоинт шага 1; корень приложения — главная страница. Если запрос завершился ошибкой 500, проверьте stack trace во вкладке Logs. Одна из возможных причин — `DATABASE_URL` указывает на недоступную или несуществующую базу. Создайте PostgreSQL в Coolify и обновите переменную, если именно в этом причина.

Заголовок обещает публикацию за 15 минут от момента заказа VPS. В приведённом примере на чистом сервере путь занимал 12–18 минут, поэтому фактическое время зависит от сборки, сервера и DNS.

## Как настроить собственный домен и HTTPS?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Для подключения домена создайте DNS A-record с IP-адресом сервера, укажите домен в настройках приложения Coolify, включите Automatic HTTPS и запустите повторную публикацию. Let's Encrypt выпускает сертификат после проверки домена; распространение DNS-записи обычно занимает 5–30 минут. К моменту повторной публикации домен уже должен разрешаться в IP сервера, иначе проверка не пройдёт. В исходной инструкции указан интервал 12 минут до следующей попытки после неудачной проверки.

</div>

**Шаг 1. Создайте DNS A-record в панели регистратора.**

В примерах домены зарегистрированы у Reg.ru, Beget или Timeweb. Принцип настройки одинаков:

| Тип записи | Имя | Значение |
|------------|---------------------------|------------------------|
| A | `app` (или `@` для корня) | `1.2.3.4` (IP сервера) |

Сохраните запись и проверьте её из консоли:

```bash
dig app.example.com +short
# Должен вернуть 1.2.3.4
```

Если команда ничего не вернула или показала другой IP, DNS-запись ещё не распространилась. Подождите 5–30 минут.

**Шаг 2. Укажите домен в Coolify.**

В приложении откройте вкладку **Configuration → General**. В **Domains** замените скопированный временный URL приложения на `https://app.example.com`, используя собственный настроенный домен. Проверьте, что включён переключатель **Automatic HTTPS**; обычно он активен по умолчанию.

Сохраните настройки и нажмите **Redeploy**.

**Шаг 3. Дождитесь сертификата Let's Encrypt.**

В журнале могут появиться такие сообщения:

```
[stage: ssl]  Requesting Let's Encrypt cert for app.example.com
[stage: ssl]  HTTP challenge sent to /.well-known/acme-challenge/xxx
[stage: ssl]  Validation passed, cert issued
[stage: ssl]  Cert installed, HTTPS enabled
```

После успешной проверки сайт будет доступен по `https://app.example.com` с HTTPS.

Согласно [официальной инструкции Coolify по устранению неполадок Let's Encrypt](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working), проверьте следующие распространённые причины:

1. **Порт 80 закрыт в firewall.** Let's Encrypt использует HTTP challenge по адресу `http://app.example.com/.well-known/acme-challenge/xxx`. Откройте порт 80 в firewall провайдера.
2. **Включён прокси Cloudflare (оранжевое облако).** Прокси может изменить ответ на запрос проверки. Попробуйте режим «DNS only» (серое облако) либо настройте проверку DNS-01 через Cloudflare API.
3. **DNS-запись ещё не распространилась.** Если вы создали A-record недавно, подождите 5–30 минут и проверьте, что домен указывает на нужный сервер.

В исходной инструкции приведён лимит Let's Encrypt: **5 неудачных попыток в час для одного домена**, а интервал восстановления указан как одна попытка в 12 минут. При достижении лимита изучите журнал, устраните причину ошибки и дождитесь следующего допустимого запроса.

## Как Claude Code может управлять Coolify через MCP?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Model Context Protocol позволяет связать Claude Code с API Coolify. С его помощью можно запускать публикацию, проверять состояние и читать журналы — если выбранный сервер MCP предоставляет такие операции. В Coolify v4.1.0, выпущенной 18 мая 2026 года, появилась нативная поддержка MCP с инструментами только для чтения.

</div>

Model Context Protocol (MCP) — стандарт Anthropic для взаимодействия Claude Code с внешними системами. Подключённый сервер MCP предоставляет модели инструменты, которые она может вызывать. Coolify v4.1.0 включает собственную поддержку MCP.

**Нативный MCP в Coolify v4.1.0 (новинка мая 2026 года).**

В changelog v4.1.0 от 18 мая 2026 года указана поддержка MCP на уровне экземпляра и инструментов для чтения ресурсов, API и интерфейса Coolify.

Нативная точка MCP позволяет подключить Claude Code без отдельного сервера-посредника. В этой версии доступ только для чтения: можно просматривать приложения, их статусы и конфигурации, но нельзя менять настройки. Такой доступ подходит для запросов о состоянии инфраструктуры.

Подключение настраивается через `.mcp.json`:

```json
{
  "mcpServers": {
    "coolify-native": {
      "url": "https://coolify.example.com/api/v1/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-token>"
      }
    }
  }
}
```

Сведения о сроках появления полноценного доступа на запись в нативном MCP здесь не приводятся: планируемые версии и сроки необходимо сверять с актуальными релизами Coolify.

## Пять проблем при первой публикации и способы их устранить

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

При первой публикации проверьте объём RAM, доступность порта 80, влияние прокси Cloudflare на проверку Let's Encrypt, правила firewall для Docker и способ подключения GitHub. Эти пункты помогают найти типичные причины сбоев при установке и публикации.

</div>

**Проблема 1: меньше 2 GB RAM — установщик завершается из-за OOM.**

Возможный симптом: команда `curl install.sh` доходит до `docker pull coolify/coolify`, останавливается примерно на 70%, а затем процесс завершается с `Killed (signal 9)`. В `dmesg | tail` может появиться запись `Out of memory: Killed process`.

Один из временных способов — создать файл подкачки размером 4 GB:

```bash
# Create a 4 GB swap file as a temporary workaround
sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
```

Для долгосрочной эксплуатации рассмотрите VPS с 4 GB RAM. Swap может помочь запустить Coolify, но сборка крупных проектов Next.js всё ещё может завершаться с ошибкой.

**Проблема 2: Docker публикует порты, несмотря на включённый UFW.**

Возможный симптом: UFW разрешает только порт 22, однако приложение доступно из интернета через другой порт, например 3000.

В [документации Coolify по firewall](https://coolify.io/docs/knowledge-base/server/firewall) указано, что Docker использует правила iptables на основе NAT, которые могут обходить традиционный UFW.

Настройте **firewall в панели провайдера**, где правила применяются на уровне виртуальной сети. У Timeweb, Selectel и Aeza найдите раздел «Firewall» или «Сеть → Firewall».

**Проблема 3: прокси Cloudflare мешает проверке Let's Encrypt.**

В журнале после Redeploy может появиться `Let's Encrypt validation failed - challenge returned 403`.

Одна из возможных причин — Cloudflare проксирует HTTP-запрос проверки и отдаёт собственную страницу вместо файла challenge.

Попробуйте один из двух способов:

1. **Переключите запись на «DNS only»** (серое облако Cloudflare). При этом для этой записи перестанут работать прокси и связанные с ним функции.
2. **Настройте проверку DNS-01 через Cloudflare API.** В Coolify откройте Settings → SSL Configuration, выберите Cloudflare provider и укажите API-токен с разрешениями Zone:Read и DNS:Edit. Проверка Let's Encrypt будет выполняться через TXT-record вместо HTTP.

Второй способ требует дополнительных настроек и позволяет оставить прокси Cloudflare включённым.

**Проблема 4: при подключении через PAT не появляются preview-деплои PR.**

Признак: GitHub подключён через Personal Access Token, обычные публикации работают, но открытие PR не создаёт предварительную публикацию в Coolify.

Проверьте, поддерживает ли используемый способ подключения нужные webhook-события. Если для сценария требуется GitHub App, подключите его через Sources → Add → GitHub App и настройте доступ к нужному репозиторию. Старый источник PAT удаляйте только после проверки, что он больше не нужен.

**Проблема 5: Coolify не полностью повторяет возможности Vercel.**

У Coolify нет следующих функций из коробки:

| Возможность Vercel | Coolify | Что можно сделать |
|----|----|----|
| Глобальный CDN | Нет | Подключить Cloudflare для статических файлов |
| Incremental Static Regeneration | Нет | `revalidatePath` выполняется только на вашем сервере |
| Оптимизация изображений | Нет | Использовать `next/image` с локальным loader или Cloudflare Images |
| Автоматическое масштабирование при пиках | Нет | Масштабировать сервер вручную или увеличить VPS |
| Edge Functions | Нет | Использовать обычные API routes |

Если проект — SaaS с высокой нагрузкой, глобальной аудиторией и требованием задержки \< 100 ms по всему миру, оцените ограничения самостоятельного размещения и требования проекта. Для MVP и тестирования на аудитории 100–1000 пользователей в день Coolify может покрыть базовые потребности, но реальные результаты зависят от конфигурации и нагрузки.

15 минут в заголовке — ориентир для публикации одного проекта по краткому сценарию. Полная настройка инфраструктуры, включая мониторинг, резервные копии и оповещения, потребует дополнительного времени.

## Сколько можно сэкономить за год по сравнению с Vercel?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

Расходы на Vercel и Coolify зависят от трафика, конфигурации серверов, команды и набора функций. Для расчёта сравните тарифы обеих платформ и добавьте стоимость VPS, резервных копий и времени на обслуживание. Самостоятельное размещение требует первоначальной настройки и регулярной поддержки.

</div>

Цифры Vercel ниже — сценарные оценки мая 2026 года, а не текущие предложения. Самостоятельный Coolify не требует лицензии, но VPS, копии, диски, трафик и обслуживание стоят денег. Получите предложение по требованиям выше: численной цены VPS в исходных сценариях нет, поэтому фиксированная экономия не установлена.

Обозначим **C** полный месячный счёт VPS, резервного хранилища, дополнительного трафика, мониторинга и платной панели, если она нужна. Каждую позицию считайте один раз. **r** — час работы по обслуживанию в той же валюте. Оценка статьи: 5–10 часов первоначально и 1–2 в месяц, то есть **17–34 часа в первый год** и **12–24 в последующие**.

| Сценарий | Оценка Vercel/мес | Vercel/год | Coolify инфраструктура/мес | Coolify первый год с трудом | Экономия первого года |
|----|----|----|----|----|----|
| Прототип,100 000 посещений/мес | $20 + ~$5 = $25 | $300 | C | 12C + (17–34)r | $300 − 12C − (17–34)r |
| Пять проектов на VPS | $20 + $30 трафик/функции = $50 | $600 | C | 12C + (17–34)r | $600 − 12C − (17–34)r |
| Три разработчика,пять проектов | $60 места + $30 трафик = $90 | $1080 | C | 12C + (17–34)r | $1080 − 12C − (17–34)r |

Для разного размера серверов используйте отдельное C каждого сценария. Месячный эквивалент первого года — **C + (17–34)r/12**, последующих лет — **12C + (12–24)r** в год. На стороне Vercel тоже учтите сопоставимое обслуживание. Отрицательная экономия означает, что самостоятельный вариант дороже. Не прибавляйте снова полную зарплату того же инженера, если она уже включена в r.

До перехода заполните C настоящим предложением и планом копий, выберите r и сравните месяц фактической нагрузки. Без этих значений статья даёт модель затрат, а не денежную экономию.

При переходе на Coolify вы самостоятельно управляете инфраструктурой и отвечаете за её обслуживание. Это даёт контроль над размещением, но требует времени и технической поддержки.

Самостоятельное размещение — отдельная модель эксплуатации: пользователь владеет инфраструктурой и сам принимает решения о её настройке, стоимости и обслуживании.

<div class="section" role="doc-bibliography" aria-label="Источники">

### Источники

- [Coolify: введение в официальной документации](https://coolify.io/docs/get-started/introduction)
- [Coolify: инструкция по установке](https://coolify.io/docs/get-started/installation)
- [Coolify: обзор build packs](https://coolify.io/docs/applications/build-packs/overview)
- [Coolify: документация по firewall](https://coolify.io/docs/knowledge-base/server/firewall)
- [Coolify: устранение проблем с Let's Encrypt](https://coolify.io/docs/troubleshoot/dns-and-domains/lets-encrypt-not-working)
- [Coolify: тарифы](https://coolify.io/pricing)
- [Coolify: релизы v4.1.0 на GitHub](https://github.com/coollabsio/coolify/releases)
- [Anthropic: обзор Claude Code](https://code.claude.com/docs/en/overview)
- [Timeweb Cloud: VPS](https://timeweb.cloud/services/vds-vps)
- [FirstVDS: VPS](https://firstvds.ru/products/vds_vps_hosting)
- [Selectel: VPS/VDS](https://selectel.ru/services/cloud/vps-vds/)
- [Vercel: тарифы](https://vercel.com/pricing)

</div>



Дополнительные материалы — на [Ailoot](https://ailoot.ai/).

## Вопросы и ответы

### Какой URL должен вернуть JSON после развёртывания?

Скопируйте URL приложения из Domains Coolify и откройте путь /api/users. Корневой адрес — главная страница. JSON-эндпоинт /api/users задан в примере проекта.

### Как рассчитать экономию самостоятельного хостинга?

Сложите месячные VPS, копии, диски, трафик, мониторинг и дополнительную панель в C. Полная цена первого года — 12C плюс 17–34 часа по вашей ставке. Сравните с годовой оценкой Vercel и учтите сопоставимое обслуживание обеих сторон.


## Ailoot · Компания и портфель её проектов

Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
