Деплой 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`