Files
homelab/docs/SERVICES.md
T
2026-04-26 22:26:14 -04:00

3.9 KiB

Services

Everything I'm running, grouped by what it does. URLs, ports, and which host runs what are operational details — those live in the private repo.

Identity & access

Service What it does
Authentik SSO for everything internal. OIDC where the app supports it, Caddy forward auth where it doesn't.
Pi-hole DNS for the LAN, ad blocking, and the source of truth for internal hostnames.
WireGuard The only way in from outside. All admin work happens through the tunnel.

Reverse proxy & TLS

Two Caddy instances, by design:

  • Internal Caddy — fronts everything internal. Reachable from inside the LAN or via VPN. Does most of the routing.
  • DMZ Caddy — fronts the small set of things I want public. Lives on its own VLAN with no inbound access to internal services beyond a tight, firewall-enforced allowlist.

Both use Cloudflare DNS-01 for ACME, which is how internal-only services get valid public certs without ever being exposed to the internet for issuance.

Productivity & knowledge

Service What it replaces
Outline Notion / Confluence
Vikunja Todoist / Asana
Hoarder Pocket / Raindrop
Memos Apple Notes (the quick-capture kind)
FreshRSS Feedly
Bytestash gist / pastebin
Filebrowser Dropbox-style file access
Baikal iCloud calendar/contacts (CalDAV / CardDAV)

Money

Service What it replaces
Actual Budget YNAB / Mint
Ghostfolio Personal Capital

Operations & day-to-day

Service What it does
Grist Lightweight relational tracking — anything that wants to be in a spreadsheet but shouldn't be
Glance Personal landing page / dashboard
Traggo Time tracking

Media

Service What it does
Plex Media library (legacy clients)
Jellyfin Media library (primary, open source)
*arr stack Library automation
qBittorrent Downloads
Immich Self-hosted Google Photos replacement

Home / IoT

Service What it does
Home Assistant OS Home automation hub

Secrets

Service What it does
Vaultwarden Bitwarden-compatible password manager. Planned, not deployed yet.

Bots & automation

Service What it does
Vocard Discord music bot
MonitorRSS RSS-to-Discord notifications
ntfy Push notifications for ops alerts

Monitoring

Service What it does
Victoria Metrics Time-series store
Grafana Dashboards
Beszel Lightweight host metrics
Uptime Kuma Synthetic uptime checks

Public services

A small, intentional set of things that are reachable from the open internet. They all sit behind the DMZ reverse proxy on a VLAN with no inbound access to internal subnets.

Service Why it's public
Portfolio It's a portfolio.
Self-hosted Git Where you're reading this.
SSO endpoint Has to be reachable for an OIDC flow on one specific public-facing service (the Discord bot dashboard). It's the only internal-VLAN backend the public proxy is allowed to talk to, and the firewall enforces that — not just the proxy config.
One Authentik-gated app The Discord bot dashboard. Public so I can hit it from outside the LAN; gated by Authentik forward auth before anything responds.

Who can access what

Three audiences, three levels:

  • Internet, anonymous — sees only the small public set above.
  • Internet, signed into Authentik — same as above, plus access to the Authentik-gated public services.
  • Connected via WireGuard — gets everything: internal apps and admin surfaces (hypervisor, firewall, backup server, network controller, monitoring). This is the only way to reach any admin surface.

The WFH and IoT VLANs are deliberately outside this access model. Those are for me-as-a-user (work laptop, smart devices), not me-as-an-operator. They never see the internal service plane.