The Maritime Architecture
graph TB
Internet[("🌐
Internet
Users")]
CF[("☁️
Cloudflare
CDN")]
subgraph pi4 ["🏴☠️
RPi 4
Edge Server"]
direction LR
spacer_left["
"]
Nginx{"⚓
Nginx
Reverse Proxy
:80/:443"}
Dashboard["🗺️
Powderchest
Dashboard"]
spacer_left ~~~ Nginx
end
subgraph pi5 ["⛵
RPi 5
Compute Server"]
Docker[["🐋
Docker
Engine"]]
subgraph containers ["Containers"]
MC1["🎮
TheStandard
MC Server"]
MC2["🎮
FakeMas0n
MC Server"]
PH["🛡️
Pi-Hole
DNS Sinkhole"]
Unbound["🔒
Unbound
DNS Resolver"]
WG["🔐
WireGuard
VPN Tunnel"]
Ollama["🤖
Ollama
AI/LLM"]
end
BMRender["🗺️
BlueMap
Renderer"]
end
subgraph storage ["💰 Network
Storage"]
spacer_storage["
"]
SSD[("💾
Samba Share
2TB SSD
World Data
Map Tiles
Images")]
end
subgraph legend ["📋 Key"]
direction TB
L1[("External Service")]
L2{"Network/Proxy"}
L3["Application"]
L4[["Orchestrator"]]
L5[("Storage/Database")]
L6["─── Synchronous"]
L7["─ ─ Proxy/Async"]
L8["━━━ Data Flow"]
end
%% Internet flow
Internet -->|"HTTPS"|CF
CF -->|"Protected"|Nginx
%% Nginx routing
Nginx -->|"Monitors"|Dashboard
Nginx -.->|"Proxy"|MC1
Nginx -.->|"Proxy"|MC2
Nginx -.->|"Serves"|SSD
Nginx -.->|"Serves"|SSD
%% Docker orchestration
Docker ==>|"Manages"|MC1
Docker ==>|"Manages"|MC2
Docker ==>|"Manages"|PH
Docker ==>|"Manages"|Unbound
Docker ==>|"Manages"|WG
Docker ==>|"Manages"|Ollama
%% Home network services
PH <-->|"Filters"|Unbound
Unbound <-->|"Routes"|WG
%% Storage connections
MC1 <-->|"Read/Write
World Data"|SSD
MC2 <-->|"Read/Write
World Data"|SSD
BMRender -->|"Writes
Map Tiles"|SSD
SSD -->|"Reads
World Data"|BMRender
%% Styling
classDef cloudStyle fill:#1a1a2e,stroke:#00d4ff,stroke-width:4px,color:#00d4ff,font-weight:bold
classDef proxyStyle fill:#1a1a2e,stroke:#2ecc71,stroke-width:4px,color:#2ecc71,font-weight:bold
classDef appStyle fill:#1a1a2e,stroke:#e67e22,stroke-width:3px,color:#e67e22,font-weight:bold
classDef containerStyle fill:#1a1a2e,stroke:#9b59b6,stroke-width:2px,color:#c39bd3
classDef storageStyle fill:#1a1a2e,stroke:#d4af37,stroke-width:4px,color:#d4af37,font-weight:bold
classDef orchestratorStyle fill:#1a1a2e,stroke:#3498db,stroke-width:3px,color:#3498db,font-weight:bold
classDef legendStyle fill:#1a1a2e,stroke:#555,stroke-width:1px,color:#999,font-size:40px
class Internet,CF cloudStyle
class Nginx proxyStyle
class Dashboard,BMRender appStyle
class Docker orchestratorStyle
class MC1,MC2,PH,Unbound,WG,Ollama containerStyle
class SSD storageStyle
class L1,L2,L3,L4,L5,L6,L7,L8 legendStyle