Все сервисы объявлены в /root/zipvpnbot/docker-compose.yml. Образы бот-стека собираются локально при деплое.
| Контейнер | Образ | Внутренний порт | Роль |
|---|---|---|---|
| telegram-bot | zipvpnbot-app:local |
3003 | Telegram webhook + YooKassa bullmq worker |
| telegram-bot-scheduler | zipvpnbot-app:local |
— | Cron-задачи (рассылки, авторенью, отчёты) |
| webhook-relay | zipvpnbot-app:local |
3003 | Приём YooKassa вебхуков, очередь → telegram-bot |
| webhook-relay-redis | redis:7-alpine |
— | Redis для bullmq очереди webhook-relay |
| portal | portal:local |
3004 | Личный кабинет my.zipvpn.org + xzip.app |
| crm | crm:local |
3005 | CRM-панель crm.zipvpn.org |
| zipvpn-site | next:local |
3000 | Маркетинговый сайт zipvpn.org + блог |
| subscription-page | remnawave/subscription-page |
3010 | Страница подписки Remnawave (xzip.app?raw=1) |
| bot-db | postgres:15 |
127.0.0.1:5432 | БД бизнес-логики |
| bot-redis | redis:7.4-alpine |
— | Redis для бота (сессии, bullmq) |
| remnawave | remnawave/backend |
127.0.0.1:3000 | VPN-панель Remnawave 2.7.4 |
| remnawave-db | postgres:17 |
127.0.0.1:6767 | БД Remnawave |
| remnawave-redis | valkey/valkey:8.0.2-alpine |
— | Redis (Valkey) для Remnawave |
| caddy | caddy:2-alpine |
80, 443 | TLS-терминатор + reverse-proxy |
| xray-checker | kutovoys/xray-checker |
127.0.0.1:2112 | Мониторинг xray-ключей |
| cloudflared | cloudflare/cloudflared |
— | CF Tunnel для dash.zipvpn.org |
| wiki-db | postgres:15-alpine |
— | БД Wiki.js |
| wiki | ghcr.io/requarks/wiki:2 |
3000 | Admin wiki (эта страница) |
telegram-bot и telegram-bot-scheduler собираются из одного образа zipvpnbot-app:local:
telegram-bot → npm run start:prod (startBotServer.ts)
telegram-bot-scheduler → npm run start:scheduler:prod (startScheduler.ts)
webhook-relay → npm run start:webhooks:prod (relayServer.ts)
Оба монтируют .env как read-only (/app/.env:ro).
| Volume | Где использован |
|---|---|
pgdata |
bot-db |
redis-data |
bot-redis |
webhook-relay-redis-data |
webhook-relay-redis |
remnawave-db-data |
remnawave-db (external — создаётся вручную) |
remnawave-redis-data |
remnawave-redis (external) |
caddy-ssl-data |
caddy (LE-сертификаты, external) |
wiki-db-data |
wiki-db |