Вайбкодинг ускоряет разработку — прототип готов за вечер. Деплой не должен стать узким местом: на современных платформах путь от git push до рабочего URL занимает считанные минуты. Ниже три сценария с командами, которые можно копировать, и то, о чём обычно забывают, — где будут жить данные и как их не потерять.
Шаг 0: чеклист перед деплоем
Перед первым деплоем проверьте:
# 1. Проект собирается локально без ошибок
npm run build
# 2. Переменные окружения описаны в .env.example
cat .env.example
# 3. .gitignore включает .env и node_modules
grep -E "\.env|node_modules" .gitignore
# 4. Если в базе уже есть данные — сохраните копию
dbsend backup ./data.db -d "$DBSEND_DATABASE_ID" -e sqlite -l "pre-production-deploy"
Убедитесь, что в репозитории нет секретов (API-ключей, паролей), в том числе в истории коммитов. Для проверки подойдёт gitleaks:
gitleaks detect --source .
Сценарий 1: Next.js на Vercel
Vercel — создатели Next.js, интеграция максимальная.
Шаг 1: Подготовить репозиторий
git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/username/my-project.git
git push -u origin main
Шаг 2: Задеплоить через Vercel CLI
npm i -g vercel
# Первый запуск: CLI спросит аккаунт, имя проекта и папку с кодом
vercel
# Продакшн-деплой
vercel --prod
Через пару минут проект доступен по адресу вида https://my-project.vercel.app.
Шаг 3: Добавить переменные окружения
vercel env add DATABASE_URL production
vercel env add NEXTAUTH_SECRET production
# Или в dashboard: Project → Settings → Environment Variables
Шаг 4: Автодеплой при push
Если проект подключён к GitHub, Vercel деплоит каждый push в main, а пул-реквесты получают Preview URL.
git add .
git commit -m "update landing page"
git push # → запустится автодеплой
Важно: у Vercel нет постоянного диска. SQLite-файл рядом с приложением не переживёт следующий деплой — базу нужно вынести во внешний сервис (PostgreSQL у облачного провайдера, Turso и т. п.).
Сценарий 2: PocketBase на Amvera
Amvera — российская PaaS-платформа с git-деплоем.
Шаг 1: Подготовить Dockerfile
FROM alpine:3.20
# Актуальную версию смотрите на странице релизов PocketBase
ARG PB_VERSION=0.37.5
RUN apk add --no-cache unzip ca-certificates wget && \
wget -q "https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip" && \
unzip "pocketbase_${PB_VERSION}_linux_amd64.zip" -d / && \
rm "pocketbase_${PB_VERSION}_linux_amd64.zip"
EXPOSE 8090
CMD ["/pocketbase", "serve", "--http=0.0.0.0:8090", "--dir=/data/pb_data"]
# amvera.yml — формат полей сверяйте с документацией Amvera
meta:
environment: docker
toolchain:
name: docker
version: latest
build:
dockerfile: Dockerfile
run:
persistenceMount: /data
containerPort: 8090
Ключевой момент — --dir=/data/pb_data: база и загруженные файлы должны лежать в постоянном хранилище, иначе пропадут при пересборке.
Шаг 2: Задеплоить
# Адрес репозитория показан в кабинете Amvera
git remote add amvera https://git.amvera.ru/username/my-pocketbase
git push amvera main
После сборки PocketBase доступен по техническому домену Amvera; админ-панель — по пути /_/.
Шаг 3: Настроить домен
В настройках проекта Amvera добавьте свой домен — SSL-сертификат выпускается автоматически.
Сценарий 3: Fullstack на Coolify (свой VPS)
Coolify — open-source аналог Railway, который вы разворачиваете на своём VPS.
Установка Coolify (один раз)
# На чистом VPS с Ubuntu
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | sudo bash
# Панель откроется на http://VPS_IP:8000
# Создайте аккаунт администратора и добавьте сервер
Деплой Next.js-проекта
В Coolify UI:
- New Resource → Application → GitHub.
- Выбрать репозиторий и ветку.
- Сборка через Nixpacks определит Next.js автоматически (или используйте свой Dockerfile).
- Environment Variables → вставить переменные.
- Deploy.
Результат: приложение на вашем домене с SSL и автодеплоем при push.
Добавить PocketBase рядом
В Coolify: New Resource → Service → найдите PocketBase в каталоге готовых сервисов. Coolify создаст постоянный том для данных; назначьте домен вроде api.your-domain.com. Оба сервиса живут на одном VPS.
Сравнение платформ деплоя
| Платформа | Оплата из России | Серверы в России | Постоянный диск | Автодеплой |
|---|---|---|---|---|
| Vercel | Иностранная карта | Нет | Нет | Да |
| Amvera | Рубли | Да | Да (/data) | Да |
| Coolify (self-hosted) | Рубли (за VPS) | Если VPS в России | Docker-тома | Да |
| Railway | Иностранная карта | Нет | Volumes | Да |
| Timeweb Cloud Apps | Рубли | Да | Зависит от типа приложения | Да |
| Yandex Cloud | Рубли | Да | Через управляемые БД | Через CI/CD |
Тарифы меняются — актуальные цены смотрите на сайтах платформ.
Где живут данные и как их бэкапить
Код всегда восстановится из git. База — нет. В каждом сценарии данные лежат в своём месте:
- Vercel: база во внешнем сервисе (PostgreSQL, Turso и т. п.). Бэкап делается на стороне этого сервиса или вашим
pg_dump. - Amvera: файлы в
/data— у PocketBase этоpb_data/data.dbи папкаstorageс загрузками. - Coolify: Docker-тома на VPS. Если сервер умрёт, тома умрут вместе с ним — копию нужно держать в другом месте. Как настроить встроенные бэкапы в S3, разобрано в статье бэкап БД в Docker и Coolify.
Для PocketBase копию делайте через .backup или встроенные бэкапы в админке, а не cp живого файла — подробности в статье бэкап PocketBase. Для PostgreSQL — pg_dump отдельным шагом CI перед миграциями:
# GitHub Actions / любой CI, шаг перед деплоем
pg_dump --format=plain "$DATABASE_URL" > /tmp/production.sql
dbsend backup /tmp/production.sql \
-d "$DBSEND_DATABASE_ID" \
-e postgresql_dump \
-l "pre-deploy-${GITHUB_SHA::7}"
Не встраивайте сетевой бэкап в buildCommand Vercel: сборка может перезапускаться. Делайте отдельный job и храните DBSEND_API_KEY в secrets CI. Команды CLI — в документации.
После первого бэкапа один раз восстановите его в пустую базу и убедитесь, что приложение с ней стартует: как проверить, что бэкап рабочий.
Частые вопросы
Как задеплоить Next.js бесплатно?
Бесплатный тариф Vercel Hobby подходит для некоммерческих проектов: автодеплой из GitHub и Preview URL. Для коммерческого использования нужен платный тариф. Для проектов с российской аудиторией рассмотрите Amvera или Coolify на российском VPS.
Как деплоить на Vercel из России?
Деплой через CLI и GitHub работает, но платный тариф требует иностранной карты, а у части российских пользователей сайты на Vercel открываются нестабильно. Если аудитория в России — надёжнее Amvera или Coolify на российском VPS. Подробнее — в статье аналоги Vercel в России.
Что такое Preview Deployment?
Отдельный URL с версией приложения для каждого pull request — можно проверить изменения до мержа в main. Vercel создаёт его автоматически, в Coolify preview-деплои включаются в настройках приложения.
Нужен ли Docker для деплоя?
Не обязательно. Vercel, Railway и Coolify (через Nixpacks) определяют фреймворк сами. Dockerfile нужен для нестандартных стеков или когда вы хотите полностью контролировать сборку — как в примере с PocketBase.
Как деплоить PocketBase в России?
Проще всего — Docker на российском VPS через Coolify или Docker Compose, либо Amvera с постоянным хранилищем. PocketBase — один контейнер, один том для данных, один порт. Подробнее о самом PocketBase — в статье что такое PocketBase.



