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 и выполнял шаги вручную. Это отнимает время, а каждый забытый шаг — возможный источник ошибок.
Процесс
- Пуш в основную ветку запускает workflow GitHub Actions.
- Workflow подключается к серверу по SSH.
- На сервере выполняются
git pull,pnpm installиpnpm build. pm2 reloadперезапускает приложение Next.js — без простоя.- Caddy стоит перед приложением как reverse proxy и автоматически занимается TLS-сертификатами.
Схематично (упрощённо) сервер при деплое делает следующее:
git pull
pnpm install
pnpm build
pm2 reload <app-name>
Почему не PaaS?
- Контроль: база данных, бэкапы и сеть в моих руках, хостинг в Германии.
- Стоимость: один VPS тянет несколько проектов, и не мешают ни лимиты, ни холодные старты.
- Понимание: кто сам строит эксплуатацию, понимает, что происходит при сбое.
Ограничения: сборка идёт на самом сервере. При малом объёме памяти сборка может нагрузить работающее приложение — тогда разумнее собирать на 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. Здесь честно о том, что рынок даёт по цифрам, откуда я иду и чем делаю свои навыки проверяемыми.
Ещё из практики
Другие заметки, кейсы и проекты — на главной странице.
Все заметки Кейс MeisterMeld Кейс PflegeOasis Кейс Kernbohr-Expert На главную
Комментарии
Присоединяйтесь к обсуждению: комментарии работают через GitHub Discussions (вход через аккаунт GitHub). Контент GitHub/giscus загружается только после клика. Конфиденциальность