3.7 KiB
Инструкция по публикации сайта через 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 (относительно корня аккаунта)
Как работает деплой
- Workflow
.gitea/workflows/deploy.yml(события:pushвmainиworkflow_dispatch). - Шаги:
- 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 + удаление устаревших файлов).
- Checkout —
ВАЖНО: аккаунт 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.