# Proposal: Автодеплой dedinit.ru через Gitea Actions при пуше в master ## Проблема Сейчас деплой dedinit.ru на Jino (SFTP) выполняется вручную: `make build && export SSHPASS=... && make deploy`. Это требует присутствия человека, не даёт истории деплоев и не срабатывает при пуше со стороны пользователя (он коммитит сам, но деплой забывает). ## Что предлагается 1. Подключить Gitea Actions: на каждый push в ветку `master` репозитория `estorozhenko/dedinit.ru` (bigbox, gitea.nixg.ru) запускать workflow: - checkout репозитория - сборка Hugo: `make build` (hugo --minify) - загрузка `public/` на Jino SFTP через существующий `tools/deploy_sftp.py` 2. Для этого: - **снять mirror-статус** у `estorozhenko/dedinit.ru` в Gitea (на зеркале Actions не работают — штатное ограничение Gitea) - синхронизацию gitverse → gitea перенести в крон-скрипт `git fetch + git push` (вместо mirror-интервала 8ч) - деплой-секрет SFTP (пароль Jino) завести в Gitea Actions secrets - раннер уже стоит и работает (bigbox-runner, v3.3.1, label `docker27-bash`) ## Затронутые сервисы и файлы - `estorozhenko/dedinit.ru` (gitea.nixg.ru) — снятие mirror, включение Actions - `/opt/dedinit.ru/.gitea/workflows/deploy.yml` — новый workflow - `/opt/dedinit.ru/Makefile`, `tools/deploy_sftp.py` — без изменений (переиспользуются) - `~/.ssh/config` / ssh-ключи — не нужны (деплой через пароль, как сейчас) - Крон на bigbox: синхронизация gitverse→gitea (замена mirror-интервала) ## План отката - Вернуть mirror-статус репозитория в Gitea (API `PATCH /repos/{owner}/{repo}` → `mirror:true`) - Удалить `.gitea/workflows/deploy.yml` из репозитория (или отключить в настройках Actions) - Удалить secrets SFTP из Gitea (пароль не скомпрометирован — он и так лежит в docs/) ## Прочие решения - Ветка по умолчанию в репо — `main`, но задание «при пуше в master» — оформим триггер на `main` (репо уже на main; в Gitea триггер по branch-шаблону). Уточним у пользователя, если нужен именно `master`.