blumeops/docs/reference/infrastructure/routing.md
Erich Blume 649ae15204 Fix escaped pipes in wiki-links
Remove backslash escaping from pipe characters in wiki-links.
Correct: [[services/forgejo|Forgejo]]
Wrong: [[services/forgejo\|Forgejo]]

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 13:33:14 -08:00

3 KiB

title tags
Service Routing
infrastructure
network

Service Routing

Services are accessible via two DNS domains with different reachability.

DNS Domains

Domain Proxy Reachable From
*.ops.eblu.me Caddy on indri k8s pods, docker containers, tailnet clients
*.tail8d86e.ts.net Tailscale MagicDNS Tailnet clients only

Use *.ops.eblu.me for services that need pod-to-service communication.

Caddy Services (*.ops.eblu.me)

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

Service URL Description
Homepage https://go.ops.eblu.me Service dashboard
[[services/forgejo Forgejo]] https://forge.ops.eblu.me
[[services/zot Zot]] https://registry.ops.eblu.me
[[services/grafana Grafana]] https://grafana.ops.eblu.me
[[services/argocd ArgoCD]] https://argocd.ops.eblu.me
[[services/prometheus Prometheus]] https://prometheus.ops.eblu.me
[[services/loki Loki]] https://loki.ops.eblu.me
[[services/miniflux Miniflux]] https://feed.ops.eblu.me
[[services/kiwix Kiwix]] https://kiwix.ops.eblu.me
[[services/transmission Transmission]] https://torrent.ops.eblu.me
[[services/teslamate TeslaMate]] https://tesla.ops.eblu.me
[[services/navidrome Navidrome]] https://dj.ops.eblu.me
[[services/jellyfin Jellyfin]] https://jellyfin.ops.eblu.me
[[services/postgresql PostgreSQL]] pg.ops.eblu.me:5432
[[storage/sifaka Sifaka]] https://nas.ops.eblu.me

Tailscale-Only Services

Service URL Description
Kubernetes https://k8s.tail8d86e.ts.net Minikube API

Port Map (Indri)

Port Service Protocol Binding Notes
443 Caddy HTTPS 0.0.0.0 Reverse proxy
2222 Caddy L4 TCP 0.0.0.0 SSH proxy to Forgejo
5432 Caddy L4 TCP 0.0.0.0 PostgreSQL proxy
2200 Forgejo SSH TCP localhost Built-in SSH server
3001 Forgejo HTTP localhost Web UI
5050 Zot HTTP localhost Registry API
8096 Jellyfin HTTP localhost Media server
44491 K8s API HTTPS 0.0.0.0 Minikube API server

Adding New Services

Indri Services (via Caddy)

  1. Host service on localhost
  2. Add to ansible/roles/caddy/defaults/main.yml
  3. Run mise run provision-indri -- --tags caddy

K8s Services (via Tailscale Ingress)

  1. Create manifests in argocd/manifests/<service>/
  2. Add ArgoCD Application in argocd/apps/
  3. Add Tailscale Ingress annotation
  4. Add Caddy proxy entry
  5. Sync via ArgoCD