← zabolotny.de
DEENRUUA

Главная / Заметки

DevOps · CI/CD · Next.js

CI/CD для Next.js 15 на VPS: GitHub Actions, PM2 reload и Caddy

Ручной деплой был медленным и подверженным ошибкам. Сегодня достаточно git push — без простоя и без PaaS.

Сергей Заболотный ·

Исходная ситуация

PflegeOasis работает на моём VPS (Next.js 15, PostgreSQL 16, Drizzle ORM). Сначала я заходил по SSH и выполнял шаги вручную. Это отнимает время, а каждый забытый шаг — возможный источник ошибок.

Процесс

  1. Пуш в основную ветку запускает workflow GitHub Actions.
  2. Workflow подключается к серверу по SSH.
  3. На сервере выполняются git pull, pnpm install и pnpm build.
  4. pm2 reload перезапускает приложение Next.js — без простоя.
  5. Caddy стоит перед приложением как reverse proxy и автоматически занимается TLS-сертификатами.

Схематично (упрощённо) сервер при деплое делает следующее:

git pull
pnpm install
pnpm build
pm2 reload <app-name>

Почему не PaaS?

Ограничения: сборка идёт на самом сервере. При малом объёме памяти сборка может нагрузить работающее приложение — тогда разумнее собирать на CI-раннере и загружать только готовый результат.

Результат

Деплой через git push: быстрее, воспроизводимо и без ручной работы. Workflow и есть документация.

Читать дальше

ИИ · LLM · Контент-пайплайн

ИИ-контент с человеком в цикле: 200+ статей из черновиков LLM

В праве об уходе ошибки ИИ недопустимы. Вот как я использую языковую модель как помощника в письме, не передавая ей ответственность.

DevOps · Cloudflare · Zero Trust

Zero Trust для homelab: Cloudflare Tunnel и Access вместо открытых дашбордов

Внутренний дашборд был доступен публично через поддомен. Вот как я закрыл его с помощью Cloudflare Tunnel, Cloudflare Access и Tailscale.

Кейс · Здоровье · Руководства

PflegeOasis: калькулятор Pflegegrad, генератор возражений и ИИ-контент с проверкой человеком

Бесплатный портал, который помогает родственникам разобраться в немецкой системе ухода — с калькуляторами, чек-листами и более чем 200 статьями-руководствами.

Карьера · DevOps · Личный опыт

Переход в DevOps в Германии: мой план, мои подтверждения, мои пробелы

Я ищу постоянную работу в ИТ, лучше всего подходят DevOps и Platform Engineering. Здесь честно о том, что рынок даёт по цифрам, откуда я иду и чем делаю свои навыки проверяемыми.

Комментарии

Присоединяйтесь к обсуждению: комментарии работают через GitHub Discussions (вход через аккаунт GitHub). Контент GitHub/giscus загружается только после клика. Конфиденциальность

Ещё из практики

Другие заметки, кейсы и проекты — на главной странице.

Все заметки Кейс MeisterMeld Кейс PflegeOasis Кейс Kernbohr-Expert На главную