T00-DRIP Network Configuration
Architecture
INTERNET (T-Mobile 5G)
│
┌────┴────────────────────┐
│ GL-X3000 Spitz AX │
│ • 5G/4G cellular uplink │
│ • WiFi 6 AP (2 SSIDs) │
│ • OpenWrt │
│ • WAN: cellular │
│ • LAN: 2.5G → G11 NIC1 │
└────┬────────────────────┘
│ Ethernet (2.5G)
│
┌────┴────────────────────┐
│ GMKtec G11 (Fedora) │
│ NIC1 (WAN): from Spitz │
│ NIC2 (LAN): to switch │
│ │
│ ┌─────────────────┐ │
│ │ VyOS VM │ │
│ │ • NAT/Firewall │ │
│ │ • DHCP server │ │
│ │ • WireGuard │ │
│ │ • VLAN routing │ │
│ │ • QoS/traffic │ │
│ └─────────────────┘ │
│ │
│ Podman Containers: │
│ • Frigate (NVR) │
│ • Home Assistant │
│ • nginx (captive portal) │
└────┬────────────────────┘
│ Ethernet (2.5G) - NIC2
│
┌────┴────────────────────┐
│ TP-Link TL-SG208PE │
│ 8-port PoE (65W) │
│ │
│ Port 1: Uplink (G11) │
│ Port 2: Camera 1 (PoE) │
│ Port 3: Camera 2 (PoE) │
│ Port 4: Camera 3 (PoE) │
│ Port 5-8: spare │
└──────────────────────────┘
IP Addressing (per trailer)
| Subnet |
Purpose |
DHCP Range |
| 10.T.0.0/24 |
Management/Infrastructure |
.1-.10 static |
| 10.T.10.0/24 |
VLAN 10 — Security (cameras, lock, NVR) |
.100-.150 |
| 10.T.20.0/24 |
VLAN 20 — Operations (POS, staff devices) |
.100-.150 |
| 10.T.30.0/24 |
VLAN 30 — Guest WiFi (isolated, internet only) |
.100-.200 |
Where T = trailer number (0 for T00-DRIP, 1 for T01-ROAST, etc.)
Static IPs
| Device |
IP |
VLAN |
MAC |
| G11 (gateway) |
10.0.0.1 |
Mgmt |
— |
| GL-X3000 (WAN gateway) |
DHCP from carrier |
— |
— |
| Camera 1 (interior) |
10.0.10.1 |
10 |
TBD |
| Camera 2 (exterior) |
10.0.10.2 |
10 |
TBD |
| Camera 3 (drive-through) |
10.0.10.3 |
10 |
TBD |
| ULTRALOQ (lock) |
10.0.10.10 |
10 |
TBD |
| Square POS |
10.0.20.100 |
20 |
DHCP |
| Staff devices |
10.0.20.101+ |
20 |
DHCP |
VLANs
| VLAN ID |
Name |
Purpose |
Firewall Rules |
| 10 |
Security |
Cameras, lock, NVR |
No internet access. Talk to G11 (NVR) only. |
| 20 |
Operations |
POS, staff WiFi, management |
Internet access. Can reach Home Assistant. |
| 30 |
Guest |
Customer WiFi (captive portal) |
Internet only. Isolated from all other VLANs. Rate-limited. |
WiFi SSIDs (GL-X3000)
| SSID |
VLAN |
Security |
Purpose |
DailyPour-Staff |
20 |
WPA3-Personal |
POS, staff devices, management |
The Daily Pour |
30 |
Open (captive portal) |
Customer WiFi — branded splash page → internet |
WireGuard Tunnel
| Setting |
Value |
| Server |
Home (ws, 100.96.11.9 via NetBird) or cloud endpoint |
| Client |
VyOS on G11 |
| Tunnel IP |
10.200.T.1/32 (per trailer) |
| Keepalive |
25s |
| Purpose |
Remote management, NVR remote view, fleet config push |
Firewall Rules (VyOS)
# WAN → LAN: deny all (default)
# LAN → WAN: allow (NAT masquerade)
# VLAN 10 (Security) → WAN: DENY (cameras never reach internet)
# VLAN 10 → G11 (NVR): ALLOW (cameras stream to local Frigate)
# VLAN 20 (Ops) → WAN: ALLOW
# VLAN 20 → VLAN 10: DENY (POS can't see cameras)
# VLAN 30 (Guest) → WAN: ALLOW (rate limited 5Mbps)
# VLAN 30 → VLAN 10: DENY
# VLAN 30 → VLAN 20: DENY
# WireGuard → ALL: ALLOW (remote management)
Services on G11 (Fedora Workstation + Podman)
G11 runs Fedora Workstation (GNOME desktop) — provides GUI for video calls
and dashboard display. Server workloads run in VyOS VM + Podman containers.
Managed remotely via Cockpit (web UI).
| Container/VM |
Image |
Port |
Purpose |
| vyos (VM) |
VyOS qcow2 |
— |
Router/firewall/WireGuard/DHCP/VLAN/QoS |
| frigate |
ghcr.io/blakeblackshear/frigate |
5000, 8554 |
NVR — records cameras, AI detection |
| homeassistant |
ghcr.io/home-assistant/home-assistant |
8123 |
Lock control, automations, dashboard |
| nginx-portal |
nginx:alpine |
80 |
Captive portal splash page |
Desktop apps (browser):
- Jitsi Meet (video calls —
meet.jit.si/dailypour-drip)
- Dashboard view (Frigate live feeds, HA status, sales)
- Cockpit (
localhost:9090) for local management
Automation (Home Assistant)
| Automation |
Trigger |
Action |
| Auto-lock |
2:30 PM (closing) |
Lock ULTRALOQ |
| Auto-unlock |
4:45 AM (pre-open) |
Unlock ULTRALOQ |
| Motion alert |
Frigate detects person after hours |
Push notification to Sam |
| Power alert |
UPS switches to battery |
Push notification to Sam |
Fleet Scaling
Each trailer is a clone of this config with:
- Trailer number (T) incremented in all IPs
- Unique WireGuard keys
- Same VyOS config template (Ansible playbook)
- Same Podman containers (compose file)
- Same GL-X3000 OpenWrt config (backup/restore)
Deploy a new trailer's network: flash configs → plug in → WireGuard auto-connects → fleet dashboard sees it.
Video Conferencing (Jitsi)
| Setting |
Value |
| Platform |
Jitsi Meet (meet.jit.si — public, free) |
| Room naming |
dailypour-T00 (per trailer) |
| Hardware |
G11 (Fedora WS) + 27" monitor + USB webcam |
| Use cases |
Management check-ins, inter-trailer comms, staff meetings |
| Future |
Self-host at video.snsnetlabs.com when 5+ trailers |
No accounts needed. Staff opens browser → meet.jit.si/dailypour-drip → instant video call.
Files in this directory
T-00/network/
├── README.md (this file)
├── vyos/
│ └── config.boot (VyOS configuration — TODO)
├── openwrt/
│ └── backup.tar.gz (GL-X3000 config backup — TODO)
├── ansible/
│ └── deploy-trailer.yml (fleet deployment playbook — TODO)
└── captive-portal/
└── index.html (branded splash page — TODO)