Skip to content

Instantly share code, notes, and snippets.

@Tech500
Last active March 16, 2026 08:42
Show Gist options
  • Select an option

  • Save Tech500/ff8805819b649fb14dcf6ad956b56b39 to your computer and use it in GitHub Desktop.

Select an option

Save Tech500/ff8805819b649fb14dcf6ad956b56b39 to your computer and use it in GitHub Desktop.
Foshkplugin, Tailscal Funnel, Cady

Weather Station Architecture Diagrams

Data Collection and Distribution

[TP3000WC Weather Station]
(192.168.12.199:45000 - Ecowitt protocol)
        │
        ▼
[Raspberry Pi - 192.168.12.15]
  FOSHKplugin (/opt/FOSHKplugin/)
        │
        ├──► Forward:   WeeWX Interceptor (port 8000)
        │                     │
        │               WeeWX generates HTML
        │                     │
        │               Apache ──► /var/www/html/weewx
        │
        ├──► Forward-1: CumulusMX on oscar-ii
        │               (192.168.12.187:8998/station/ecowitt)
        │
        ├──► Forward-2: CWOP (cwop.aprs.net:14580)
        │
        └──► Forward-3: Apache (192.168.12.15:80)

[oscar-ii - Windows 11 - 192.168.12.187]
  CumulusMX (port 8998) ──► Gauges dashboard
  Caddy (port 8080)     ──► Security gatekeeper
  Tailscale             ──► Private + Public Funnel

Public Access via Tailscale Funnel and Caddy

Public Visitor
        │
        ▼
Tailscale Funnel
(oscar-ii.tailXXXX.ts.net)
        │
        ▼
Caddy on oscar-ii (port 8080)
        │
        ├──► /weewx/*      ──► Raspberry Pi Apache
        │                      (WeeWX dashboard)
        │
        ├──► /gauges*      ──► CumulusMX gauges page
        │
        ├──► /api/settings* ──► 403 Forbidden
        ├──► /api/station*  ──► 403 Forbidden
        ├──► /login*        ──► 403 Forbidden
        └──► /api/edit*     ──► 403 Forbidden

Private Admin Access via Tailscale

You (any device, anywhere)
        │
        ▼
Tailscale VPN
        │
        ├──► http://100.110.13.52:8998
        │    (CumulusMX admin — Tailscale IP)
        │
        └──► http://192.168.12.15/weewx/
             (WeeWX dashboard — local IP)

Public internet cannot reach either address.
Only devices on your Tailscale network have access.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment