Update infrastructure diagram with Mermaid diagrams
This commit is contained in:
@@ -8,245 +8,295 @@
|
||||
|
||||
## Network Topology Overview
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ INTERNET │
|
||||
│ WAN: 62.73.120.142 │
|
||||
└────────────────────────────────────────────────┬────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
┌──────────────────────┴──────────────────────┐
|
||||
│ MikroTik hAP ax³ Router │
|
||||
│ 192.168.31.1 │
|
||||
│ RouterOS 7.20.6 │
|
||||
│ │
|
||||
│ ┌────────────────────────────────────────┐ │
|
||||
│ │ Docker Containers (172.17.0.x) │ │
|
||||
│ │ ┌─────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │ AdGuard Home│ │ Tailscale │ │ │
|
||||
│ │ │ 172.17.0.5 │ │ 172.17.0.4 │ │ │
|
||||
│ │ │ DNS/DoH/DoT │ │ VPN Client │ │ │
|
||||
│ │ └─────────────┘ └─────────────────┘ │ │
|
||||
│ └────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ Interfaces: │
|
||||
│ • ether1 (WAN) - 62.73.120.142/23 │
|
||||
│ • bridge (LAN) - 192.168.31.1/24 │
|
||||
│ • docker-bridge - 172.17.0.1/24 │
|
||||
│ • back-to-home-vpn - 192.168.216.1/24 │
|
||||
└──────────────────────────┬───────────────────┘
|
||||
│
|
||||
┌─────────────────────────────────────┼─────────────────────────────────────┐
|
||||
│ │ │
|
||||
▼ ▼ ▼
|
||||
┌──────────────────────────┐ ┌──────────────────────────────────────────────────────────────────┐
|
||||
│ MikroTik CSS326 Switch │ │ Unraid Server │
|
||||
│ 192.168.31.9 │ │ 192.168.31.2 │
|
||||
│ 24x Gigabit + 2x SFP │ │ Tailscale: 100.100.208.70 │
|
||||
│ SwOS │ │ SSH Port: 422 │
|
||||
└──────────────────────────┘ └──────────────────────────────────────────────────────────────────┘
|
||||
│
|
||||
▼
|
||||
┌──────────────────────────┐
|
||||
│ MikroTik cAP ac │
|
||||
│ 192.168.31.6 │
|
||||
│ CAPsMAN Access Point │
|
||||
│ RouterOS 7.20.1 │
|
||||
└──────────────────────────┘
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph Internet
|
||||
WAN[/"🌐 Internet<br/>WAN: 62.73.120.142"/]
|
||||
end
|
||||
|
||||
subgraph Router["MikroTik hAP ax³ (192.168.31.1)"]
|
||||
direction TB
|
||||
subgraph RouterContainers["Docker Containers"]
|
||||
AGH["🛡️ AdGuard Home<br/>172.17.0.5<br/>DNS/DoH/DoT/DoQ"]
|
||||
TS["🔗 Tailscale<br/>172.17.0.4"]
|
||||
end
|
||||
end
|
||||
|
||||
subgraph LAN["LAN Network (192.168.31.0/24)"]
|
||||
Switch["🔌 CSS326 Switch<br/>192.168.31.9"]
|
||||
AP["📶 cAP ac<br/>192.168.31.6"]
|
||||
Unraid["🖥️ Unraid Server<br/>192.168.31.2"]
|
||||
end
|
||||
|
||||
WAN --> Router
|
||||
Router --> Switch
|
||||
Switch --> AP
|
||||
Switch --> Unraid
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Port Forwarding / NAT Rules (WAN → LAN)
|
||||
## Port Forwarding / NAT Rules
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ INTERNET (62.73.120.142) │
|
||||
└────────┬──────────┬──────────┬──────────┬──────────┬──────────┬──────────┬─────────────┘
|
||||
│ │ │ │ │ │ │
|
||||
│:80 │:443 │:853 │:8853 │:32400 │:51413 │:21115-21119
|
||||
│ │ │ │ │ │ │
|
||||
▼ ▼ ▼ ▼ ▼ ▼ ▼
|
||||
┌─────────────┐ ┌─────────────┐ ┌───────────────┐ ┌───────────────┐ ┌─────────────┐
|
||||
│ Traefik │ │ Traefik │ │ AdGuard Home │ │ AdGuard Home │ │ Plex │
|
||||
│192.168.31.2 │ │192.168.31.2 │ │ 172.17.0.5 │ │ 172.17.0.5 │ │192.168.31.2 │
|
||||
│ :8001 │ │ :44301 │ │ :853 │ │ :8853 │ │ :32400 │
|
||||
│ (HTTP) │ │ (HTTPS) │ │ (DoT) │ │ (DoQ) │ │ (Media) │
|
||||
└─────────────┘ └─────────────┘ └───────────────┘ └───────────────┘ └─────────────┘
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph WAN["Internet (62.73.120.142)"]
|
||||
P80[":80"]
|
||||
P443[":443"]
|
||||
P853[":853"]
|
||||
P8853[":8853"]
|
||||
P32400[":32400"]
|
||||
P51413[":51413"]
|
||||
P21115[":21115-21119"]
|
||||
end
|
||||
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ Transmission │ RustDesk Server │ DNS Redirect (LAN) │
|
||||
│ 192.168.31.2 │ 192.168.31.2 │ 53 → 172.17.0.5:5355 │
|
||||
│ :51413 │ :21115-21119 │ (Force to AdGuard) │
|
||||
│ (BitTorrent) │ (Remote Desktop) │ │
|
||||
└─────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
subgraph Destinations
|
||||
Traefik80["Traefik<br/>192.168.31.2:8001"]
|
||||
Traefik443["Traefik<br/>192.168.31.2:44301"]
|
||||
DoT["AdGuard DoT<br/>172.17.0.5:853"]
|
||||
DoQ["AdGuard DoQ<br/>172.17.0.5:8853"]
|
||||
Plex["Plex<br/>192.168.31.2:32400"]
|
||||
Transmission["Transmission<br/>192.168.31.2:51413"]
|
||||
RustDesk["RustDesk<br/>192.168.31.2"]
|
||||
end
|
||||
|
||||
P80 --> Traefik80
|
||||
P443 --> Traefik443
|
||||
P853 --> DoT
|
||||
P8853 --> DoQ
|
||||
P32400 --> Plex
|
||||
P51413 --> Transmission
|
||||
P21115 --> RustDesk
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Unraid Docker Services Map
|
||||
## Unraid Docker Services
|
||||
|
||||
### Core Infrastructure & Security
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Core["Core Infrastructure"]
|
||||
dockersocket["🔌 dockersocket<br/>172.18.0.2:2375"]
|
||||
traefik["🔀 traefik<br/>172.18.0.3<br/>:8001→80, :44301→443"]
|
||||
homarr["🏠 homarr<br/>172.18.0.4<br/>xtrm-lab.org"]
|
||||
end
|
||||
|
||||
subgraph Security["Security & Identity"]
|
||||
authentik["🔐 authentik<br/>172.18.0.11<br/>auth.xtrm-lab.org"]
|
||||
authentik_worker["⚙️ authentik-worker<br/>172.18.0.12"]
|
||||
vaultwarden["🔑 vaultwarden<br/>172.18.0.15<br/>vault.xtrm-lab.org"]
|
||||
end
|
||||
|
||||
subgraph Databases["Databases"]
|
||||
postgresql["🐘 postgresql17<br/>172.18.0.13:5432"]
|
||||
redis["📦 Redis<br/>172.18.0.14:6379"]
|
||||
end
|
||||
|
||||
traefik --> dockersocket
|
||||
authentik --> postgresql
|
||||
authentik --> redis
|
||||
authentik_worker --> authentik
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||
│ UNRAID SERVER (192.168.31.2) │
|
||||
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌─── dockerproxy Network (172.18.0.0/16) ──────────────────────────────────────────────────────────────┐ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ CORE INFRASTRUCTURE │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ dockersocket │ │ traefik │ │ homarr │ │ │ │
|
||||
│ │ │ │ 172.18.0.2 │ │ 172.18.0.3 │ │ 172.18.0.4 │ │ │ │
|
||||
│ │ │ │ :2375 │ │ :8001→80 │ │ :10004→7575 │ │ │ │
|
||||
│ │ │ │ Socket Proxy │ │ :44301→443 │ │ Dashboard │ │ │ │
|
||||
│ │ │ │ │ │ :8183→8080 │ │ xtrm-lab.org │ │ │ │
|
||||
│ │ │ │ │ │ traefik.xtrm- │ │ │ │ │ │
|
||||
│ │ │ │ │ │ lab.org │ │ │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ SECURITY │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ authentik │ │ authentik-worker│ │ vaultwarden │ │ │ │
|
||||
│ │ │ │ 172.18.0.11 │ │ 172.18.0.12 │ │ 172.18.0.15 │ │ │ │
|
||||
│ │ │ │ :9000, :9443 │ │ (Worker) │ │ :4743→80 │ │ │ │
|
||||
│ │ │ │ auth.xtrm- │ │ │ │ vault.xtrm- │ │ │ │
|
||||
│ │ │ │ lab.org │ │ │ │ lab.org │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ DATABASES │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ postgresql17 │ │ Redis │ │ │ │
|
||||
│ │ │ │ 172.18.0.13 │ │ 172.18.0.14 │ │ │ │
|
||||
│ │ │ │ :5432 │ │ :6379→6379 │ │ │ │
|
||||
│ │ │ │ PostgreSQL │ │ Key-Value │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ DEVOPS │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ gitea │ │woodpecker-server│ │ woodpecker-agent│ │ │ │
|
||||
│ │ │ │ 172.18.0.31 │ │ 172.18.0.32 │ │ 172.18.0.33 │ │ │ │
|
||||
│ │ │ │ :2222→22 │ │ :80, :443 │ │ :3000 │ │ │ │
|
||||
│ │ │ │ :3005→3000 │ │ :8000, :9000 │ │ CI/CD Agent │ │ │ │
|
||||
│ │ │ │ git.xtrm-lab.org│ │ ci.xtrm-lab.org │ │ │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ MONITORING │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ UptimeKuma │ │ Uptime-Kuma-API│ │ AutoKuma │ │speedtest-tracker│ │ │ │
|
||||
│ │ │ │ 172.18.0.20 │ │ 172.18.0.18 │ │ 172.18.0.19 │ │ 172.18.0.21 │ │ │ │
|
||||
│ │ │ │ :3001→3001 │ │ :8000→8000 │ │ (Auto Mgmt) │ │ :1180→80 │ │ │ │
|
||||
│ │ │ │ uptime.xtrm- │ │ │ │ │ │ speedtest.xtrm- │ │ │ │
|
||||
│ │ │ │ lab.org │ │ │ │ │ │ lab.org │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ PRODUCTIVITY │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ actual-budget │ │ n8n │ │ karakeep │ │ Nextcloud │ │ │ │
|
||||
│ │ │ │ 172.18.0.16 │ │ 172.18.0.17 │ │ 172.18.0.25 │ │ 172.18.0.24 │ │ │ │
|
||||
│ │ │ │ :5006→5006 │ │ :5678 │ │ :3000 │ │ :8666→80 │ │ │ │
|
||||
│ │ │ │ actual.xtrm- │ │ n8n.xtrm- │ │ karakeep.xtrm- │ │ nextcloud.xtrm- │ │ │ │
|
||||
│ │ │ │ lab.org │ │ lab.org │ │ lab.org │ │ lab.org │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ NETWORK MANAGEMENT │ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ netdisco-web │ │ netdisco-backend│ │ pangolin │ │ │ │
|
||||
│ │ │ │ 172.18.0.41 │ │ 172.18.0.42 │ │ 172.18.0.51 │ │ │ │
|
||||
│ │ │ │ :5000 │ │ (Backend) │ │ :3003→3001 │ │ │ │
|
||||
│ │ │ │ netdisco.xtrm- │ │ │ │ :3004→3002 │ │ │ │
|
||||
│ │ │ │ lab.org │ │ │ │ Tunnel Mgmt │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ │ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─── netbox Network (172.24.0.0/16) ───────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │ │
|
||||
│ │ │ netbox │ │ netbox-worker │ │ netbox-postgres │ │ netbox-redis │ │netbox-redis-│ │ │
|
||||
│ │ │ 172.24.0.5 │ │ 172.24.0.6 │ │ 172.24.0.4 │ │ 172.24.0.2 │ │ cache │ │ │
|
||||
│ │ │ :8090→8080 │ │ (Worker) │ │ :5432 │ │ :6379 │ │ 172.24.0.3 │ │ │
|
||||
│ │ │ netbox.xtrm- │ │ │ │ PostgreSQL │ │ Redis │ │ :6379 │ │ │
|
||||
│ │ │ lab.org │ │ │ │ │ │ │ │ │ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────┘ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─── slurpit Network ──────────────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │ slurpit-portal │ │ slurpit-scanner │ │ slurpit-scraper │ │slurpit-warehouse│ │ │
|
||||
│ │ │ (dockerproxy) │ │ │ │ │ │ │ │ │
|
||||
│ │ │ :80, :3306 │ │ (Discovery) │ │ (Scraping) │ │ (Storage) │ │ │
|
||||
│ │ │ slurpit.xtrm- │ │ │ │ │ │ │ │ │
|
||||
│ │ │ lab.org │ │ │ │ │ │ │ │ │
|
||||
│ │ ├─────────────────┴──┴─────────────────┴──┴─────────────────┴──┴─────────────────┤ │ │
|
||||
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
|
||||
│ │ │ │ slurpit-mariadb │ │ slurpit-mongodb │ │ │ │
|
||||
│ │ │ │ :3306 │ │ :27017 │ │ │ │
|
||||
│ │ │ │ MariaDB │ │ MongoDB │ │ │ │
|
||||
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
|
||||
│ │ └────────────────────────────────────────────────────────────────────────────────┘ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─── br0 macvlan Network (192.168.31.0/24) ────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │binhex-pihole │ │ unbound │ │ TimeMachine │ │ │
|
||||
│ │ │ 192.168.31.4 │ │ 192.168.31.5 │ │ 192.168.31.12 │ │ │
|
||||
│ │ │ Secondary DNS │ │ Recursive DNS │ │ SMB/AFP │ │ │
|
||||
│ │ │ ph1.xtrm-lab.org│ │ │ │ Time Machine │ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─── Host Network ─────────────────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │ plex │ │ NetAlertX │ │ unimus │ │HomeAssistant │ │ │
|
||||
│ │ │ :32400 (Media) │ │ (Network Mon) │ │ unimus.xtrm- │ │ha.xtrm-lab.org │ │ │
|
||||
│ │ │ plex.xtrm- │ │ netalert.xtrm- │ │ lab.org │ │ │ │ │
|
||||
│ │ │ lab.org │ │ lab.org │ │ Config Backup │ │ Home Automation │ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │
|
||||
│ │ ┌─────────────────┐ │ │
|
||||
│ │ │ UrBackup │ │ │
|
||||
│ │ │ urbackup.xtrm- │ │ │
|
||||
│ │ │ lab.org │ │ │
|
||||
│ │ │ Server Backup │ │ │
|
||||
│ │ └─────────────────┘ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─── Bridge Network ───────────────────────────────────────────────────────────────────────────────────┐ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │ rustdesk-hbbs │ │ rustdesk-hbbr │ │ portainer │ │ transmission │ │ │
|
||||
│ │ │ :21115-21119 │ │ (Relay) │ │ :9002 │ │ :9091→9091 │ │ │
|
||||
│ │ │ rustdesk.xtrm- │ │ │ │ Container │ │ :51413→51413 │ │ │
|
||||
│ │ │ lab.org │ │ │ │ Management │ │ BitTorrent │ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │
|
||||
│ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │
|
||||
│ │ │ Libation │ │ stunnel-dot │ │ DoH-Server │ │ │
|
||||
│ │ │ 172.18.0.23 │ │ │ │ 172.18.0.22 │ │ │
|
||||
│ │ │ Audiobooks │ │ DoT Stunnel │ │ doh.xtrm-lab.org│ │ │
|
||||
│ │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │
|
||||
│ └───────────────────────────────────────────────────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||
|
||||
### DevOps & CI/CD
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph DevOps["DevOps Stack"]
|
||||
gitea["📚 gitea<br/>172.18.0.31<br/>git.xtrm-lab.org<br/>:2222→22, :3005→3000"]
|
||||
woodpecker_server["🪵 woodpecker-server<br/>172.18.0.32<br/>ci.xtrm-lab.org"]
|
||||
woodpecker_agent["🤖 woodpecker-agent<br/>172.18.0.33"]
|
||||
end
|
||||
|
||||
gitea --> woodpecker_server
|
||||
woodpecker_server --> woodpecker_agent
|
||||
```
|
||||
|
||||
### DNS Infrastructure
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph RouterDNS["MikroTik Router DNS"]
|
||||
adguard["🛡️ AdGuard Home<br/>172.17.0.5<br/>PRIMARY<br/>DoH/DoT/DoQ"]
|
||||
end
|
||||
|
||||
subgraph UnraidDNS["Unraid DNS (Secondary)"]
|
||||
pihole["🕳️ Pi-hole<br/>192.168.31.4<br/>ph1.xtrm-lab.org"]
|
||||
unbound["🔄 Unbound<br/>192.168.31.5<br/>Recursive DNS"]
|
||||
doh_server["🌐 DoH-Server<br/>172.18.0.22"]
|
||||
end
|
||||
|
||||
adguard -->|Fallback| pihole
|
||||
pihole --> unbound
|
||||
```
|
||||
|
||||
### Network Management
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph NetMgmt["Network Management"]
|
||||
netbox["📋 NetBox<br/>172.24.0.5<br/>netbox.xtrm-lab.org"]
|
||||
netdisco["🔍 NetDisco<br/>172.18.0.41<br/>netdisco.xtrm-lab.org"]
|
||||
unimus["💾 Unimus<br/>unimus.xtrm-lab.org<br/>Config Backup"]
|
||||
slurpit["🔎 Slurp'it<br/>slurpit.xtrm-lab.org<br/>Network Discovery"]
|
||||
end
|
||||
|
||||
subgraph NetBoxStack["NetBox Stack"]
|
||||
nb_postgres["🐘 netbox-postgres<br/>172.24.0.4"]
|
||||
nb_redis["📦 netbox-redis<br/>172.24.0.2"]
|
||||
nb_worker["⚙️ netbox-worker<br/>172.24.0.6"]
|
||||
end
|
||||
|
||||
netbox --> nb_postgres
|
||||
netbox --> nb_redis
|
||||
nb_worker --> netbox
|
||||
```
|
||||
|
||||
### Monitoring
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Monitoring["Monitoring Stack"]
|
||||
uptime["📊 Uptime Kuma<br/>172.18.0.20<br/>uptime.xtrm-lab.org"]
|
||||
uptime_api["🔌 Uptime-Kuma-API<br/>172.18.0.18"]
|
||||
autokuma["🤖 AutoKuma<br/>172.18.0.19"]
|
||||
netalert["🚨 NetAlertX<br/>netalert.xtrm-lab.org"]
|
||||
speedtest["📈 Speedtest<br/>172.18.0.21<br/>speedtest.xtrm-lab.org"]
|
||||
end
|
||||
|
||||
autokuma --> uptime
|
||||
uptime_api --> uptime
|
||||
```
|
||||
|
||||
### Media & Storage
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Media["Media & Storage"]
|
||||
plex["🎬 Plex<br/>:32400<br/>plex.xtrm-lab.org"]
|
||||
nextcloud["☁️ Nextcloud<br/>172.18.0.24<br/>nextcloud.xtrm-lab.org"]
|
||||
transmission["📥 Transmission<br/>:9091, :51413"]
|
||||
timemachine["🕐 TimeMachine<br/>192.168.31.12"]
|
||||
libation["📚 Libation<br/>172.18.0.23<br/>Audiobooks"]
|
||||
end
|
||||
```
|
||||
|
||||
### Productivity
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Productivity["Productivity Apps"]
|
||||
actual["💰 Actual Budget<br/>172.18.0.16<br/>actual.xtrm-lab.org"]
|
||||
n8n["⚡ n8n<br/>172.18.0.17<br/>n8n.xtrm-lab.org"]
|
||||
karakeep["📝 Karakeep<br/>172.18.0.25<br/>karakeep.xtrm-lab.org"]
|
||||
end
|
||||
```
|
||||
|
||||
### Remote Access & Home Automation
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Remote["Remote Access"]
|
||||
rustdesk_hbbs["🖥️ RustDesk ID<br/>:21115-21119<br/>rustdesk.xtrm-lab.org"]
|
||||
rustdesk_hbbr["📡 RustDesk Relay"]
|
||||
end
|
||||
|
||||
subgraph Home["Home Automation"]
|
||||
ha["🏡 Home Assistant<br/>ha.xtrm-lab.org"]
|
||||
urbackup["💾 UrBackup<br/>urbackup.xtrm-lab.org"]
|
||||
end
|
||||
|
||||
rustdesk_hbbs --> rustdesk_hbbr
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Service Summary by Role
|
||||
## Complete Service Flow
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph Internet["🌐 Internet"]
|
||||
User["👤 User"]
|
||||
end
|
||||
|
||||
subgraph MikroTik["MikroTik Router"]
|
||||
NAT["NAT/Firewall"]
|
||||
AGH["AdGuard Home<br/>DNS/DoH/DoT"]
|
||||
end
|
||||
|
||||
subgraph Unraid["Unraid Server"]
|
||||
Traefik["Traefik<br/>Reverse Proxy"]
|
||||
|
||||
subgraph Services["Services"]
|
||||
Auth["Authentik"]
|
||||
Git["Gitea"]
|
||||
CI["Woodpecker"]
|
||||
NB["NetBox"]
|
||||
UK["Uptime Kuma"]
|
||||
PX["Plex"]
|
||||
NC["Nextcloud"]
|
||||
HA["Home Assistant"]
|
||||
end
|
||||
end
|
||||
|
||||
User -->|HTTPS :443| NAT
|
||||
User -->|DoH/DoT| AGH
|
||||
NAT -->|:44301| Traefik
|
||||
Traefik --> Auth
|
||||
Traefik --> Git
|
||||
Traefik --> CI
|
||||
Traefik --> NB
|
||||
Traefik --> UK
|
||||
Traefik --> NC
|
||||
NAT -->|:32400| PX
|
||||
Traefik --> HA
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Docker Networks
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph dockerproxy["dockerproxy (172.18.0.0/16)"]
|
||||
dp_traefik["traefik"]
|
||||
dp_authentik["authentik"]
|
||||
dp_gitea["gitea"]
|
||||
dp_homarr["homarr"]
|
||||
dp_uptime["UptimeKuma"]
|
||||
dp_more["...40+ services"]
|
||||
end
|
||||
|
||||
subgraph netbox_net["netbox (172.24.0.0/16)"]
|
||||
nb_main["netbox"]
|
||||
nb_pg["netbox-postgres"]
|
||||
nb_redis["netbox-redis"]
|
||||
end
|
||||
|
||||
subgraph br0["br0 macvlan (192.168.31.0/24)"]
|
||||
br_pihole["Pi-hole<br/>192.168.31.4"]
|
||||
br_unbound["Unbound<br/>192.168.31.5"]
|
||||
br_tm["TimeMachine<br/>192.168.31.12"]
|
||||
end
|
||||
|
||||
subgraph host_net["host network"]
|
||||
h_plex["plex"]
|
||||
h_netalert["NetAlertX"]
|
||||
h_unimus["unimus"]
|
||||
h_ha["HomeAssistant"]
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Service Summary Tables
|
||||
|
||||
### Core Infrastructure
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| Reverse Proxy | traefik | 172.18.0.3 | 8001→80, 44301→443, 8183→8080 | traefik.xtrm-lab.org |
|
||||
| Reverse Proxy | traefik | 172.18.0.3 | 8001→80, 44301→443 | traefik.xtrm-lab.org |
|
||||
| Docker Socket | dockersocket | 172.18.0.2 | 2375 | - |
|
||||
| Dashboard | homarr | 172.18.0.4 | 10004→7575 | xtrm-lab.org |
|
||||
|
||||
@@ -254,23 +304,20 @@
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| Identity Provider | authentik | 172.18.0.11 | 9000, 9443 | auth.xtrm-lab.org |
|
||||
| Authentik Worker | authentik-worker | 172.18.0.12 | - | - |
|
||||
| Password Manager | vaultwarden | 172.18.0.15 | 4743→80 | vault.xtrm-lab.org |
|
||||
|
||||
### DNS Infrastructure
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| AdGuard Home (Primary) | adguardhome | 172.17.0.5 (Router) | 5355, 443, 853, 8853 | dns.xtrm-lab.org |
|
||||
| Pi-hole (Secondary) | binhex-official-pihole | 192.168.31.4 | 53, 80 | ph1.xtrm-lab.org |
|
||||
| AdGuard Home | adguardhome | 172.17.0.5 | 5355, 443, 853, 8853 | dns.xtrm-lab.org |
|
||||
| Pi-hole | binhex-official-pihole | 192.168.31.4 | 53, 80 | ph1.xtrm-lab.org |
|
||||
| Unbound | unbound | 192.168.31.5 | 53 | - |
|
||||
| DoH Server | DoH-Server | 172.18.0.22 | - | doh.xtrm-lab.org |
|
||||
|
||||
### DevOps & CI/CD
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| Git Server | gitea | 172.18.0.31 | 2222→22, 3005→3000 | git.xtrm-lab.org |
|
||||
| CI/CD Server | woodpecker-server | 172.18.0.32 | 80, 443, 8000, 9000 | ci.xtrm-lab.org |
|
||||
| CI/CD Agent | woodpecker-agent | 172.18.0.33 | 3000 | - |
|
||||
| CI/CD Server | woodpecker-server | 172.18.0.32 | 80, 443, 8000 | ci.xtrm-lab.org |
|
||||
|
||||
### Network Management
|
||||
| Service | Container | IP | Ports | URL |
|
||||
@@ -278,12 +325,12 @@
|
||||
| NetBox | netbox | 172.24.0.5 | 8090→8080 | netbox.xtrm-lab.org |
|
||||
| NetDisco | netdisco-web | 172.18.0.41 | 5000 | netdisco.xtrm-lab.org |
|
||||
| Unimus | unimus | host | - | unimus.xtrm-lab.org |
|
||||
| Slurpit | slurpit-portal | dockerproxy | 80, 3306 | slurpit.xtrm-lab.org |
|
||||
| Slurpit | slurpit-portal | dockerproxy | 80 | slurpit.xtrm-lab.org |
|
||||
|
||||
### Monitoring
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| Uptime Kuma | UptimeKuma | 172.18.0.20 | 3001→3001 | uptime.xtrm-lab.org |
|
||||
| Uptime Kuma | UptimeKuma | 172.18.0.20 | 3001 | uptime.xtrm-lab.org |
|
||||
| NetAlertX | NetAlertX | host | - | netalert.xtrm-lab.org |
|
||||
| Speedtest | speedtest-tracker | 172.18.0.21 | 1180→80 | speedtest.xtrm-lab.org |
|
||||
|
||||
@@ -293,27 +340,20 @@
|
||||
| Plex | plex | host | 32400 | plex.xtrm-lab.org |
|
||||
| Nextcloud | Nextcloud | 172.18.0.24 | 8666→80 | nextcloud.xtrm-lab.org |
|
||||
| Transmission | transmission | bridge | 9091, 51413 | - |
|
||||
| Time Machine | TimeMachine | 192.168.31.12 | SMB/AFP | - |
|
||||
|
||||
### Productivity
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| Actual Budget | actual-budget | 172.18.0.16 | 5006→5006 | actual.xtrm-lab.org |
|
||||
| Actual Budget | actual-budget | 172.18.0.16 | 5006 | actual.xtrm-lab.org |
|
||||
| n8n | n8n | 172.18.0.17 | 5678 | n8n.xtrm-lab.org |
|
||||
| Karakeep | karakeep | 172.18.0.25 | 3000 | karakeep.xtrm-lab.org |
|
||||
|
||||
### Remote Access
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| RustDesk ID | rustdesk-hbbs | bridge | 21115-21119 | rustdesk.xtrm-lab.org |
|
||||
| RustDesk Relay | rustdesk-hbbr | bridge | - | - |
|
||||
|
||||
### Home Automation & Backup
|
||||
### Remote Access & Backup
|
||||
| Service | Container | IP | Ports | URL |
|
||||
|---------|-----------|-----|-------|-----|
|
||||
| RustDesk | rustdesk-hbbs | bridge | 21115-21119 | rustdesk.xtrm-lab.org |
|
||||
| Home Assistant | HomeAssistant_inabox | host | - | ha.xtrm-lab.org |
|
||||
| UrBackup | UrBackup | host | - | urbackup.xtrm-lab.org |
|
||||
| Portainer | portainer | bridge | 9002 | 192.168.31.2:9002 |
|
||||
|
||||
---
|
||||
|
||||
@@ -324,31 +364,24 @@
|
||||
| DoH | https://dns.xtrm-lab.org/dns-query | 443 |
|
||||
| DoT | tls://dns.xtrm-lab.org | 853 |
|
||||
| DoQ | quic://dns.xtrm-lab.org | 8853 |
|
||||
| Plain DNS | 192.168.31.1 (LAN only) | 53 |
|
||||
|
||||
---
|
||||
|
||||
## Docker Networks Summary
|
||||
|
||||
| Network | Subnet | Purpose |
|
||||
|---------|--------|---------|
|
||||
| dockerproxy | 172.18.0.0/16 | Traefik-accessible services |
|
||||
| netbox | 172.24.0.0/16 | NetBox stack isolation |
|
||||
| slurpit_slurpit-network | Auto | Slurpit discovery stack |
|
||||
| br0 | 192.168.31.0/24 | LAN macvlan (direct LAN IPs) |
|
||||
| bridge | 172.17.0.0/16 | Default Docker bridge |
|
||||
| host | - | Host network stack |
|
||||
|
||||
---
|
||||
|
||||
## Quick Reference
|
||||
|
||||
**SSH Access:**
|
||||
- Unraid: `ssh -i ~/.ssh/id_ed25519_unraid root@192.168.31.2 -p 422`
|
||||
- MikroTik: `ssh -i /root/.ssh/mikrotik_key -p 2222 unraid@192.168.31.1`
|
||||
```bash
|
||||
# Unraid
|
||||
ssh -i ~/.ssh/id_ed25519_unraid root@192.168.31.2 -p 422
|
||||
|
||||
# MikroTik
|
||||
ssh -i /root/.ssh/mikrotik_key -p 2222 unraid@192.168.31.1
|
||||
```
|
||||
|
||||
**Key URLs:**
|
||||
- Dashboard: https://xtrm-lab.org
|
||||
- Auth: https://auth.xtrm-lab.org
|
||||
- Git: https://git.xtrm-lab.org
|
||||
- CI/CD: https://ci.xtrm-lab.org
|
||||
- 🏠 Dashboard: https://xtrm-lab.org
|
||||
- 🔐 Auth: https://auth.xtrm-lab.org
|
||||
- 📚 Git: https://git.xtrm-lab.org
|
||||
- 🪵 CI/CD: https://ci.xtrm-lab.org
|
||||
- 📋 NetBox: https://netbox.xtrm-lab.org
|
||||
- 📊 Uptime: https://uptime.xtrm-lab.org
|
||||
|
||||
Reference in New Issue
Block a user