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

@ -179,7 +179,10 @@ CREATE TABLE stats (
**Сервисы загрузчиков:**
- `./downloads:/app/downloads` — временные файлы
- (Instagram) `./instagram_cookies.txt:/app/instagram_cookies.txt:ro`
- (YouTube) `./youtube_cookies.txt:/app/youtube_cookies.txt`
- (Instagram) `./instagram_cookies.txt:/app/instagram_cookies.txt`
Cookies монтируются с хоста (не read-only — внешний крон на отдельной машине обновляет файл по `scp`), а не запекаются в образ — это позволяет обновлять их без пересборки/передеплоя сервиса.
## Потоки данных
@ -201,17 +204,20 @@ User → Telegram → Bot
## Развертывание
### Вариант 1: Все на одном хосте
### Текущая схема: единый docker-compose + CI/CD
```bash
# Запуск всех сервисов
for dir in youtube instagram vk yapfiles tiktok; do
cd ${dir}-downloader && docker compose up -d && cd ..
done
docker compose up -d
Все 7 сервисов собираются и запускаются одним `docker-compose.yml` из корня репозитория (build-контексты на подпапки, единый `docker compose up -d --build`). Прод деплоится автоматически Forgejo Actions (`.forgejo/workflows/deploy.yml`) при пуше в `main`:
```
push в main → сборка всех 7 образов → push в Gitea registry
→ docker save | ssh | docker load на прод-хост
(registry недоступен напрямую с внешнего VPS)
→ docker compose up -d --remove-orphans на проде
```
### Вариант 2: Раздельное развертывание
На проде используется `docker-compose.prod.yml` (только `image:`, без `build:`).
### Гипотетический вариант: раздельное развёртывание
**Хост 1 (с VPN для YouTube/Instagram/TikTok):**
- Основной бот
@ -229,7 +235,7 @@ YAPFILES_DOWNLOADER_URL=http://<host2_ip>:5558
## Безопасность
- Токен бота в `.env` (не коммитится)
- Cookies Instagram в отдельном файле (не коммитится)
- Cookies YouTube/Instagram закоммичены в репозиторий как fallback внутри образа; актуальные версии приходят на хост кроном и монтируются поверх (см. `README.md#cookies-на-проде`)
- Сервисы доступны только по указанным URL
- Можно добавить API key между сервисами