Add Indeling.adoc

This commit is contained in:
jasper
2025-12-09 22:20:24 +01:00
commit efe854b6af

207
Indeling.adoc Normal file
View File

@@ -0,0 +1,207 @@
= Homelab-overzicht
Jasper <you@example.com>
:toc:
Dit document beschrijft de huidige homelab-indeling: Proxmox hosts, netwerksegmenten, LXC-containers en hun IP-adressen / rollen.
== Netwerk
=== VLAN-indeling
[cols="1,2,2,4",options="header"]
|===
| VLAN | Subnet | Voorbeeld gateway | Doel
| LAN
| 192.168.2.0/24
| 192.168.2.1
| Primair LAN voor clients, servers, beheer, management-interfaces.
| IoT (VLAN 50)
| 10.0.50.0/24
| 10.0.50.1
| IoT-apparaten (lampen, sensoren, etc.). Beperkte toegang richting LAN.
| DMZ (VLAN 60)
| 10.0.60.0/24
| 10.0.60.1
| Publiek toegankelijke services (o.a. Helium HNT miner).
| Guest
| (bijv. 10.0.70.0/24)
| 10.0.70.1
| Gasten-WiFi, volledig gescheiden van LAN/IoT.
|===
=== Belangrijke netwerk-apparatuur
[cols="2,2,3,5",options="header"]
|===
| Apparaat | IP-adres | Locatie / VLAN | Opmerking
| OPNsense VM
| 192.168.2.1
| LAN | Default gateway, VLAN-routing, firewall, DNS (via AdGuard).
| UniFi Controller
| 192.168.2.8
| LAN | Beheer UniFi APs en switches (traefik: `unifi.japnet.nl` → https://192.168.2.8:8443).
| Periphery host (japloader)
| 192.168.2.80
| LAN | Docker host voor Komodo Periphery (`8120/tcp`).
|===
== Proxmox hosts
[cols="2,2,3,5",options="header"]
|===
| Hostnaam | Platform | Opslag | Rol
| N5105-mini
| Proxmox VE
| NVMe + evt. SSD | Draait o.a. OPNsense-VM, Traefik, (toekomst) SSO / Authentik.
| fast (i3)
| Proxmox VE 9
| ZFS pool `octopus` | Hoofdserver voor LXC-containers (NAS, media, arr-stack, tools).
|===
== LXC-containers (services)
Onderstaande tabel beschrijft de belangrijkste LXCs, hun IP-adressen en de services die erin draaien.
[cols="2,2,2,3,5",options="header"]
|===
| Naam LXC | Host | IP-adres | Dataset / mounts | Belangrijkste services / rol
| japnas
| fast
| 192.168.2.xx
| `/octopus/media` en `/octopus/documents` als SMB/NFS
| Centrale NAS: SMB-shares voor clients, NFS voor Proxmox/LXCs (bijv. `/octopus/documents/appdata`).
| japmedia
| fast
| 192.168.2.71
|
* `/rpool/appdata/japmedia` → `/srv/appdata`
* `/octopus/media/movies` → `/srv/media/movies`
* `/octopus/media/series` → `/srv/media/series`
* `/octopus/media/music` → `/srv/media/music`
* `/octopus/media/recordings` → `/srv/media/recordings`
|
Media-server LXC:
* Jellyfin (traefik: `jellyfin.japnet.nl` → http://192.168.2.71:8096)
* TVHeadend (HDHomeRun input)
* (optioneel) Zigbee2MQTT / Home Assistant integraties
* iGPU passthrough voor hardware transcoding
| japarr
| fast
| 192.168.2.72
|
* `/rpool/appdata/japarr` → `/srv/appdata`
* `/octopus/media/downloads` → `/srv/downloads` (bijv. `/srv/downloads/complete`, `/srv/downloads/incomplete`)
|
Download- en Arr-stack LXC:
* Sonarr, Radarr, Prowlarr, (SabNZBd/NZBGet), Transmission
* Gluetun / andere VPN-container voor usenet/torrent-verkeer
* Traefik-router bestand `arr.yml` (bijv. `sonarr.japnet.nl`, `radarr.japnet.nl`, `prowlarr.japnet.nl`)
| japloader
| fast
| 192.168.2.80
|
* `/srv/stacks` → Komodo stacks
* `/srv/appdata` → Komodo & Periphery data
|
Infra-/orchestratie LXC:
* Komodo Periphery (exposed op `8120/tcp`)
* Overige helper-services/tools voor deploy (bijv. scripts, kleine utils).
| japops
| fast
| 192.168.2.xx
|
* `/srv/appdata/komodo` → Komodo core
* `/srv/appdata/monitoring` (optioneel)
|
“Ops”-LXC:
* Komodo Core (stacks orchestratie)
* Monitoring / observability (bijv. Prometheus, Grafana)
* Ntfy/Smtp bridge voor alerts (toekomst).
| japgit
| fast
| 192.168.2.xx
|
* `/srv/appdata/gitea` → Gitea data
|
Git- en CI-omgeving:
* Gitea (traefik: `git.japnet.nl` of `gitea.japnet.nl`)
* (optioneel) Drone CI / Woodpecker
* Repos voor infra (`infra-auth`, `infra-media`, `infra-arr`, …).
| japauth
| N5105-mini
| 192.168.2.xx
|
* `/srv/appdata/authentik`
|
Authenticatie LXC (gepland):
* Authentik voor OIDC / SSO
* Integratie met traefik (forwardAuth) en apps (Jellyfin, Gitea, etc.).
|===
== Traefik & DNS
Traefik draait op de N5105-host en stuurt verkeer vanuit Cloudflare / internet naar de juiste backend (LXC of VM) op het LAN.
=== Voorbeelden hostnames
[cols="2,3,5",options="header"]
|===
| Hostname | Backend | Opmerking
| `unifi.japnet.nl`
| https://192.168.2.8:8443
| UniFi controller, TLS passthrough / re-encrypt.
| `jellyfin.japnet.nl`
| http://192.168.2.71:8096
| Jellyfin in `japmedia` LXC.
| `sonarr.japnet.nl`
| http://192.168.2.72:8989
| Sonarr in `japarr` LXC.
| `radarr.japnet.nl`
| http://192.168.2.72:7878
| Radarr in `japarr` LXC.
| `prowlarr.japnet.nl`
| http://192.168.2.72:9696
| Prowlarr in `japarr` LXC.
| `git.japnet.nl`
| http://192.168.2.xx:3000
| Gitea in `japgit` LXC.
| `komodo.japnet.nl`
| http://192.168.2.xx:port
| Komodo Core in `japops` LXC.
|===
== Naming-conventies
* **LXC-namen** beginnen met `jap…` en geven de functie aan (`japmedia`, `japarr`, `japnas`, `japops`, …).
* **Data** per LXC in ZFS datasets onder `/rpool/appdata/<lxc-naam>` en in de container gemount op `/srv/appdata`.
* **Media** centraal in ZFS pool `octopus` (bijv. `/octopus/media/movies`, `/octopus/media/series`, …) en read-only gemount in de relevante LXCs.
* **Compose-stacks** in `/srv/stacks/<stacknaam>` binnen de LXC, met `.env`-bestanden en traefik dynamic config onder `/etc/traefik/dynamic/`.
== TODO / nog bijwerken
* Exacte IP-adressen invullen voor `japnas`, `japops`, `japgit`, `japauth`.
* Overzicht toevoegen van gebruikte Docker-netwerken per LXC.
* Schema toevoegen (diagram) van verkeer: internet → Cloudflare → Traefik → LXC/VM.