chore: remove obsolete per-folder scripts, add cookies-cron reference, update docs
All checks were successful
CI/CD Pipeline / build-and-deploy (push) Successful in 1m47s

- Remove get_cookies.sh (targets a container without yt-dlp, already
  broken), get_cookies_local.sh, start_all.sh/stop_all.sh — these
  implement the old per-service-compose startup that now conflicts
  with the unified root docker-compose.yml.
- Add cookies-cron/ — a reference copy of the scripts actually running
  via cron on the separate browser-equipped machine, with setup
  requirements and instructions for standing up a new cron host.
- Update README.md/ARCHITECTURE.md to describe the current unified
  docker-compose + CI/CD deploy flow and host-mounted cookies instead
  of the old per-folder workflow.
This commit is contained in:
vrubelroman 2026-06-30 22:16:40 +00:00
parent b3550f4aaf
commit 772e9fd5b4
12 changed files with 479 additions and 171 deletions

View file

@ -86,18 +86,16 @@ cd instagram-downloader
### 4. Запуск сервисов
**Каждый сервис запускается отдельно:**
Все 7 сервисов (бот, admin-бот, 5 загрузчиков) собираются и запускаются одной командой из корня проекта — единый `docker-compose.yml` уже содержит build-контексты для всех подпапок:
```bash
# Запуск сервисов загрузчиков
cd youtube-downloader && docker compose up -d && cd ..
cd instagram-downloader && docker compose up -d && cd ..
cd vk-downloader && docker compose up -d && cd ..
cd yapfiles-downloader && docker compose up -d && cd ..
cd tiktok-downloader && docker compose up -d && cd ..
docker compose up -d --build
```
# Запуск основного бота (из корня проекта)
docker compose up -d
Перезапустить/пересобрать только один сервис (например, при правке `youtube-downloader/app.py`):
```bash
docker compose up -d --build youtube-downloader
```
### 5. Проверка статуса
@ -172,20 +170,21 @@ Content-Type: application/json
}
```
## Cookies на проде (YouTube/Instagram)
В проде `youtube_cookies.txt`/`instagram_cookies.txt` монтируются в контейнеры с хоста (`docker-compose.prod.yml`), а не запекаются в образ — это позволяет обновлять их без пересборки/передеплоя. `yt-dlp`/`app.py` читают файл с диска при каждом запросе — рестарт контейнера не требуется.
Куки получает по крону (раз в 20 минут) отдельная машина с графическим окружением и реальным залогиненным браузером (на самом проде это сделать нельзя — там нет GUI/браузера), и разливает результат по `scp` сразу на прод и на тестовый стенд. Скрипты для этого, требования к cron-машине и инструкция по развёртыванию на новой машине — в [`cookies-cron/`](cookies-cron/README.md). Это копия того, что реально крутится на cron-машине; `youtube-downloader/get_youtube_cookies.sh` и `instagram-downloader/get_instagram_cookies.sh` в подпапках сервисов — более старые версии тех же скриптов, с тех пор разошедшиеся.
## Обновление
Деплой на прод выполняется автоматически через Forgejo CI/CD (`.forgejo/workflows/deploy.yml`) при пуше в `main`: сборка всех 7 образов → push в registry → `docker save`/`ssh`/`docker load` на прод-хост (registry не доступен с внешнего VPS напрямую) → `docker compose up -d --remove-orphans`.
Для ручного локального обновления:
```bash
git pull
# Пересобрать и перезапустить основной бот
docker compose down && docker compose up -d --build
# Пересобрать сервисы загрузчиков
cd youtube-downloader && docker compose up -d --build && cd ..
cd instagram-downloader && docker compose up -d --build && cd ..
cd vk-downloader && docker compose up -d --build && cd ..
cd yapfiles-downloader && docker compose up -d --build && cd ..
cd tiktok-downloader && docker compose up -d --build && cd ..
docker compose up -d --build
```
## Локализация
@ -204,7 +203,7 @@ cd tiktok-downloader && docker compose up -d --build && cd ..
- Проверьте, что все сервисы запущены и доступны
### Сервис не работает
- Проверьте логи сервиса: `cd <service>-downloader && docker compose logs -f`
- Проверьте логи сервиса: `docker compose logs -f <service>-downloader`
- Проверьте URL в `.env`
- Для Instagram: проверьте валидность cookies