Files
dedinit.ru/docs/DEPLOY_INSTRUCTIONS.md
T

3.7 KiB
Raw Blame History

Инструкция по публикации сайта через SFTP

Описание

Этот документ описывает процесс публикации сгенерированного сайта (папка public) на хостинге через SFTP.

Деплой автоматизирован через Gitea Actions. Публикация выполняется автоматически при каждом пуше в ветку main репозитория или вручную через Workflow Dispatch в Gitea UI (Actions -> deploy-dedinit -> Run workflow).

Учетные данные и параметры подключения

  • Хост: kpa39l.myjino.ru
  • Порт SFTP: 2222
  • Пользователь: kpa39l_dedinit
  • Пароль: хранится в секрете Gitea SSHPASS (Settings -> Actions -> Secrets репозитория). В открытом виде в репозитории не хранится.
  • Целевой путь: /dedinit.ru (относительно корня аккаунта)

Как работает деплой

  1. Workflow .gitea/workflows/deploy.yml (события: push в main и workflow_dispatch).
  2. Шаги:
    • Checkout — actions/checkout@v4 (самодостаточный зеркальный экшен, без обращения к github.com);
    • Install dependencies — python3, python3-venv, python3-pip, hugo;
    • Deploy via SFTP — сборка hugo --minify, создание .venv с paramiko, проверка секрета SSHPASS и запуск tools/deploy_sftp.py (рекурсивный mirror + удаление устаревших файлов).

ВАЖНО: аккаунт Jino — SFTP-only: удалённый запуск команд (rsync, ssh-exec) запрещён сервером (ошибка exec request failed on channel 0). Прямой rsync на этот аккаунт НЕ РАБОТАЕТ — только tools/deploy_sftp.py.

Запуск вручную

В Gitea: открыть репозиторий -> Actions -> workflow deploy-dedinit -> кнопка Run workflow (ветка main).

Локальный запуск (без Actions)

Только для отладки. Требуется заранее заданный секрет:

export SSHPASS='<пароль из секрета Gitea SSHPASS>'
hugo --minify
python3 -m venv .venv && .venv/bin/pip install -q paramiko
.venv/bin/python tools/deploy_sftp.py

Симуляция деплоя (dry-run)

export SSHPASS='<пароль из секрета Gitea SSHPASS>'
.venv/bin/python tools/deploy_sftp.py --dry-run

Собирает сайт и показывает, какие файлы будут загружены/удалены, без заливки.

Конфигурация

Параметры подключения находятся в tools/deploy_sftp.py (переменные DEDINIT_HOST, DEDINIT_PORT, DEDINIT_USER, DEDINIT_REMOTE, по умолчанию — kpa39l.myjino.ru:2222 / kpa39l_dedinit / /dedinit.ru).

При необходимости вы можете изменить эти параметры.

Управление паролем (секрет SSHPASS)

  • Пароль задан один раз через Gitea API: PUT /api/v1/repos/estorozhenko/dedinit.ru/actions/secrets/SSHPASS.
  • Обновить/посмотреть наличие: Gitea UI -> Settings -> Actions -> Secrets.
  • Workflow читает его как ${{ secrets.SSHPASS }} и передаёт в переменную окружения SSHPASS шагу Deploy via SFTP.