add diagram to main infra documentation
All checks were successful
deploy-docs / build-and-deploy (push) Successful in 1m0s
All checks were successful
deploy-docs / build-and-deploy (push) Successful in 1m0s
This commit is contained in:
@@ -20,6 +20,20 @@ This document outlines the internal infrastructure of the **wompmacho** homelab.
|
|||||||
|
|
||||||
[TOC]
|
[TOC]
|
||||||
|
|
||||||
|
## 2026 Home lab Diagram
|
||||||
|
|
||||||
|
{{< rawhtml >}}
|
||||||
|
<iframe
|
||||||
|
src="https://homelable.wompmacho.com/view?key=live"
|
||||||
|
width="100%"
|
||||||
|
height="700px"
|
||||||
|
style="border:none; border-radius: 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); overflow: auto;"
|
||||||
|
allowfullscreen>
|
||||||
|
</iframe>
|
||||||
|
{{< /rawhtml >}}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Physical and hardware registry
|
## Physical and hardware registry
|
||||||
|
|
||||||
### Compute and virtualization
|
### Compute and virtualization
|
||||||
@@ -117,75 +131,75 @@ The Proxmox virtualization host (`laptop-proxmox`) is an entirely separate physi
|
|||||||
|
|
||||||
### Proxmox node (`laptop-proxmox` - `10.0.0.142`)
|
### Proxmox node (`laptop-proxmox` - `10.0.0.142`)
|
||||||
|
|
||||||
| ID | Type | Hostname | IP | Role |
|
| ID | Type | Hostname | IP | Role |
|
||||||
| --- | ---- | --------------- | ---------- | ------------------------------- |
|
| --- | ---- | --------------- | ---------- | ------------------------------------------ |
|
||||||
| - | LXC | **pihole** | 10.0.0.11 | DNS Sinkhole / Local DNS |
|
| - | LXC | **pihole** | 10.0.0.11 | DNS Sinkhole / Local DNS |
|
||||||
| - | VM | **docker** | 10.0.0.190 | Main Docker Host (Ubuntu 24.04) |
|
| - | VM | **docker** | 10.0.0.190 | Main Docker Host (Ubuntu 24.04) |
|
||||||
| - | VM | **pterodactyl** | 10.0.0.110 | Game Server Panel (Debian) |
|
| - | VM | **pterodactyl** | 10.0.0.110 | Game Server Panel (Debian) |
|
||||||
| - | LXC | **invidious** | 10.0.0.217 | Invidious Private YouTube Proxy Web Client |
|
| - | LXC | **invidious** | 10.0.0.217 | Invidious Private YouTube Proxy Web Client |
|
||||||
|
|
||||||
## Docker services
|
## Docker services
|
||||||
|
|
||||||
These services run on the main Docker Host VM (`10.0.0.190`) and are proxied via Nginx Proxy Manager (SSL via Cloudflare).
|
These services run on the main Docker Host VM (`10.0.0.190`) and are proxied via Nginx Proxy Manager (SSL via Cloudflare).
|
||||||
|
|
||||||
| Container Name | Mapped Ports | Access | Proxy Route / Domain | Description / Role |
|
| Container Name | Mapped Ports | Access | Proxy Route / Domain | Description / Role |
|
||||||
|---|---|---|---|---|
|
| ---------------------------------------- | ----------------------- | ------------ | ------------------------------------------ | -------------------------------------------------------------------------- |
|
||||||
| **nginx-proxy-manager** | 80, 81, 443 | Internal/VPN | `http://nginx/` | Reverse proxy manager dashboard (Port 81) and SSL termination |
|
| **nginx-proxy-manager** | 80, 81, 443 | Internal/VPN | `http://nginx/` | Reverse proxy manager dashboard (Port 81) and SSL termination |
|
||||||
| **gluetun** | 8181, 6565, 6881, etc. | Internal/VPN | - | VPN Gateway for other containers |
|
| **gluetun** | 8181, 6565, 6881, etc. | Internal/VPN | - | VPN Gateway for other containers |
|
||||||
| **portainer** | 8000, 9000, 9001, 9443 | Internal/VPN | `http://portainer/` | Docker container management GUI |
|
| **portainer** | 8000, 9000, 9001, 9443 | Internal/VPN | `http://portainer/` | Docker container management GUI |
|
||||||
| **cloudflare-ddns** | - | Internal/VPN | - | Automatically updates dynamic IP to Cloudflare DNS |
|
| **cloudflare-ddns** | - | Internal/VPN | - | Automatically updates dynamic IP to Cloudflare DNS |
|
||||||
| **immich_server** | 2283 | Public | `immich.wompmacho.com` | Photo/Video backup and gallery server |
|
| **immich_server** | 2283 | Public | `immich.wompmacho.com` | Photo/Video backup and gallery server |
|
||||||
| **immich_postgres** | 5432 (Internal) | Internal/VPN | - | Database for Immich gallery |
|
| **immich_postgres** | 5432 (Internal) | Internal/VPN | - | Database for Immich gallery |
|
||||||
| **immich_redis** | 6379 (Internal) | Internal/VPN | - | Redis cache for Immich gallery |
|
| **immich_redis** | 6379 (Internal) | Internal/VPN | - | Redis cache for Immich gallery |
|
||||||
| **immich_machine_learning** | - (Internal) | Internal/VPN | - | AI Machine Learning inference backend for Immich |
|
| **immich_machine_learning** | - (Internal) | Internal/VPN | - | AI Machine Learning inference backend for Immich |
|
||||||
| **vaultwarden** | 9998, 9999 | Public | `vaultwarden.wompmacho.com` | Self-hosted Bitwarden password manager |
|
| **vaultwarden** | 9998, 9999 | Public | `vaultwarden.wompmacho.com` | Self-hosted Bitwarden password manager |
|
||||||
| **gitea** | 222, 3001 | Public | `git.wompmacho.com` | Internal Git repository host |
|
| **gitea** | 222, 3001 | Public | `git.wompmacho.com` | Internal Git repository host |
|
||||||
| **gitea-db-1** | 5432 (Internal) | Internal/VPN | - | PostgreSQL Database for Gitea |
|
| **gitea-db-1** | 5432 (Internal) | Internal/VPN | - | PostgreSQL Database for Gitea |
|
||||||
| **gitea_runner** | - | Internal/VPN | - | CI/CD Action Runner for Gitea pipelines |
|
| **gitea_runner** | - | Internal/VPN | - | CI/CD Action Runner for Gitea pipelines |
|
||||||
| **frigate** | 5000, 8554, 8555, 8971 | Public | `frigate.wompmacho.com`, `http://frigate/` | AI NVR actively recording Amcrest IP camera |
|
| **frigate** | 5000, 8554, 8555, 8971 | Public | `frigate.wompmacho.com`, `http://frigate/` | AI NVR actively recording Amcrest IP camera |
|
||||||
| **homepage** | 7676 | Internal/VPN | `http://homepage/` | Navigation dashboard |
|
| **homepage** | 7676 | Internal/VPN | `http://homepage/` | Navigation dashboard |
|
||||||
| **docs-public** | 9895 | Public | `wiki.wompmacho.com` | Nginx serving public Hugo documentation |
|
| **docs-public** | 9895 | Public | `wiki.wompmacho.com` | Nginx serving public Hugo documentation |
|
||||||
| **docs-private** | 9897 | Internal/VPN | `http://private/` | Nginx serving private Hugo documentation |
|
| **docs-private** | 9897 | Internal/VPN | `http://private/` | Nginx serving private Hugo documentation |
|
||||||
| **paperless-ngx** | 3003 | Internal/VPN | `http://paperless/` | Document management system web interface |
|
| **paperless-ngx** | 3003 | Internal/VPN | `http://paperless/` | Document management system web interface |
|
||||||
| **paperless-broker** | 6379 (Internal) | Internal/VPN | - | Redis message broker for Paperless-ngx task queue |
|
| **paperless-broker** | 6379 (Internal) | Internal/VPN | - | Redis message broker for Paperless-ngx task queue |
|
||||||
| **paperless-db** | 5432 (Internal) | Internal/VPN | - | PostgreSQL backend database for Paperless-ngx |
|
| **paperless-db** | 5432 (Internal) | Internal/VPN | - | PostgreSQL backend database for Paperless-ngx |
|
||||||
| **audiobookshelf** | 13378 | Public | `audiobookshelf.wompmacho.com` | Audiobook and podcast server |
|
| **audiobookshelf** | 13378 | Public | `audiobookshelf.wompmacho.com` | Audiobook and podcast server |
|
||||||
| **openai** (formerly open-webui) | 3007 | Internal/VPN | `http://openai/`, `http://gemma/` | OpenAI-compatible API gateway and LLM web interface |
|
| **openai** (formerly open-webui) | 3007 | Internal/VPN | `http://openai/`, `http://gemma/` | OpenAI-compatible API gateway and LLM web interface |
|
||||||
| **reaper** | 3010 | Internal/VPN | `http://reaper/` | Automated Reaper DAW interface in a web browser (currently in maintenance) |
|
| **reaper** | 3010 | Internal/VPN | `http://reaper/` | Automated Reaper DAW interface in a web browser (currently in maintenance) |
|
||||||
| **dev** (code-server) | 8443 | Public | `dev.wompmacho.com` | VS Code remote development environment running directly on the host |
|
| **dev** (code-server) | 8443 | Public | `dev.wompmacho.com` | VS Code remote development environment running directly on the host |
|
||||||
| **slopsmith-web** (formerly slopsmith) | 10101 | Internal/VPN | `http://slopsmith/` | Custom internal application |
|
| **slopsmith-web** (formerly slopsmith) | 10101 | Internal/VPN | `http://slopsmith/` | Custom internal application |
|
||||||
| **linkstack** | 8190 | Public | `wompmacho.com`, `www.wompmacho.com` | Personal link landing page mapped to port `8190` |
|
| **linkstack** | 8190 | Public | `wompmacho.com`, `www.wompmacho.com` | Personal link landing page mapped to port `8190` |
|
||||||
| **torrent** (via Gluetun) | - | Internal/VPN | `http://torrent/` | qBittorrent client routed through VPN container |
|
| **torrent** (via Gluetun) | - | Internal/VPN | `http://torrent/` | qBittorrent client routed through VPN container |
|
||||||
| **nicotine** (via Gluetun) | - | Internal/VPN | `http://nicotine/` | Soulseek client routed through VPN container |
|
| **nicotine** (via Gluetun) | - | Internal/VPN | `http://nicotine/` | Soulseek client routed through VPN container |
|
||||||
| **navidrome** | 4533 | Internal/VPN | `http://music/` | Personal music streaming server |
|
| **navidrome** | 4533 | Internal/VPN | `http://music/` | Personal music streaming server |
|
||||||
| **musicbrainz_picard** (formerly picard) | 5800 | Internal/VPN | `http://picard/` | MusicBrainz Picard tagger GUI |
|
| **musicbrainz_picard** (formerly picard) | 5800 | Internal/VPN | `http://picard/` | MusicBrainz Picard tagger GUI |
|
||||||
| **dozzle** | 4343 | Internal/VPN | `http://dozzle/` | Real-time Docker log viewer |
|
| **dozzle** | 4343 | Internal/VPN | `http://dozzle/` | Real-time Docker log viewer |
|
||||||
| **guacamole** | 8080 | Public | `guac.wompmacho.com` | Apache Guacamole client for browser-based remote desktop |
|
| **guacamole** | 8080 | Public | `guac.wompmacho.com` | Apache Guacamole client for browser-based remote desktop |
|
||||||
| **guacd** | 4822 (Internal) | Internal/VPN | - | Guacamole proxy daemon for RDP/SSH/VNC protocol handling |
|
| **guacd** | 4822 (Internal) | Internal/VPN | - | Guacamole proxy daemon for RDP/SSH/VNC protocol handling |
|
||||||
| **guac-postgresql** | 5432 (Internal) | Internal/VPN | - | PostgreSQL backend database for Guacamole |
|
| **guac-postgresql** | 5432 (Internal) | Internal/VPN | - | PostgreSQL backend database for Guacamole |
|
||||||
| **neko** | 8282, 52000-52100 (UDP) | Public | `neko.wompmacho.com` | WebRTC streaming virtual browser room |
|
| **neko** | 8282, 52000-52100 (UDP) | Public | `neko.wompmacho.com` | WebRTC streaming virtual browser room |
|
||||||
| **homelable-frontend** | 9444 | Internal/VPN | `http://homelable/` | Homelable interactive network visualizer frontend |
|
| **homelable-frontend** | 9444 | Internal/VPN | `http://homelable/` | Homelable interactive network visualizer frontend |
|
||||||
| **homelable-backend** | 9445 | Internal/VPN | - | Homelable API backend querying homelab network states |
|
| **homelable-backend** | 9445 | Internal/VPN | - | Homelable API backend querying homelab network states |
|
||||||
| **homelable-mcp** | 8001 | Internal/VPN | - | Homelable MCP server exposing network state to LLMs |
|
| **homelable-mcp** | 8001 | Internal/VPN | - | Homelable MCP server exposing network state to LLMs |
|
||||||
| **discodrome** | - (Internal) | Internal/VPN | - | Music tagging and catalog indexing backend |
|
| **discodrome** | - (Internal) | Internal/VPN | - | Music tagging and catalog indexing backend |
|
||||||
| **npm-sync** | - (Internal) | Internal/VPN | - | Sidecar daemon monitoring Docker socket to sync proxy records |
|
| **npm-sync** | - (Internal) | Internal/VPN | - | Sidecar daemon monitoring Docker socket to sync proxy records |
|
||||||
| **pihole-dns-shim** | - (Internal) | Internal/VPN | - | Sidecar daemon monitoring Docker socket to sync DNS records |
|
| **pihole-dns-shim** | - (Internal) | Internal/VPN | - | Sidecar daemon monitoring Docker socket to sync DNS records |
|
||||||
|
|
||||||
## Truenas Services
|
## Truenas Services
|
||||||
|
|
||||||
These services are hosted on the TrueNAS node (`truenas`) and proxied via the Docker VM (`10.0.0.190`).
|
These services are hosted on the TrueNAS node (`truenas`) and proxied via the Docker VM (`10.0.0.190`).
|
||||||
|
|
||||||
| Container Name | Mapped Ports | Access | Proxy Route / Domain | Description / Role |
|
| Container Name | Mapped Ports | Access | Proxy Route / Domain | Description / Role |
|
||||||
|---|---|---|---|---|
|
| -------------- | ------------ | ------------ | ------------------------- | -------------------------------------------- |
|
||||||
| **Sonarr** | 30027 | Internal/VPN | - | TV Show Management |
|
| **Sonarr** | 30027 | Internal/VPN | - | TV Show Management |
|
||||||
| **Radarr** | 30025 | Internal/VPN | - | Movie Management |
|
| **Radarr** | 30025 | Internal/VPN | - | Movie Management |
|
||||||
| **Lidarr** | 30014 | Internal/VPN | - | Music Management |
|
| **Lidarr** | 30014 | Internal/VPN | - | Music Management |
|
||||||
| **Readarr** | 30045 | Internal/VPN | - | Book Management |
|
| **Readarr** | 30045 | Internal/VPN | - | Book Management |
|
||||||
| **Prowlarr** | 30050 | Internal/VPN | - | Indexer Management |
|
| **Prowlarr** | 30050 | Internal/VPN | - | Indexer Management |
|
||||||
| **Bazarr** | 30046 | Internal/VPN | - | Subtitle Management |
|
| **Bazarr** | 30046 | Internal/VPN | - | Subtitle Management |
|
||||||
| **Jellyfin** | 30013 | Internal/VPN | - | Media Streaming Server |
|
| **Jellyfin** | 30013 | Internal/VPN | - | Media Streaming Server |
|
||||||
| **Jellyseerr** | 30042 | Public | `jellyseer.wompmacho.com` | Media Requests dashboard |
|
| **Jellyseerr** | 30042 | Public | `jellyseer.wompmacho.com` | Media Requests dashboard |
|
||||||
| **calibre** | 32015 | Internal/VPN | calibre | E-book management and calibre content server |
|
| **calibre** | 32015 | Internal/VPN | calibre | E-book management and calibre content server |
|
||||||
|
|
||||||
## Self-Hosted AI Infrastructure
|
## Self-Hosted AI Infrastructure
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user