Деплой GitHub CMS на VPS: nginx, SSL и GitHub Actions

Деплой GitHub CMS на VPS состоит из трёх шагов: настройка сервера (Ubuntu + nginx + SSL), настройка GitHub Secrets для безопасного доступа по SSH, и настройка GitHub Actions workflow для автоматического деплоя при push в main. Полное время развёртывания: 15-20 минут.

Архитектура деплоя

Компонент Роль
GitHub Actions Сборка сайта (npm run build) и деплой через rsync
VPS (Ubuntu) Хостинг статических файлов
nginx Веб-сервер, отдача статики, HTTPS
Let’s Encrypt Бесплатные TLS-сертификаты
SSH + rsync Безопасная передача файлов на сервер

Процесс деплоя

  1. Push в main → триггерит GitHub Actions workflow deploy.yml
  2. Validate → проверка контента, аудит зависимостей, сборка
  3. Build → Vite SSG собирает статические HTML/CSS/JS
  4. Deploy → rsync загружает dist/ на VPS
  5. Health check → curl проверяет /, /healthz, /sitemap.xml

FAQ

Q: Какой VPS выбрать? A: Подойдёт любой VPS с Ubuntu 22.04/24.04. Минимальные требования: 512MB RAM, 10GB SSD. Рекомендуемые провайдеры: Hetzner, DigitalOcean, Vultr.

Q: Нужен ли мне домен? A: Да, для HTTPS через Let’s Encrypt нужен домен. Без домена можно использовать self-signed сертификат, но браузеры будут показывать предупреждение.

Q: Как часто обновляется SSL-сертификат? A: Let’s Encrypt сертификаты действительны 90 дней. Certbot автоматически обновляет их (systemd timer).

Начните деплой

  1. Настройте VPS по инструкции в docs/deployment/vps-baseline.md
  2. Добавьте в GitHub Secrets переменные для хоста, пользователя и SSH-ключа
  3. Запустите GitHub Actions workflow deploy.yml

Деплой GitHub CMS на VPS состоит из трёх шагов: настройка сервера (Ubuntu + nginx + SSL), настройка GitHub Secrets для безопасного доступа по SSH, и настройка GitHub Actions workflow для автоматического деплоя при push в main. Полное время развёртывания: 15-20 минут.

Архитектура деплоя

Компонент Роль
GitHub Actions Сборка сайта (npm run build) и деплой через rsync
VPS (Ubuntu) Хостинг статических файлов
nginx Веб-сервер, отдача статики, HTTPS
Let’s Encrypt Бесплатные TLS-сертификаты
SSH + rsync Безопасная передача файлов на сервер

Процесс деплоя

  1. Push в main → триггерит GitHub Actions workflow deploy.yml
  2. Validate → проверка контента, аудит зависимостей, сборка
  3. Build → Vite SSG собирает статические HTML/CSS/JS
  4. Deploy → rsync загружает dist/ на VPS
  5. Health check → curl проверяет /, /healthz, /sitemap.xml

FAQ

Начните деплой

  1. Настройте VPS по инструкции в docs/deployment/vps-baseline.md
  2. Добавьте в GitHub Secrets переменные для хоста, пользователя и SSH-ключа
  3. Запустите GitHub Actions workflow deploy.yml