OWLA.DEV
software · self-hosted infrastructure
This is the lab: four machines at home, one VPS at the edge, a private mesh network tying them together — hardware I own or rent directly, with no managed cloud service in the path. Everything running on it is listed below, down to the small APIs kept online for the monitoring to watch.
-
VPS, edge
6 vCPU, 11 GB RAM, 99 GB disk, 38 containers.
-
mag0
GPU node for model serving and media.
-
mag1 · mag2 · mag3
4 cores and 7 GB RAM each, mini PCs and repurposed laptops.
-
Mesh
Every host on one private network. No service exposed to the open internet unless it is meant to be.
-
Traefik
Reverse proxy, per-host certificates issued automatically.
-
Headscale + Headplane
Self-hosted Tailscale control plane for the private mesh.
-
wg-easy, frp
WireGuard peers and reverse tunnels back to the home lab.
-
Mailcow
Full mail stack: Postfix, Dovecot, Rspamd, SOGo, ClamAV.
-
AzuraCast
Radio streaming and scheduling.
-
Prometheus, Grafana
Metrics and dashboards, with node-exporter and cAdvisor.
-
Portainer
Container management across the fleet.
-
Immich
Photo and video library, with its own machine-learning workers.
-
n8n
Workflow automation and scheduled jobs.
-
Pi-hole
DNS for the mesh, with filtering.
-
Restream pipeline
FFmpeg-based live restreaming to YouTube.
-
Local models
Language models served on owned GPUs, no external API.
-
Ansible
Provisioning and configuration for every host above.
Kept online to give the monitoring something real to watch. Each one ships its own API docs and a web front end. The dots are live, from the same monitoring that watches everything else here.
-
geoforgeLive
GPS points snapped to real OpenStreetMap ways.
-
prayer-timesLive
Prayer times and the Hijri calendar, computed offline.
-
quotesLive
Quotes API with keys and quotas.
Built to be used rather than watched. These keep their data on the device and talk to nothing here.
-
hadith-dailyShipped
A hadith a day, with a native home-screen widget. The wording is curated and graded ahead of time and ships inside the app.
-
lazylogShipped
A daily journal and money tracker that never leaves the phone — no account, no cloud, no network permission at all.
Live state of the public services, pulled from the monitoring as you read this. History and details are on the status page.
-
status.owla.dev
Live uptime and history for the APIs above.