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

106 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
```bash
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 и т.д.) описаны в [архитектуре](../architecture/architecture.md).