207 lines
5.5 KiB
Plaintext
207 lines
5.5 KiB
Plaintext
= 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 AP’s 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 LXC’s, 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/LXC’s (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 LXC’s.
|
||
* **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. |