chore(deploy): make deploy — единственный способ деплоя (SFTP paramiko вместо rsync)

- Makefile Unix: tools/deploy_sftp.py (paramiko mirror --delete), autovenv
- tools/deploy_sftp.py: рекурсивный SFTP-mirror public/ -> /dedinit.ru
- Jino SFTP-only: rsync/ssh-exec запрещены (exec request failed on channel 0)
- README/DEPLOY_INSTRUCTIONS: обновлены, деплой только через make deploy
- .gitignore: + .venv/
This commit is contained in:
2026-09-09 02:59:16 +00:00
parent 4ec03cddd5
commit 70a3671d61
5 changed files with 182 additions and 46 deletions
+34 -25
View File
@@ -2,29 +2,36 @@
## Описание
Этот документ описывает процесс публикации сгенерированного сайта (папка `public`) на хостинге через SFTP. Решение кроссплатформенное и работает как на Unix-подобных системах (Linux/macOS), так и на Windows.
Этот документ описывает процесс публикации сгенерированного сайта (папка `public`)
на хостинге через SFTP. Решение кроссплатформенное и работает как на Unix-подобных
системах (Linux/macOS), так и на Windows.
> **ВАЖНО: деплой сайта выполняется ТОЛЬКО через `make deploy`.** Аккаунт Jino —
> SFTP-only: удалённый запуск команд (rsync, ssh-exec) запрещён сервером
> (ошибка `exec request failed on channel 0`). Прямой rsync на этот аккаунт
> НЕ РАБОТАЕТ.
## Учетные данные и параметры подключения
Для работы используются следующие параметры:
- **Хост**: kpa39l.myjino.ru
- **Порт SFTP**: 2222
- **Пользователь**: kpa39l_dedinit
- **Пароль**: -Zp4ep747t25
- **Целевой путь**: /dedinit.ru (относительно домашнего каталога пользователя)
- **Целевой путь**: /dedinit.ru (относительно корня аккаунта)
## Установка зависимостей
### Для Linux/macOS
- **rsync** - установите через менеджер пакетов (например, apt-get install rsync или brew install rsync)
- **Make** - для выполнения команд из Makefile
- **Python 3** (с venv/pip)
- **Make** — для выполнения команд из Makefile
- Пакет `paramiko` ставится автоматически в `.venv/` при первом `make deploy`
(таргет `venv`), либо вручную: `pip install paramiko`
### Для Windows
- **WinSCP** - установите с официального сайта (<https://winscp.net/>)
- **Make** - можно установить через Chocolatey, MinGW или Git for Windows
- **WinSCP** — установите с официального сайта (<https://winscp.net/>)
- **Make** — можно установить через Chocolatey, MinGW или Git for Windows
## Использование Makefile
@@ -39,23 +46,28 @@ make build
### Деплой сайта
```bash
# один раз экспортируем пароль SFTP (каждый раз в новой сессии)
export SSHPASS='-Zp4ep747t25'
make deploy
```
Команда сначала собирает сайт, затем загружает содержимое папки `public/` на удаленный сервер.
ЕДИНСТВЕННЫЙ способ публикации. Сначала собирает сайт, затем зеркалирует
`public/` на сервер (`/dedinit.ru`) с удалением устаревших файлов
(аналог `rsync --delete`):
Для Windows используется WinSCP.com для SFTP-подключения, для Unix-подобных систем - rsync.
- **Unix**: `tools/deploy_sftp.py` (paramiko, SFTP + рекурсивный mirror)
- **Windows**: WinSCP.com (скрипт `winscp_script.txt`)
Если `SSHPASS` не задана — `make deploy` завершится с ошибкой и подсказкой.
### Симуляция деплоя
```bash
export SSHPASS='-Zp4ep747t25'
make deploy-dry-run
```
Команда сначала собирает сайт, затем симулирует загрузку на сервер:
- На Unix-подобных системах используется флаг `-n` для симуляции rsync
- На Windows симуляция пока не реализована, будет выведено соответствующее сообщение
Собирает сайт и показывает, какие файлы будут загружены/удалены, без заливки.
### Очистка
@@ -83,18 +95,15 @@ make help
## Конфигурация
Параметры подключения находятся в файле Makefile:
Параметры подключения для Unix находятся в `tools/deploy_sftp.py`
(переменные `DEDINIT_HOST`, `DEDINIT_PORT`, `DEDINIT_USER`, `DEDINIT_REMOTE`,
по умолчанию — kpa39l.myjino.ru:2222 / kpa39l_dedinit / /dedinit.ru).
На Windows — в `Makefile` и `winscp_script.txt`.
- HOST - адрес сервера
- PORT - порт SFTP
- USERNAME - имя пользователя
- REMOTE_PATH - путь на удаленном сервере (относительно домашнего каталога пользователя)
При необходимости вы можете изменить эти параметры в файле Makefile.
При необходимости вы можете изменить эти параметры.
## Настройка для Windows
Для корректной работы на Windows необходимо:
1. Убедиться, что WinSCP установлен в стандартную директорию `C:\Program Files (x86)\WinSCP\`
2. Файл `winscp_script.txt` содержит команды для подключения и синхронизации файлов
1. Убедиться, что WinSCP установлен в стандартную директорию
`C:\Program Files (x86)\WinSCP\`
2. Файл `winscp_script.txt` содержит команды для подключения и синхронизации файлов