Add full homelab inventory and remaining home services.

UniFi, Joplin, Glance, Uptime Kuma, Whoogle, Synology packages docs,
Proxmox LXC inventory, Portainer stacks, and INVENTORY.md master list.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
mo
2026-05-17 13:26:53 +02:00
parent 04162745e9
commit c7f1b094cb
24 changed files with 467 additions and 47 deletions
+33 -39
View File
@@ -1,55 +1,49 @@
# Apps — overzicht
Elke map = **één applicatie**. Bevat `docker-compose.yml`, `.env`, en/of `config/` waar van toepassing.
**Volledige inventaris:** [INVENTORY.md](../INVENTORY.md)
Elke map = één applicatie (`docker-compose.yml`, `.env`, `config/`).
**NAS-repo:** `/volume1/docker/homelab-configs`
**Starten:** `cd apps/<naam> && docker compose up -d`
## Docker op Synology (192.168.1.211)
| App | Map | Poort | Container | Data op NAS |
|-----|-----|-------|-----------|-------------|
| PostgreSQL | [postgres](postgres/) | 5433 | postgres-homelab | `/volume1/docker/postgres/data` |
| pgAdmin | [pgadmin](pgadmin/) | 5434 | pgadmin | volume |
| Gitea | [gitea](gitea/) | 3000 | gitea | docker volumes |
| AdGuard Home | [adguard](adguard/) | 53, 3001 | Adguard | config in repo → `/volume1/docker/Configs/adguard` |
| DuckDNS | [duckdns](duckdns/) | — | duckdns | — |
| Neo4j | [neo4j](neo4j/) | 4915349155 | neo4j | `/volume1/docker/neo4j` |
| Homarr | [homarr](homarr/) | 4755 | homarr | `/volume1/docker/homarr` |
| Portainer | [portainer](portainer/) | 9000 | portainer | `/volume1/docker/portainer` |
| Remotely | [remotely](remotely/) | 8080 | remotely | `/volume1/docker/remotely` |
| Excalidraw | [excalidraw](excalidraw/) | 3765 | Excalidraw | — |
| Guacamole | [guacamole](guacamole/) | 8348 | Guacamole | `/volume1/docker/guacamole` |
| Wazuh | [wazuh](wazuh/) | — | — | `/volume1/docker/wazuh` |
| HA Voice MCP | [ha-voice-control](ha-voice-control/) | 8765 | ha-voice-control | build |
| Monitoring | [monitoring](monitoring/) | 9090, 3002, 9187 | prometheus, grafana, exporter | volumes |
| Homelab Command | [homelab-command](homelab-command/) | 8765 | homelab-command | aparte repo |
| App | Poort | Map |
|-----|-------|-----|
| [postgres](postgres/) | 5433 | DB |
| [pgadmin](pgadmin/) | 5434 | DB UI |
| [gitea](gitea/) | 3000 | Git |
| [adguard](adguard/) | 53, 3001 | DNS |
| [duckdns](duckdns/) | — | DDNS |
| [neo4j](neo4j/) | 49153+ | Graph |
| [homarr](homarr/) | 4755 | Dashboard |
| [portainer](portainer/) | 9000 | Docker UI |
| [remotely](remotely/) | 8080 | Remote |
| [excalidraw](excalidraw/) | 3765 | Whiteboard |
| [guacamole](guacamole/) | 8348 | Remote desktop |
| [monitoring](monitoring/) | 9090, 3002 | Prometheus/Grafana |
| [homelab-command](homelab-command/) | 8765 | aparte repo |
| [wazuh](wazuh/) | — | SIEM |
| [ha-voice-control](ha-voice-control/) | 8765 | HA MCP |
| [unifi](unifi/) | 8443 | UniFi (+ 192.168.1.24) |
| [joplin](joplin/) | 22300 | Notes |
| [glance](glance/) | 8081 | Dashboard |
| [uptime-kuma](uptime-kuma/) | 3001 | Uptime |
| [whoogle](whoogle/) | 5000 | Search |
## Media / automation (configs, draaien op Proxmox LXC)
## Media / HA (config)
| App | Map | Config-bron op NAS |
|-----|-----|-------------------|
| Sonarr | [sonarr](sonarr/) | `/volume1/docker/Configs/Sonarr` |
| Radarr | [radarr](radarr/) | `/volume1/docker/Configs/Radarr` |
| Prowlarr | [prowlarr](prowlarr/) | `/volume1/docker/Configs/Prowlarr` |
| qBittorrent | [qbittorrent](qbittorrent/) | `/volume1/docker/Configs/QBitTorrent` |
| SABnzbd | [sabnzbd](sabnzbd/) | `/volume1/docker/Configs/Sabnzb` |
| Home Assistant | [home-assistant](home-assistant/) | `/volume1/docker/Configs/HA/config` |
[sonarr](sonarr/) · [radarr](radarr/) · [prowlarr](prowlarr/) · [qbittorrent](qbittorrent/) · [sabnzbd](sabnzbd/) · [home-assistant](home-assistant/)
## Proxmox hosts
## Proxmox
| Host | Map | IP |
|------|-----|-----|
| pve (RTX 3090, PVE 9) | [proxmox/hosts/pve](proxmox/hosts/pve/) | 192.168.1.216 |
| dell-proxmox (Dell, PVE 8) | [proxmox/hosts/dell-proxmox](proxmox/hosts/dell-proxmox/) | 192.168.1.56 |
[proxmox/](proxmox/) — hosts `pve` + `dell-proxmox`, [LXC-overzicht](proxmox/lxc-inventory.md)
Zie [proxmox/README.md](proxmox/README.md).
## Synology packages
## Reverse proxy
[synology/](synology/) — Jellyfin, Plex, Tailscale, …
Nginx-configs: [../infrastructure/nginx/](../infrastructure/nginx/)
## Infra
## Aparte Gitea-repos
- **homelab-command** — dashboard, Grafana-build, NATS mesh
- **ha-voice-control-mcp** — MCP server
[../infrastructure/nginx/](../infrastructure/nginx/)
+5
View File
@@ -0,0 +1,5 @@
# Glance
Dashboard. NAS-map `Configs/glance` was leeg — voeg `config/glance.yml` toe wanneer je Glance deployt.
Poort: **8081** (standaard in compose).
View File
+12
View File
@@ -0,0 +1,12 @@
# Glance — dashboard (config map nog leeg op NAS)
services:
glance:
image: glanceapp/glance:latest
container_name: glance
restart: unless-stopped
ports:
- "${GLANCE_PORT:-8081}:8080"
volumes:
- ./config:/app/config
environment:
TZ: ${TZ:-Europe/Brussels}
+5
View File
@@ -0,0 +1,5 @@
# Joplin Server
Notes server. Bestaande data: `/volume1/docker/joplin` (beperkte toegang uid 999).
Poort: **22300**. Gebruikt PostgreSQL — kan `postgres-homelab` hergebruiken i.p.v. aparte `joplin-db`.
+33
View File
@@ -0,0 +1,33 @@
# Joplin Server — data op NAS (map /volume1/docker/joplin, uid 999)
services:
joplin:
image: joplin/server:latest
container_name: joplin
restart: unless-stopped
ports:
- "${JOPLIN_PORT:-22300}:22300"
environment:
APP_PORT: 22300
APP_BASE_URL: ${JOPLIN_BASE_URL:-http://192.168.1.211:22300}
DB_CLIENT: pg
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-WaQTUw2t}
POSTGRES_DATABASE: ${JOPLIN_DB:-joplin}
POSTGRES_USER: ${POSTGRES_USER:-mo}
POSTGRES_PORT: 5432
POSTGRES_HOST: postgres-homelab
depends_on:
- joplin-db
joplin-db:
image: postgres:16-alpine
container_name: joplin-db
restart: unless-stopped
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-WaQTUw2t}
POSTGRES_USER: ${POSTGRES_USER:-mo}
POSTGRES_DB: ${JOPLIN_DB:-joplin}
volumes:
- joplin-db-data:/var/lib/postgresql/data
volumes:
joplin-db-data:
+15 -4
View File
@@ -1,8 +1,19 @@
# portainer
# Portainer
| | |
|---|---|
| **Poort** | 9000 |
| **Start** | `docker compose up -d` |
| **UI** | http://192.168.1.211:9000 |
| **Data** | `/volume1/docker/portainer` |
Zie [apps/README.md](../README.md) en [RESTORE.md](../../RESTORE.md).
```bash
docker compose up -d
```
## Portainer stacks (compose in Portainer beheerd)
| Stack | Bestand | Container |
|-------|---------|-----------|
| Excalidraw | [stacks/excalidraw.yml](stacks/excalidraw.yml) | Excalidraw :3765 |
| Guacamole | [stacks/guacamole.yml](stacks/guacamole.yml) | Guacamole :8348 |
Zie ook [apps/excalidraw](../excalidraw/) en [apps/guacamole](../guacamole/).
+13
View File
@@ -0,0 +1,13 @@
version: "3.9"
services:
excalidraw:
container_name: Excalidraw
healthcheck:
test: curl -f http://localhost:80/ || exit 1
image: excalidraw/excalidraw:latest
ports:
- 3765:80
restart: on-failure:5
stdin_open: true
environment:
- NODE_ENV=production
+20
View File
@@ -0,0 +1,20 @@
services:
guacamole:
container_name: Guacamole
image: jwetzell/guacamole
healthcheck:
test: curl -f http://localhost:8080/ || exit 1
mem_limit: 6g
cpu_shares: 1024
security_opt:
- no-new-privileges:false
restart: on-failure:5
ports:
- 8348:8080
volumes:
- /volume1/docker/guacamole:/config:rw
environment:
PUID: 1026
PGID: 100
TZ: Europe/Bucharest
+62
View File
@@ -0,0 +1,62 @@
# Proxmox — LXC & VM overzicht
Configs: `hosts/<naam>/lxc/*.conf` en `qemu-server/*.conf`
## Host: pve (192.168.1.216)
### VMs
| VMID | Naam |
|------|------|
| 101 | W11 |
| 111 | Syno-latest |
### LXCs
| VMID | Hostname |
|------|----------|
| 100 | autocaliweb |
| 102 | clawbot |
| 103 | CrowdSec |
| 104 | vaultwarden |
| 105 | linkwarden |
| 106 | kimai |
| 107 | pve-scripts-local |
| 108 | tunarr |
| 109 | nextcloudpi |
| 110 | passbolt |
| 112 | immich |
| 113 | metube |
| 114 | endurain |
| 115 | passbolt |
| 116 | opencloud |
| 117 | Proxy |
| 118 | paymenter |
| 119 | nodecast-tv |
## Host: dell-proxmox (192.168.1.56)
### VMs
| VMID | Naam |
|------|------|
| 101 | opnsense |
| 102 | Postgress |
| 103 | Synology |
| 104 | kassa-dev |
| 105 | docker |
### LXCs
| VMID | Hostname |
|------|----------|
| 100 | n8n |
| 106 | vdi.el-kadi.nl |
| 107 | Virtualmin |
| 108 | n8n |
| 109 | nginxproxymanager |
| 110 | nextcloudpi |
| 112 | iventoy |
| 113 | traccar |
| 115 | kasm |
| 116 | runtipi |
| 118 | changedetection |
| 119 | n8n |
> App-configs binnen LXCs: backup via `pct enter <id>` of volume mount. Proxmox container-definitie staat al in git.
+22
View File
@@ -0,0 +1,22 @@
# Synology DSM — native packages
Geïnstalleerd als **Synology Package** (niet Docker). Geen compose; backup via DSM of Hyper Backup.
| Package | Doel | Config-locatie (typisch) |
|---------|------|---------------------------|
| Docker | Container engine | DSM Package Center |
| UniFi SDN Controller | Oud/alternatief UniFi | `@apphome/UniFiSDNController` |
| Jellyfin | Media server | `@apphome/jellyfin` |
| Plex Media Server | Media | `@apphome/PlexMediaServer` |
| Tailscale | VPN mesh | `@appdata/Tailscale` |
| Surveillance Station | Camera's | `@apphome/SurveillanceStation` |
| Synology Photos | Foto's | `@apphome/SynologyPhotos` |
| Synology Drive | Bestanden sync | `@apphome/SynologyDrive` |
| Hyper Backup | Backups | `@apphome/HyperBackup` |
| Active Backup | PC backup | `@apphome/ActiveBackup` |
| Web Station | Web hosting | `@apphome/WebStation` |
| MariaDB | Database | `@apphome/MariaDB10` |
| VPN Center | VPN server | `@apphome/VPNCenter` |
| Virtualization | VMM | `@apphome/Virtualization` |
> Paden onder `/volume1/@apphome/` — alleen leesbaar met root. Documenteer instellingen handmatig of via DSM export.
+7
View File
@@ -0,0 +1,7 @@
PUID=1026
PGID=100
TZ=Europe/Brussels
MONGO_USER=unifi
MONGO_PASS=WaQTUw2t
UNIFI_DATA_DIR=/volume1/docker/unifi
UNIFI_MONGO_DIR=/volume1/docker/Configs/Unifi/data/db
+13
View File
@@ -0,0 +1,13 @@
# UniFi Network
| | |
|---|---|
| **Controller** | https://192.168.1.24 (primair) |
| **NAS data** | `/volume1/docker/unifi`, `Configs/Unifi` |
| **Login** | zie `.env` / homelab-command `UNIFI_*` |
```bash
docker compose up -d
```
Config: `config/system.properties`
+44
View File
@@ -0,0 +1,44 @@
## system.properties
#
# each unifi instance requires a set of ports:
#
## device inform
# unifi.http.port=8080
## controller UI / API
# unifi.https.port=8443
## portal redirect port for HTTP
# portal.http.port=8880
## portal redirect port for HTTPs
# portal.https.port=8843
## local-bound port for DB server
# unifi.db.port=27117
## UDP port used for STUN
# unifi.stun.port=3478
#
## the IP devices should be talking to for inform
# system_ip=a.b.c.d
## disable mongodb journaling
# unifi.db.nojournal=false
## extra mongod args
# unifi.db.extraargs
#
## HTTPS options
# unifi.https.ciphers=TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA
# unifi.https.sslEnabledProtocols=TLSv1,SSLv2Hello
# unifi.https.hsts=false
# unifi.https.hsts.max_age=31536000
# unifi.https.hsts.preload=false
# unifi.https.hsts.subdomain=false
#
# Ports reserved for device redirector. There is no need to open
# firewall for these ports on controller, however do NOT set
# controller to use these ports.
#
# portal.redirector.port=8881
# portal.redirector.port.wired=8882
#
# Port used for throughput measurement.
# unifi.throughput.port=6789
#
#Tue Feb 25 23:34:10 UTC 2025
uuid=a274df25-fe33-4c8a-ad32-8232a8ecdab4
+36
View File
@@ -0,0 +1,36 @@
# UniFi Network Application
# Data: /volume1/docker/unifi
# Live controller ook op https://192.168.1.24 (apart apparaat/VM)
services:
unifi:
image: lscr.io/linuxserver/unifi-network-application:latest
container_name: unifi
restart: unless-stopped
network_mode: host
environment:
PUID: ${PUID:-1026}
PGID: ${PGID:-100}
TZ: ${TZ:-Europe/Brussels}
MONGO_HOST: unifi-db
MONGO_PORT: 27017
MONGO_USER: ${MONGO_USER:-unifi}
MONGO_PASS: ${MONGO_PASS:-WaQTUw2t}
MONGO_DBNAME: ${MONGO_DBNAME:-unifi}
MONGO_AUTHSOURCE: admin
MEM_LIMIT: 1024
MEM_STARTUP: 1024
volumes:
- ${UNIFI_DATA_DIR:-/volume1/docker/unifi}:/config
depends_on:
- unifi-db
unifi-db:
image: docker.io/mongo:4.4
container_name: unifi-db
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER:-unifi}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASS:-WaQTUw2t}
volumes:
- ${UNIFI_MONGO_DIR:-/volume1/docker/Configs/Unifi/data/db}:/data/db
+5
View File
@@ -0,0 +1,5 @@
# Uptime Kuma
Monitoring / statuspagina. Data: `/volume1/docker/Configs/uptime-kuma`
Poort: **3001** (let op: conflict met AdGuard web UI op 3001 — pas poort aan in `.env`).
+11
View File
@@ -0,0 +1,11 @@
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "${UPTIME_KUMA_PORT:-3001}:3001"
volumes:
- ${UPTIME_KUMA_DATA:-/volume1/docker/Configs/uptime-kuma}:/app/data
environment:
TZ: ${TZ:-Europe/Brussels}
+5
View File
@@ -0,0 +1,5 @@
# Whoogle
Privacy-vriendelijke Google-proxy. Config-map op NAS was leeg.
Poort: **5000**
View File
+12
View File
@@ -0,0 +1,12 @@
services:
whoogle:
image: benbusby/whoogle-search:latest
container_name: whoogle
restart: unless-stopped
ports:
- "${WHOOGLE_PORT:-5000}:5000"
environment:
TZ: ${TZ:-Europe/Brussels}
WHOOGLE_CONFIG_DIR: /config
volumes:
- ./config:/config