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 завантажується лише після кліку. Конфіденційність