Files
homelab-docs/docs/vps/vps-miran-bots.md

6.0 KiB
Raw Blame History

VPS Миран (СПБ): боты и STUN/TURN

VPS в ЦОД Миран (Санкт-Петербург). Развёрнуты два Telegram-бота (telegram-helper-bot, anonBot), инфраструктура prod (мониторинг, метрики), а также сервер STUN/TURN для Galene (call.katykhin.ru).


Доступ и логины

  • SSH: ssh -p 15722 deploy@185.147.80.190 (пользователь deploy, в группе docker). IP: 185.147.80.190, хостнейм vm220416.vds.miran.ru, ОС Ubuntu.
  • S3 (контент ботов): URL https://api.s3.miran.ru, порт 443. Access key: j3tears100@gmail.com, Secret key: wQ1-6sZEPs92sbZTSf96 (полная таблица — в разделе «S3» ниже).
  • Админка Миран (панель хостинга VPS): логин j3tears100@gmail.com, пароль gonPok-xifrys-4nuxde.
  • Grafana, Uptime Kuma, админки ботов: логины и пароли — в .env проекта prod или в менеджере паролей.

Что развёрнуто

1. Боты и prod (Docker Compose)

Проект в /home/prod/: docker-compose.yml, каталоги bots/, infra/, CI (GitHub Actions в .github/). Запуск от пользователя deploy.

Сервис Образ / контейнер Порт Назначение
telegram-bot prod-telegram-bot 8080 telegram-helper-bot
anon-bot prod-anon-bot 8081 anonBot
prometheus prom/prometheus 9090 Метрики
alertmanager prom/alertmanager 9093 Алерты
grafana grafana/grafana 3000 Дашборды
uptime-kuma louislam/uptime-kuma 3001 Мониторинг доступности

Сеть контейнеров: prod_bots_network (bridge). Переменные окружения и секреты — в .env и настройках сервисов (в доку не дублируются).

2. STUN/TURN (Galene)

coTURN — системный сервис coturn, конфиг /etc/turnserver.conf.

  • Порты: 3478/UDP (STUN/TURN), TLS/DTLS отключены (no-tls, no-dtls).
  • Realm: call.katykhin.ru
  • External IP: 185.147.80.190
  • Диапазон портов для релея: 4915249252
  • Учётные данные для Galene заданы в конфиге (user/realm); на сервере Galene (контейнер 108) в настройках указывается этот TURN-сервер для обхода NAT.

Трафик с Galene (домашний сервер 192.168.1.108, call.katykhin.ru) уходит на этот VPS для STUN/TURN, чтобы видеозвонки работали при симметричном NAT и ограничениях провайдера.

3. S3 (контент ботов)

Объектное хранилище Миран (S3-совместимый API) для контента, который отдают боты (медиа, файлы). Доступ по HTTPS.

Параметр Значение
URL https://api.s3.miran.ru
Порт 443 (HTTPS)
Access key j3tears100@gmail.com
Secret key wQ1-6sZEPs92sbZTSf96

В ботаx (переменные окружения prod) заданы S3_ENDPOINT_URL=https://api.s3.miran.ru, регион и креды для загрузки/выдачи контента. Для локальной разработки или других клиентов использовать те же endpoint и ключи.

4. Остальное на хосте

  • nginx — порты 80 и 443; по умолчанию отдаёт статику из /var/www/html.
  • prometheus-node-exporter — порт 9100, метрики хоста для Prometheus.
  • vps-metrics — systemd-сервис, API метрик для виджета Homepage (порт 3497).
  • cron — по расписанию при необходимости.

Порты (сводка)

Порт Служба / контейнер Протокол
15722 SSH TCP
80, 443 nginx TCP
3478 coturn (STUN/TURN) UDP
3497 vps-metrics (Homepage) TCP
8080 telegram-bot TCP
8081 anon-bot TCP
9090 Prometheus TCP
9093 Alertmanager TCP
9100 node-exporter TCP
3000 Grafana TCP
3001 Uptime Kuma TCP

Управление ботами и prod

Рабочий каталог Compose: /home/prod/. От пользователя deploy:

cd /home/prod
docker compose ps
docker compose up -d
docker compose logs -f telegram-bot

Образы ботов собираются из репозитория (Dockerfile в проекте); деплой через Makefile / CI при необходимости.


Связь с домашним контуром

  • Galene (контейнер 108, call.katykhin.ru): в настройках сервера Galene указан TURN-сервер 185.147.80.190:3478 (realm call.katykhin.ru), чтобы клиенты за NAT могли устанавливать медиа-сессии через этот VPS.
  • Homepage (контейнер 100): виджет метрик может показывать данные с vps-metrics (185.147.80.190:3497).

Остальные узлы homelab (Proxmox, NPM и т.д.) описаны в архитектуре.