The Farm is on its own network (192.168.0.x), connected back to home (192.168.8.x) via NetBird mesh. Farm Proxmox (fpve) is a NetBird peer and acts as the subnet router for 192.168.0.0/24.
Router/Switch: TP-Link Omada ER8411 (router) + Omada Controller at 192.168.0.2. ISP: Starlink in Bypass Mode; native IPv6 delegated via DHCPv6-PD (/56) to Omada.
| Device | IP | URL | Notes |
|---|---|---|---|
| Omada Gateway | 192.168.0.1 | โ | Router (unchangeable) |
| Omada Controller | 192.168.0.2 | omada.edmd.me | Site: “Bee Different” |
| Farm Pi-hole (CT102) | 192.168.0.5 | pihole-farm.edmd.me | LAN + NetBird DNS |
| Farm Docker-Host (CT100) | 192.168.0.6 | fportainer.edmd.me | Portainer, Uptime-Kuma, Gotify, TeamSpeak, Matrix |
| Tempest Weather | 192.168.0.8 | โ | WeatherFlow Tempest |
| Home Assistant | 192.168.0.10 | ha.edmd.me | Smart home automation |
| Farm Caddy (CT103) | 192.168.0.54 | โ | Reverse proxy for *.edmd.me |
| Farm Proxmox (fpve) | 192.168.0.191 | fpve.edmd.me | Hypervisor; NetBird peer |
All of these have DHCP reservations in Omada (Settings โ Wired Networks โ LAN โ Address Reservation).
Self-hosted voice / push-to-talk server for farm crews โ a walkie-talkie replacement for people working around the property. Installed 2026-06-17 on the Farm Docker-Host (CT100). Farm-only by design โ not exposed to the internet or the Granville home network.
| Item | Value |
|---|---|
| Connect to | phone.edmd.me (or 192.168.0.6) โ default port 9987, leave password blank |
| Apps | Official TeamSpeak 3 on iOS + Android (free); desktop at teamspeak.com/downloads |
| First-time admin | Enter the ServerAdmin privilege key once to claim admin (stored in ~/Sync/ED/Files/SECRETS.md) |
| Capacity | Free license โ up to 32 users |
| Container | teamspeak ยท compose at /opt/teamspeak/ (sqlite, restart: unless-stopped, Watchtower disabled) |
| Ports | 9987/udp (voice), 10011/tcp (ServerQuery), 30033/tcp (file transfer) |
| DNS | phone.edmd.me โ 192.168.0.6 via farm Pi-hole host-record (/etc/dnsmasq.d/03-local-records.conf). Farm LAN is IPv4-only, so the name resolves to the local server. |
| Monitor | Uptime Kuma “Farm - TeamSpeak” (TCP probe 192.168.0.6:10011) |
Full connection walkthrough: ~/Sync/ED/TeamSpeak โ Farm Voice Setup.md.
If a phone can’t connect, confirm it’s on the farm WiFi (not a guest/separate VLAN from
192.168.0.x).
Self-hosted Matrix homeserver โ your own private chat/files/voice/video hub (Slack/WhatsApp-style). Installed 2026-06-17 on the Farm Docker-Host (CT100), fronted by the farm Caddy at matrix.edmd.me. Internal-only (farm LAN + NetBird).
| Item | Value |
|---|---|
| Homeserver | matrix.edmd.me (enter this in the app) |
| Apps | Element X โ iOS / Android (current app, required for calls); Element/Element X desktop & web also work |
| Your account | @delgross:matrix.edmd.me (admin; password in ~/Sync/ED/Files/SECRETS.md) |
| Signing in | Element X defaults to matrix.org โ change the account provider to matrix.edmd.me (or type the full ID @delgross:matrix.edmd.me to auto-discover). Must be on farm WiFi or have NetBird connected (server is private, not public). Reachability test: open https://matrix.edmd.me/.well-known/matrix/client in a browser (JSON = reachable). |
| Sign-up | No self-service sign-up by design โ enable_registration is off, so Element shows no “Create account”. Accounts are admin-created. (Options if wanted: token-gated sign-up, or fully open โ neither enabled.) |
| Add a user | Run on farm CT100 (192.168.0.6, where matrix-synapse runs): ssh root@fpve โ pct exec 100 -- bash โ docker compose -f /opt/matrix/docker-compose.yml exec synapse register_new_matrix_user -c /data/homeserver.yaml -u NAME -p PASS http://localhost:8008 (add -a for admin). Or via farm Portainer โ matrix-synapse โ Console โ register_new_matrix_user -c /data/homeserver.yaml -u NAME -p PASS http://localhost:8008. Does not run from the Mac/home LAN directly. |
| Stack | matrix-synapse + matrix-postgres, compose /opt/matrix/ (Watchtower off) |
| Proxy / TLS | farm Caddy (CT103) matrix.edmd.me โ 192.168.0.6:8008, *.edmd.me wildcard cert |
| DNS | matrix.edmd.me โ 192.168.0.54 (farm + home Pi-hole) |
| Calls backend | Element Call (MatrixRTC): self-hosted LiveKit SFU + lk-jwt-service at /opt/matrixrtc/, fronted at matrixrtc.edmd.me (/livekit/sfu + /livekit/jwt). Synapse .well-known advertises it via org.matrix.msc4143.rtc_foci. |
| Monitors | Uptime Kuma: “Farm - Matrix (Synapse)” (:8008/health), “Farm - LiveKit (Element Call)” (:7880), “Farm - Matrix RTC JWT” (:8071/healthz) |
โ Voice & video calls are enabled via Element Call โ use Element X on iOS/Android. No separate coturn/TURN server is needed: LiveKit’s SFU handles media relay (LiveKit’s own TURN disabled). Media ports UDP 50100-50200 + TCP 7881 on 192.168.0.6, reachable on the farm LAN and over NetBird.
Full guide: ~/Sync/ED/Matrix โ Farm Chat Setup.md.
Host: 192.168.0.191 (also reachable via NetBird mesh as fpve.netbird.cloud / 100.123.49.175).
LXCs:
| VMID | Name | IP | Services |
|---|---|---|---|
| 100 | docker-host |
192.168.0.6 | Portainer, Uptime-Kuma, Gotify, TeamSpeak, Matrix |
| 102 | pihole |
192.168.0.5 | Pi-hole DNS |
| 103 | caddy |
192.168.0.54 | Caddy reverse proxy (*.edmd.me) |
SSH: ssh root@192.168.0.191 (on LAN) or ssh root@100.123.49.175 (via NetBird).
Replaced Pangolin on April 19, 2026. Current peers (8 total): hpve, fpve, vps, studio, macbook, iphone, ipad, roon (CT105). See Remote Access for the full peer table with NetBird IPs.
Subnet routes (NetBird dashboard โ Networks):
192.168.0.0/24โ viafpve(farm LAN)192.168.8.0/24โ viahpve(home LAN)
Distribution group: BeeDifferent (contains all peers allowed cross-site access).
Check fpve status:
ssh root@192.168.0.191 "netbird status"
Restart if needed:
ssh root@192.168.0.191 "systemctl restart netbird"
| Service | Port | URL |
|---|---|---|
| Portainer | 9443 | https://192.168.0.6:9443 โ fportainer.edmd.me |
| Uptime Kuma | 3001 | http://192.168.0.6:3001 โ fkuma.edmd.me |
| Gotify | 8070 | http://192.168.0.6:8070 โ fgotify.edmd.me |
HA is the automation hub for the Farm โ smart plugs, sensors, the Tempest weather station, Zigbee/Z-Wave devices, and Reolink cameras.
| Local URL | http://192.168.0.10:8123 |
| Pretty URL | ha.edmd.me |
| mDNS | homeassistant.local:8123 |
Zigbee/Z-Wave coordinators (SLZB over Ethernet):
| Device | Role | Notes |
|---|---|---|
| SLZB-MRW10U (house) | Zigbee + Z-Wave | Multiradio; Z-Wave firmware is prototype/non-certified |
| SLZB-06P7 (outbuilding) | Zigbee | TCP :6638 |
| SLZB-06P7-2 (outbuilding) | Zigbee | TCP :6638 |
| Sunkown1 (sic) | Zigbee | TCP :6638 |
IPv6 is fully enabled end-to-end at the farm.
- Starlink delegates a
/56to Omada (currently2605:59ca:2b5f:d300::/56) - Omada LAN advertises SLAAC+RDNSS for
2605:59ca:2b5f:d300::/64on vmbr0-equivalent - fpve picks up a global v6 address via RA
โ ๏ธ Proxmox sysctls are NOT persistent across reboots. After any fpve reboot, manually run:
sysctl -w net.ipv6.conf.vmbr0.accept_ra=2
sysctl -w net.ipv6.conf.vmbr0.autoconf=1
sysctl -w net.ipv6.conf.vmbr0.accept_ra_defrtr=1
sysctl -w net.ipv6.conf.vmbr0.accept_ra_pinfo=1
Or add to /etc/sysctl.d/99-ipv6.conf to make persistent.
| Size | 93 acres |
| Location | Brownsville, Ohio โ Licking County, Zone 6b |
| Coordinates | 39.947ยฐN 82.256ยฐW (ZIP 43721) |
| Primary goal | Pollinator paradise โ ecological, agricultural, and conservation development |
| Beekeeping | Active hives on property |
| Weather station | Tempest (at 192.168.0.8) + Davis Vantage Pro 2 (“Orchard Weather”) |
Infrastructure projects: solar-powered PoE for remote sensors, Meshtastic nodes for off-grid communication coverage across the property.