# 🚀 Техническая документация: Инфраструктура Jambotron

## 🏗️ Общая архитектура
* **Сервер**: Hetzner (Helsinki) [cite: 1, 3]
* **IP**: 89.167.99.58 [cite: 1]
* **ОС**: Ubuntu [cite: 1, 3]
* **Локальная сеть Docker**: `jambotron-net` (External) [cite: 3, 5, 6, 7]

---

## 📦 Реестр контейнеров и доступов

| Контейнер | Образ | Внешний URL | Логин / Email | Пароль (Secret) |
| :--- | :--- | :--- | :--- | :--- |
| **caddy** | `lucaslorentz/caddy-docker-proxy:latest` [cite: 3] | — | — | — |
| **jambotron-app** | `jambotron-prod:latest` [cite: 2, 3] | `jambotron.com` [cite: 1, 3] | — | — |
| **jambo-postgres** | `postgres:15-alpine` [cite: 3, 6] | — | `jambotron_admin` [cite: 6] | `jambo_secret_pass` [cite: 6] |
| **jambo-pgadmin** | `dpage/pgadmin4` [cite: 3, 6] | `pgadmin.jambotron.com` [cite: 6] | `admin@jambotron.com` [cite: 6] | `your_secure_password` [cite: 6] |
| **gitea** | `gitea/gitea:latest` [cite: 3, 5] | `gitea.jambotron.com` [cite: 5] | `Liosha84` [cite: 1] | — |
| **db** (Gitea DB) | `postgres:15-alpine` [cite: 3, 5] | — | `gitea` [cite: 5] | `gitea_db_pass` [cite: 5] |
| **gitea-runner** | `gitea/act_runner:latest` [cite: 3, 5] | — | — | `ULMDH7Defx...` (Token) [cite: 5] |
| **portainer** | `portainer/portainer-ce:latest` [cite: 3, 7] | `manage.jambotron.com` [cite: 7] | `admin` [cite: 3] | — |
| **grafana** | `grafana/grafana:latest` [cite: 3] | `jambotron.com/monitor/` [cite: 3] | `admin` [cite: 3] | `monitorPWD` [cite: 3] |
| **prometheus** | `prom/prometheus:latest` [cite: 3] | — | — | — |
| **cadvisor** | `gcr.io/cadvisor/cadvisor:latest` [cite: 3] | — | — | — |
| **node-exporter** | `prom/node-exporter:latest` [cite: 3] | — | — | — |

---

## 🌐 Детальная конфигурация сети и томов

1.  **Маршрутизация (Caddy)**:
    * Caddy работает как `docker-proxy`, автоматически подхватывая лейблы других контейнеров через `docker.sock` [cite: 3].
    * Для Grafana настроен путь `/monitor/` с `GF_SERVER_SERVE_FROM_SUB_PATH=true` [cite: 3].
    * Portainer доступен через `manage.jambotron.com` на внутреннем порту `9000` [cite: 7].

2.  **Хранение данных (Volumes)**:
    * **База приложения**: Использует именованный том `jambo_db_data` [cite: 6].
    * **Gitea**: Данные хранятся в `./data`, база — в `./db_data` [cite: 5].
    * **Мониторинг**: Используются тома `caddy_data`, `prometheus_data`, `grafana_data` [cite: 3].
    * **Portainer**: Данные в томе `portainer_data` [cite: 7].

3.  **Интеграция CI/CD**:
    * `gitea-runner` подключен к `docker.sock` для управления контейнерами во время сборки [cite: 5].
    * Используется экземпляр `https://gitea.jambotron.com` [cite: 5].

---

## 🛠️ Стек технологий
* **Backend**: Spring Boot 3.5 [cite: 1]
* **Frontend**: Angular 17 [cite: 1]
* **Proxy**: Caddy с Docker Proxy Ingress [cite: 3]
* **Monitoring**: Prometheus + Grafana [cite: 3, 4]
