Service Routing

Services are accessible via three DNS domains with different reachability.

DNS Domains

DomainProxyReachable From
*.eblu.meflyio-proxy (Fly.io → Tailscale tunnel)Public internet
*.ops.eblu.meCaddy on indrik8s pods, docker containers, tailnet clients
*.tail8d86e.ts.netTailscale MagicDNSTailnet clients only

Use *.ops.eblu.me for services that need pod-to-service communication. Use *.eblu.me for services exposed publicly via Fly.io.

Caddy Services (*.ops.eblu.me)

DNS points to indri’s Tailscale IP. TLS via Let’s Encrypt (ACME DNS-01 with Gandi).

Public Services (*.eblu.me)

DNS CNAMEs point to blumeops-proxy.fly.dev. TLS via Fly.io-managed Let’s Encrypt. Traffic tunnels back to the homelab over Tailscale. Only services tagged tag:flyio-target are reachable by the proxy — see flyio-proxy for details.

ServiceURLDescription
docshttps://docs.eblu.meDocumentation site
forgejohttps://forge.eblu.meGit hosting (public)

Tailscale-Only Services

ServiceURLDescription
Kuberneteshttps://k8s.tail8d86e.ts.netMinikube API

Port Map (Indri)

PortServiceProtocolBindingNotes
443CaddyHTTPS0.0.0.0Reverse proxy
2222Caddy L4TCP0.0.0.0SSH proxy to Forgejo
5432Caddy L4TCP0.0.0.0PostgreSQL proxy
9100Caddy L4TCP0.0.0.0Sifaka node_exporter proxy
9633Caddy L4TCP0.0.0.0Sifaka smartctl_exporter proxy
2200Forgejo SSHTCPlocalhostBuilt-in SSH server
3001ForgejoHTTPlocalhostWeb UI
5050ZotHTTPlocalhostRegistry API
8096JellyfinHTTPlocalhostMedia server
44491K8s APIHTTPS0.0.0.0Minikube API server