# Deploy через Actions и Secrets Эта страница описывает деплой через workflow `.github/workflows/deploy-service.yml`. ## Что делает workflow - деплоит проект на сервер `192.168.10.14` по SSH (ключ) - перед деплоем генерирует `config.json` из secrets - копирует архив на сервер, распаковывает в `DEPLOY_PATH` - перезапускает systemd-сервис `DEPLOY_SERVICE` ## Обязательные secrets ### Доступ к репозиторию - `GIT_TOKEN` (или `GITEA_TOKEN`) ### SSH и деплой - `DEPLOY_HOST` — должен быть `192.168.10.14` - `DEPLOY_PORT` — обычно `22` - `DEPLOY_USER` - `DEPLOY_SSH_PRIVATE_KEY` - `DEPLOY_PATH` - `DEPLOY_SERVICE` ### Генерация config.json - `CFG_REGRU_USERNAME` - `CFG_REGRU_PASSWORD` - `CFG_EMAIL` - `CFG_DOMAINS` `CFG_DOMAINS` поддерживает два формата: 1) JSON-массив: ```json ["dfv24.com", "pages.github.dfv24.com"] ``` 2) строка через запятую: ```text dfv24.com,pages.github.dfv24.com ``` Если `CFG_DOMAIN` не указан, в поле `domain` берётся первый домен из `CFG_DOMAINS`. ## Опциональные secrets - `DEPLOY_SSH_KNOWN_HOSTS` - `CFG_DOMAIN` - `CFG_WILDCARD` - `CFG_CERT_DIR` - `CFG_LOG_FILE` - `CFG_DNS_PROPAGATION_WAIT` - `CFG_DNS_CHECK_ATTEMPTS` - `CFG_DNS_CHECK_INTERVAL` - `CFG_RENEWAL_DAYS` - `CFG_NPM_ENABLED` - `CFG_NPM_HOST` - `CFG_NPM_EMAIL` - `CFG_NPM_PASSWORD` ## Соответствие полей config.json - `CFG_REGRU_USERNAME` → `regru_username` - `CFG_REGRU_PASSWORD` → `regru_password` - `CFG_DOMAIN` / первый из `CFG_DOMAINS` → `domain` - `CFG_DOMAINS` → `domains` - `CFG_WILDCARD` → `wildcard` - `CFG_EMAIL` → `email` - `CFG_CERT_DIR` → `cert_dir` - `CFG_LOG_FILE` → `log_file` - `CFG_DNS_PROPAGATION_WAIT` → `dns_propagation_wait` - `CFG_DNS_CHECK_ATTEMPTS` → `dns_check_attempts` - `CFG_DNS_CHECK_INTERVAL` → `dns_check_interval` - `CFG_RENEWAL_DAYS` → `renewal_days` - `CFG_NPM_ENABLED` → `npm_enabled` - `CFG_NPM_HOST` → `npm_host` - `CFG_NPM_EMAIL` → `npm_email` - `CFG_NPM_PASSWORD` → `npm_password` ## Как запустить деплой 1. Откройте Actions 2. Запустите workflow `Deploy scripts to remote server` 3. При необходимости задайте `ref` (ветка/тег/коммит) После завершения проверьте статус сервиса на сервере: ```bash sudo systemctl status letsencrypt-regru.service ```