Files
infrastructure/docs/INFRASTRUCTURE-DIAGRAM.md
XTRM-Unraid 6b14a4dd9f
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Add comprehensive infrastructure diagram with all services, ports, and network topology
2026-01-22 14:08:05 +02:00

40 KiB

Infrastructure Diagram - xtrm-lab.org

Generated: 2026-01-22 Domain: xtrm-lab.org WAN IP: 62.73.120.142


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        │
└──────────────────────────┘

Port Forwarding / NAT Rules (WAN → LAN)

┌─────────────────────────────────────────────────────────────────────────────────────────┐
│                              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)   │
└─────────────┘ └─────────────┘ └───────────────┘ └───────────────┘ └─────────────┘

┌─────────────────────────────────────────────────────────────────────────────────────────┐
│    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)              │                               │
└─────────────────────────────────────────────────────────────────────────────────────────┘

Unraid Docker Services Map

┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                        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│                                       │   │
│  │  └─────────────────┘  └─────────────────┘  └─────────────────┘                                       │   │
│  └───────────────────────────────────────────────────────────────────────────────────────────────────────┘   │
│                                                                                                              │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Service Summary by Role

Core Infrastructure

Service Container IP Ports URL
Reverse Proxy traefik 172.18.0.3 8001→80, 44301→443, 8183→8080 traefik.xtrm-lab.org
Docker Socket dockersocket 172.18.0.2 2375 -
Dashboard homarr 172.18.0.4 10004→7575 xtrm-lab.org

Security & Identity

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
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 -

Network Management

Service Container IP Ports URL
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

Monitoring

Service Container IP Ports URL
Uptime Kuma UptimeKuma 172.18.0.20 3001→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

Media & Storage

Service Container IP Ports URL
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
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

Service Container IP Ports URL
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

Encrypted DNS Endpoints

Protocol Endpoint Port
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

Key URLs: