Remove Mark5/Bones/Neo/Mark44 — G9 Swarm Cluster is the ONLY deployment target
All services reassigned to MK7 (Swarm Manager) or swarm-distributed. Per Bobby: Mark5, Bones, Neo, Mark44 are NOT part of this homelab services stack. Phase 1 infra (Traefik, DNS, AdGuard, Portainer, Prometheus, Beszel, Dozzle, Authelia, Homepage) → MK7 Phase 2 media (Jellyfin, Sonarr, Radarr, Prowlarr) → Swarm distributed Phase 3 dashboards (Grafana, Homepage) → Swarm distributed Also updates: - Backup target: MK7 secondary storage (was Bones) - Network/DNS/Security model: all refs to Bones/Neo/Mark5/Mark44 corrected
This commit is contained in:
@@ -2,28 +2,28 @@
|
||||
|
||||
## Ingress Flow
|
||||
```
|
||||
[Internet] → [Tailscale mesh] → [Mark5: Traefik] → [Target Node: Service Port]
|
||||
[Internet] → [Tailscale mesh] → [MK7: Traefik] → [Target Node: Service Port]
|
||||
```
|
||||
|
||||
## Traefik Role
|
||||
- **Single entrypoint.** Every HTTP/HTTPS service routes through Traefik on Mark5.
|
||||
- **Single entrypoint.** Every HTTP/HTTPS service routes through Traefik on MK7.
|
||||
- **Tailscale-native.** Traefik binds to `0.0.0.0:80` and `0.0.0.0:443`. No `tailscale serve`.
|
||||
- **Service discovery via Docker labels.** Each compose service exposes labels that Traefik reads from the Docker socket on Mark5.
|
||||
- **Service discovery via Docker labels.** Each compose service exposes labels that Traefik reads from the Docker socket on MK7.
|
||||
- **Docker socket access restricted.** Traefik mounts a read-only Docker socket. No other service gets socket access.
|
||||
|
||||
## Internal Traffic Patterns
|
||||
| Source | Destination | Protocol | Port | Notes |
|
||||
|--------|-------------|----------|------|-------|
|
||||
| Traefik (Mark5) | Any service | HTTP/HTTPS | Varies | Proxied via Tailscale IP |
|
||||
| Beszel (Mark44) | Any node | HTTP | Varies | Agent polls HTTP metrics endpoints (read-only) |
|
||||
| Prometheus (Mark44) | Any node | HTTP | 9100 (node-exporter) | Scrapes node and container metrics |
|
||||
| Prowlarr (Mark44) | Indexer sites | HTTPS | 443 | Outbound only |
|
||||
| Sonarr/Radarr (Mark44) | Prowlarr | HTTP | 9696 | Internal indexer lookup |
|
||||
| Nextcloud (Neo) | PostgreSQL (Bones) | TCP | 5432 | DB traffic over Tailscale |
|
||||
| Traefik (MK7) | Any service | HTTP/HTTPS | Varies | Proxied via Tailscale IP |
|
||||
| Beszel (MK7) | Any node | HTTP | Varies | Agent polls HTTP metrics endpoints (read-only) |
|
||||
| Prometheus (MK7) | Any node | HTTP | 9100 (node-exporter) | Scrapes node and container metrics |
|
||||
| Prowlarr (MK7) | Indexer sites | HTTPS | 443 | Outbound only |
|
||||
| Sonarr/Radarr (MK7) | Prowlarr | HTTP | 9696 | Internal indexer lookup |
|
||||
| Nextcloud (MK7) | PostgreSQL (MK7) | TCP | 5432 | DB traffic over Tailscale |
|
||||
|
||||
## DNS Resolution
|
||||
- **Technitium (Bones)** is the authoritative internal DNS for `*.ai.home`.
|
||||
- **AdGuard Home (Bones)** handles recursive resolution with ad-block lists. Replaces Pi-hole.
|
||||
- **Technitium (MK7)** is the authoritative internal DNS for `*.ai.home`.
|
||||
- **AdGuard Home (MK7)** handles recursive resolution with ad-block lists. Replaces Pi-hole.
|
||||
- **Chain:** Client → Technitium (local record?) → AdGuard Home (recursive + blocklist) → Upstream (Cloudflare/Quad9)
|
||||
- **Tailscale MagicDNS** remains enabled as fallback. If Technitium fails, clients fall back to `100.x.x.x` direct resolution.
|
||||
- **AdGuard Home admin UI** runs on port 3000 by default (separate from Grafana if co-located).
|
||||
|
||||
Reference in New Issue
Block a user