106 lines
6.0 KiB
Markdown
106 lines
6.0 KiB
Markdown
# 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
|
||
- **Диапазон портов для релея:** 49152–49252
|
||
- Учётные данные для 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).
|