Инфраструктурата на Dictaro е разпределена между локална мрежа (DGX Spark), Azure cloud (VM + PostgreSQL + ACR) и Cloudflare (Pages + Tunnels + DNS).
Обща мрежова диаграма
Cloudflare Tunnels
Системата използва три Cloudflare Tunnels за сигурен достъп до вътрешни услуги без отваряне на портове:
| Tunnel име | Публичен URL | Вътрешна цел | Предназначение |
|---|
dictaro-pro | gx10-804f.dictaro.ai | DGX Spark :8765 (Nginx) | ASR WebSocket за клиенти |
dictaro-monitoring | monitoring.dictaro.ai | Azure VM :3000 (Grafana) | Мониторинг дашборд |
dictaro-loki | loki.dictaro.ai | Azure VM :3100 (Loki) | Централизирано събиране на логове |
Всеки tunnel се управлява от cloudflared контейнер в съответния docker-compose стек, стартиран с token от environment variable.
Cloudflare Pages
| Проект | URL | Съдържание |
|---|
dictaro-website | dictaro.ai | Маркетинг сайт (Astro) |
dictaro-docs | docs.dictaro.ai | Вътрешна документация (Docusaurus) |
Prometheus Scrape конфигурация
Prometheus на Azure VM scrape-ва метрики от няколко целеви системи:
Scrape интервал: 15 секунди за всички targets.
Targets
| Job | Target | Метрики |
|---|
licensing-api | api:9090/metrics | Gin HTTP метрики, auth counters, billing counters |
node-licensing | node-exporter:9100 | CPU, RAM, disk, network на Azure VM |
asr-gx10-804f | gx10-804f.dictaro.ai/metrics/asr | ASR request latency, queue size, model load |
node-gx10-804f | gx10-804f.dictaro.ai/metrics/node | CPU, RAM, disk на DGX Spark |
gpu-gx10-804f | gx10-804f.dictaro.ai/metrics/gpu | NVIDIA DCGM -- GPU utilization, температура, памет |
prometheus | localhost:9090 | Self-monitoring на Prometheus |
Azure ресурси
| Ресурс | Тип | Регион | Предназначение |
|---|
dictaro-vm | Virtual Machine | North Europe | Licensing API + Monitoring стек |
dictaro-db-server | Azure PostgreSQL (B1ms) | North Europe | Потребителска БД |
dictaroacr | Container Registry | West Europe | Docker образи |
dictaro-kv | Key Vault | West Europe | Секрети (db-password, JWT keys) |
dictaro-identity | Managed Identity | West Europe | Автентикация към Azure ресурси |
dictaro-env | Container Apps Environment | North Europe | (Резервен, не се ползва активно) |
DNS записи (Cloudflare)
Всички DNS записи се управляват в Cloudflare DNS зоната dictaro.ai (Zone ID: e949d0c303c70b77ff85eb1c7fe1262f):
| Запис | Тип | Стойност | Proxy |
|---|
dictaro.ai | CNAME | Cloudflare Pages | Yes |
docs.dictaro.ai | CNAME | Cloudflare Pages | Yes |
gx10-804f.dictaro.ai | CNAME | Cloudflare Tunnel | Yes |
monitoring.dictaro.ai | CNAME | Cloudflare Tunnel | Yes |
loki.dictaro.ai | CNAME | Cloudflare Tunnel | Yes |
api.dictaro.ai | CNAME | Container App FQDN | Pending |
Портове (вътрешни)
DGX Spark (10.42.9.37)
| Порт | Услуга | Експонирана |
|---|
| 8765 | Nginx (ASR proxy) | Да, чрез Cloudflare Tunnel |
| 8000 | vLLM | Само вътрешно (Docker network) |
| 8766 | Dashboard | Само през Nginx |
| 8767 | Data Collector | Само вътрешно (Docker network) |
| 9100 | Node Exporter | Само през Nginx (/metrics/node) |
| 9400 | DCGM Exporter | Само през Nginx (/metrics/gpu) |
Azure VM (dictaro-vm)
| Порт | Услуга | Експонирана |
|---|
| 8000 | Licensing API (Gin) | Да, публично (HTTPS) |
| 9090 | Prometheus Metrics | Само вътрешно (Docker network) |
| 3000 | Grafana | Да, чрез Cloudflare Tunnel |
| 3100 | Loki | Да, чрез Cloudflare Tunnel |