# πŸ”— Tailscale Mesh Network ## Overview All homelab locations are connected via Tailscale, creating a secure mesh VPN that allows seamless access between sites regardless of NAT or firewall configurations. **Total Devices: 28 Headscale nodes** across 4 physical locations + cloud + mobile devices. **Control Server:** Headscale (self-hosted) on Calypso β€” `headscale.vish.gg` **MagicDNS:** `*.tail.vish.gg` (resolved by AdGuard, not native MagicDNS) **DERP Relays:** Atlantis (`derp-atl.vish.gg`), Seattle VPS (`derp-sea.vish.gg`) --- ## πŸ“Š Complete Device Inventory ### 🟒 Online Nodes (verified 2026-04-18 from Headscale) #### Exit Nodes | Device | Tailscale IP | Type | Location | Notes | |--------|--------------|------|----------|-------| | **atlantis** | 100.83.230.112 | Synology NAS | Concord | Exit node, Primary NAS | | **calypso** | 100.103.48.78 | Synology NAS | Concord | Exit node, Headscale host | | **setillo** | 100.125.0.20 | Synology NAS | Tucson | Exit node, off-site backup | | **seattle** | 100.82.197.124 | Cloud VPS | Seattle | Exit node, Contabo | | **vish-concord-nuc** | 100.72.55.21 | Intel NUC | Concord (Backup ISP) | Exit node | | **homeassistant** | 100.112.186.90 | HA Green | Concord | Exit node (via GL-MT3600BE subnet) | | **gl-mt3600be** | 100.64.0.10 | GL.iNet Beryl 7 | Remote | Exit node + subnet router `192.168.12.0/24` (replaces GL-MT3000, 2026-04-16) | | **gl-mt3000** | 100.126.243.15 | GL.iNet Beryl AX | Travel | Travel router (exit-node only), repeater behind GL-MT3600BE; LAN `192.168.99.0/24` | | **gl-be3600** | 100.105.59.123 | GL.iNet Slate 7 | Travel | Travel router (exit-node only); intermittently online | #### Servers & VMs | Device | Tailscale IP | Type | Location | Notes | |--------|--------------|------|----------|-------| | **homelab** | 100.67.40.126 | Proxmox VM | Concord | Primary VM β€” monitoring, tools, NetBox, Semaphore, Dashboard | | **matrix-ubuntu** | 100.85.21.51 | Atlantis VM | Concord | NPM, Matrix, Mastodon, LiveKit, CrowdSec (4 vCPU, 16GB RAM, 1TB disk) | | **pve** | 100.87.12.28 | Proxmox Host | Concord | VM hypervisor | | **truenas-scale** | 100.75.252.64 | TrueNAS Scale | Concord | Guava, 10GbE, ZFS | | **jellyfish** | 100.69.121.120 | Remote workstation | Remote | Behind GL-MT3600BE; LAN backup + photo workflows | | **shinku-ryuu** | 100.98.93.15 | Windows | Concord | Desktop workstation, 10GbE | | **moon** | 100.64.0.6 | Linux | Honolulu | Sibling's PC (192.168.12.223 behind GL-MT3600BE) | | **pi-5** | 100.77.151.40 | RPi 5 | Concord | Uptime Kuma, monitoring | #### Network Devices | Device | Tailscale IP | Type | Location | Notes | |--------|--------------|------|----------|-------| | **headscale-test** | 100.64.0.1 | Linux | Concord | Headscale test node | #### Mobile | Device | Tailscale IP | Type | Status | |--------|--------------|------|--------| | **iphone16-pro-max** | 100.79.252.108 | iOS | Online | ### πŸ’€ Offline Nodes | Device | Tailscale IP | Type | Notes | |--------|--------------|------|-------| | **ipad-pro** | 100.68.71.48 | iOS | iPad Pro | | **mah-pc** | 100.64.0.4 | Windows | Concord (Backup ISP), sibling's PC | | **mastodon-rocky** | 100.64.0.3 | Linux | Legacy, decommissioned | | **olares** | 100.64.0.5 | Linux | Olares K8s node (host Tailscale conflicts with K8s pod) | | **uqiyoe** | 100.124.91.52 | Windows | Laptop | | **vishdebian** | 100.64.0.2 | Linux | Legacy Debian VM | | **pixel-10-pro** | 100.64.0.7 | Android | Phone | | **samsung-galaxy-tab-s9** | 100.64.0.8 | Android | Tablet | | **kevins-laptop** | 100.64.0.9 | Laptop | Kevin's laptop | | **moon** (status) | 100.64.0.6 | β€” | Currently online; may toggle | --- ## πŸ•ΈοΈ Mesh Topology (Mermaid) ```mermaid graph TB subgraph Tailscale["πŸ” Headscale Mesh Network (28 Nodes)"] subgraph Concord_Primary["🏠 Concord Primary - 25Gbps Fiber"] subgraph NAS_Cluster["πŸ“¦ NAS + VMs"] A_ATL["πŸ—„οΈ atlantis
100.83.230.112
⚑ EXIT NODE"] A_MATRIX["🐧 matrix-ubuntu
100.85.21.51
VM on Atlantis"] end A_CAL["πŸ—„οΈ calypso
100.103.48.78
⚑ EXIT NODE
Headscale host"] A_GUAVA["πŸ’» guava
100.75.252.64
TrueNAS Scale"] A_DESKTOP["πŸ–₯️ shinku-ryuu
100.98.93.15"] A_PVE["πŸ–₯️ pve
100.87.12.28"] A_JELLY["🐟 jellyfish
100.69.121.120"] A_HA["🏠 homeassistant
100.112.186.90
⚑ EXIT NODE
(via GL-MT3600BE)"] A_PI["πŸ₯§ pi-5
100.77.151.40"] A_GL_BERYL7["πŸ“‘ gl-mt3600be (Beryl 7)
100.64.0.10
⚑ EXIT NODE
subnet 192.168.12.0/24"] A_GL_BE["πŸ“‘ gl-be3600 (Slate 7)
100.105.59.123
⚑ EXIT NODE
travel router"] A_GL_MT3000["πŸ“‘ gl-mt3000 (Beryl AX)
100.126.243.15
⚑ EXIT NODE
travel router (repeater on Beryl 7)"] subgraph Proxmox_VMs["Proxmox VMs"] A_HLB["homelab
100.67.40.126"] end end subgraph Concord_Backup["🏠 Concord Backup - 2Gbps"] B_NUC["πŸ–₯️ vish-concord-nuc
100.72.55.21
⚑ EXIT NODE"] B_PI_K["πŸ₯§ pi-5-kevin
100.123.246.75"] B_MAH["πŸ’» mah-pc
100.64.0.4"] end subgraph Tucson["🌡 Tucson, AZ"] T_SET["πŸ—„οΈ setillo
100.125.0.20
⚑ EXIT NODE"] end subgraph Honolulu["🌺 Honolulu, HI"] H_MOON["πŸ’» moon
100.64.0.6
(aka bluecrownpassionflower)"] end subgraph Seattle["🌲 Seattle (Cloud)"] S_SEA["☁️ seattle
100.82.197.124
⚑ EXIT NODE"] end subgraph Mobile["πŸ“± Mobile Devices"] M_IPHONE["πŸ“± iphone16"] M_PIXEL["πŸ“± pixel-10-pro"] M_IPAD["πŸ“± ipad-pro"] M_TAB["πŸ“± samsung-tablet"] M_KLAP["πŸ’» kevinlaptop"] end end %% VM relationships A_ATL -->|"Hosts VM"| A_MATRIX A_PVE -->|"Hosts VM"| A_HLB %% Primary mesh connections A_ATL <-->|"10GbE LAN"| A_CAL A_ATL <-->|"10GbE LAN"| A_GUAVA A_ATL <-->|"10GbE LAN"| A_DESKTOP %% Cross-location Tailscale A_ATL <-.->|"Tailscale"| T_SET A_ATL <-.->|"Tailscale"| S_SEA A_ATL <-.->|"Tailscale"| B_NUC %% GL router subnets A_GL_BERYL7 -->|"subnet route"| A_HA %% Honolulu local H_MOON <-.->|"Tailscale"| A_ATL classDef nas fill:#3498db,stroke:#333,stroke-width:2px,color:#fff classDef exit fill:#e74c3c,stroke:#333,stroke-width:2px,color:#fff classDef compute fill:#9b59b6,stroke:#333,stroke-width:2px,color:#fff classDef mobile fill:#1abc9c,stroke:#333,stroke-width:2px,color:#fff classDef network fill:#f39c12,stroke:#333,stroke-width:2px,color:#fff class A_ATL,A_CAL,T_SET nas class S_SEA,B_NUC,A_HA exit class A_GUAVA,A_DESKTOP,A_PVE,A_HLB,A_MATRIX,A_JELLY compute class M_IPHONE,M_PIXEL,M_IPAD,M_TAB,M_KLAP mobile class A_GL_BERYL7,A_GL_BE network ``` --- ## πŸ“ ASCII Tailscale Network Map ``` ╔══════════════════════════════════════════════════════════════════════════════════════════╗ β•‘ HEADSCALE MESH NETWORK (self-hosted Tailscale control server) β•‘ β•‘ 28 Nodes β€’ 7 Exit Nodes β€’ 4 Locations β€’ Full Mesh β•‘ β•‘ Control: headscale.vish.gg (Calypso) β•‘ β•‘ DERP Relays: Atlantis (derp-atl), Seattle VPS (derp-sea) β•‘ β•‘ DNS: AdGuard resolves *.tail.vish.gg β†’ Tailscale IPs β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ TAILSCALE β”‚ β”‚ COORDINATION β”‚ β”‚ (DERP Relays) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β–Ό β–Ό β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🏠 CONCORD, CA - PRIMARY (25Gbps Fiber) β”‚ β”‚ ══════════════════════════════════════════════════════════════════════════════════════│ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ 10GbE BACKBONE (TP-Link TL-SX1008) β”‚ β”‚ β”‚ β”‚ ────────────────────────────────────────────────────────────────────────────── β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ ⚑ ATLANTIS β”‚ β”‚ ⚑ CALYPSO β”‚ β”‚ GUAVA β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ 100.83.230.112 β”‚ β”‚ 100.103.48.78 β”‚ β”‚ 100.75.252.64 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ DS1823xs+ β”‚ β”‚ DS723+ β”‚ β”‚ Physical Host β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ EXIT NODE β”‚ β”‚ EXIT NODE β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚matrix-ubuntuβ”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚100.85.21.51 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Mastodon/ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚Matrix/MM β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ SHINKU-RYUU β”‚ Desktop Workstation β”‚ β”‚ β”‚ β”‚ β”‚ 100.98.93.15 β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ 2.5GbE / 1GbE DEVICES β”‚ β”‚ β”‚ β”‚ ────────────────────────────────────────────────────────────────────────────── β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ PVE β”‚ β”‚ JELLYFISH β”‚ β”‚βš‘HOMEASSIST β”‚ β”‚ PI-5 β”‚ β”‚ HOMELAB VM β”‚ β”‚ β”‚ β”‚ β”‚ β”‚100.87.12.28 β”‚ β”‚100.69.121.120β”‚ β”‚100.112.186.90β”‚ β”‚100.77.151.40β”‚ β”‚100.67.40.126β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Proxmox β”‚ β”‚ Server β”‚ β”‚ EXIT NODE β”‚ β”‚ RPi 5 β”‚ β”‚ (on PVE) β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚via Beryl 7 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ ⚑ GL-MT3600BE β”‚ β”‚ ⚑ GL-BE3600 β”‚ β”‚ ⚑ GL-MT3000 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ 100.64.0.10 (Beryl 7)β”‚ β”‚ 100.105.59.123 β”‚ β”‚ 100.126.243.15 β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ EXIT NODE + subnet β”‚ β”‚ EXIT NODE β”‚ β”‚ EXIT NODE β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ 192.168.12.0/24 β”‚ β”‚ travel router β”‚ β”‚ travel (on Beryl 7) β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🏠 CONCORD BACKUP ISP (2Gbps/500Mbps) β”‚ β”‚ ══════════════════════════════════════════════════════════════════════════════════════│ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ ⚑ VISH-CONCORD-NUC β”‚ β”‚ PI-5-KEVIN β”‚ β”‚ MAH-PC β”‚ β”‚ β”‚ β”‚ 100.72.55.21 β”‚ β”‚ 100.123.246.75 β”‚ β”‚ 100.64.0.4 β”‚ β”‚ β”‚ β”‚ Intel NUC β”‚ β”‚ RPi 5 β”‚ β”‚ Windows PC β”‚ β”‚ β”‚ β”‚ EXIT NODE β”‚ β”‚ β”‚ β”‚ Sibling's PC β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ◄─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ TAILSCALE MESH ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─► β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ 🌡 TUCSON, AZ β”‚ β”‚ 🌺 HONOLULU, HI β”‚ β”‚ 🌲 SEATTLE (CLOUD) β”‚ β”‚ ═════════════════════════│ β”‚ ═════════════════════════│ β”‚ ═════════════════════════│ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ ⚑ SETILLO β”‚ β”‚ β”‚ β”‚ MOON (bluecrownpassion) β”‚ β”‚ β”‚ β”‚ ⚑ SEATTLE β”‚ β”‚ β”‚ β”‚ 100.125.0.20 β”‚ β”‚ β”‚ β”‚ 100.64.0.6 β€” online β”‚ β”‚ β”‚ β”‚ 100.82.197.124 β”‚ β”‚ β”‚ β”‚ DS223j NAS β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Contabo VPS β”‚ β”‚ β”‚ β”‚ EXIT NODE β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ EXIT NODE β”‚ β”‚ β”‚ β”‚ Off-site Backup β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ πŸ“± MOBILE DEVICES β”‚ β”‚ ══════════════════════════════════════════════════════════════════════════════════════│ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ πŸ“± iphone16 β”‚ β”‚ πŸ“± pixel-10 β”‚ β”‚ πŸ“± ipad-pro β”‚ β”‚ πŸ“± samsung β”‚ β”‚ πŸ’» kevinlap β”‚ β”‚ β”‚ β”‚100.79.252.108β”‚ β”‚100.122.119.40β”‚ β”‚100.68.71.48 β”‚ β”‚100.72.118.117β”‚ β”‚100.89.160.65 β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ╔════════════════════════════════════════════════════════════════════════════════════════╗ β•‘ EXIT NODE SUMMARY (9 Total) β•‘ β•‘ ══════════════════════════ β•‘ β•‘ β€’ atlantis (100.83.230.112) - Primary exit, Concord 25Gbps β•‘ β•‘ β€’ calypso (100.103.48.78) - Secondary exit, Concord 25Gbps (Headscale host) β•‘ β•‘ β€’ setillo (100.125.0.20) - Tucson exit, DS223j off-site NAS β•‘ β•‘ β€’ seattle (100.82.197.124) - Cloud exit, Contabo VPS Seattle β•‘ β•‘ β€’ vish-concord-nuc (100.72.55.21) - Backup ISP exit, Concord 2Gbps β•‘ β•‘ β€’ homeassistant (100.112.186.90) - Home automation exit (via GL-MT3600BE subnet) β•‘ β•‘ β€’ gl-mt3600be (100.64.0.10) - GL.iNet Beryl 7, subnet 192.168.12.0/24 + exit β•‘ β•‘ β€’ gl-be3600 (100.105.59.123) - GL.iNet Slate 7, travel router (exit-node only) β•‘ β•‘ β€’ gl-mt3000 (100.126.243.15) - GL.iNet Beryl AX, travel router (exit-node only) β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• ``` --- ## πŸ–₯️ Matrix-Ubuntu VM Details This VM runs on **Atlantis** (Synology DS1823xs+ via Virtual Machine Manager): | Specification | Value | |---------------|-------| | **Hostname** | matrix-ubuntu | | **Tailscale IP** | 100.85.21.51 | | **LAN IP** | 192.168.0.154 | | **OS** | Ubuntu 24.04 LTS | | **CPU** | 4 vCPU (AMD Ryzen Embedded V1780B) | | **RAM** | 16 GB | | **Storage** | 1 TB (~1005 GB LV) | | **SSH Port** | 22 (via Tailscale or `ssh matrix-ubuntu`) | ### Services Running | Service | Domain | Status | |---------|--------|--------| | **Nginx Proxy Manager** | npm.vish.gg (:81) | βœ… Running (reverse proxy for all domains, Let's Encrypt wildcards) | | **CrowdSec** | β€” | βœ… Running (nftables bouncer) | | Mastodon | mastodon.vish.gg | βœ… Running | | Matrix (Synapse) | mx.vish.gg | βœ… Running | | LiveKit | livekit.mx.vish.gg | βœ… Running (WebRTC SFU, UDP 50000-50100) | | PostgreSQL, Redis | - | βœ… Running (shared) | --- ## πŸ”— Related Diagrams - [Network Topology](network-topology.md) - Physical network layout - [Service Architecture](service-architecture.md) - How services connect - [Location Overview](location-overview.md) - Geographic distribution