refactor: remove all Synology-specific labels, comments, and references

This commit is contained in:
Brian Pooe 2026-03-31 19:36:24 +02:00
parent c8341768eb
commit e24006dd49
8 changed files with 54 additions and 38 deletions

View file

@ -1,4 +1,4 @@
# Synology Docker Services
# Homelab Docker Services
Docker Compose templates for home lab services, featuring security best practices, resource management, and comprehensive health monitoring.
@ -175,13 +175,12 @@ docker-compose -f docker-compose.<stack>.yml up -d
## 📋 Prerequisites
### Required
- Synology NAS with DSM 7.x
- Docker & Docker Compose installed via Package Center
- Linux host with Docker & Docker Compose installed
- SSH access enabled
- Basic knowledge of Docker and command line
### Recommended
- Static IP for your NAS
- Static IP for your host
- Domain name for reverse proxy (optional)
- VPN subscription for Gluetun (AirVPN, Mullvad, etc.)
@ -249,7 +248,6 @@ PGADMIN_PASSWORD=strong_password
**Get your PUID/PGID:**
```bash
ssh admin@synology-nas
id $USER
```
@ -374,7 +372,7 @@ Total resources if all services running:
| Resource | Reserved | Limit | Notes |
|----------|----------|-------|-------|
| Memory | 4.00 GB | 15.00 GB | CPU limits are intentionally omitted for DSM compatibility |
| Memory | 4.00 GB | 15.00 GB | CPU limits are intentionally omitted |
**Per-service limits configured to prevent resource exhaustion**
@ -517,7 +515,7 @@ If upgrading from previous configurations:
- ✅ Regularly update containers
### Performance
- ✅ Adjust resource limits based on your NAS specs
- ✅ Adjust resource limits based on your host specs
- ✅ Monitor with `docker stats`
- ✅ Use SSD for Docker volumes if possible
- ✅ Enable hardware transcoding in Emby/Jellyfin
@ -564,4 +562,4 @@ This project is provided as-is for personal and educational use.
**Last Updated:** 2026-02-14
**Version:** 2.1
**Compatibility:** Synology DSM 7.x, Docker Compose 1.27.0+
**Compatibility:** Docker Compose 1.27.0+

View file

@ -1,15 +1,8 @@
# Synology DS920+ Compatible Configuration
# Note: CPU limits removed due to kernel lacking CPU CFS scheduler support
# Memory limits are supported and configured below
services:
postgres:
image: postgres:17-alpine
container_name: postgres
restart: unless-stopped
labels:
- "com.synology.stack=database"
- "com.synology.service=postgres"
environment:
TZ: {{TZ}}
POSTGRES_USER: {{POSTGRES_USER}}
@ -48,9 +41,6 @@ services:
image: dpage/pgadmin4:9.2.0
container_name: pgadmin
restart: unless-stopped
labels:
- "com.synology.stack=database"
- "com.synology.service=pgadmin"
environment:
TZ: {{TZ}}
PGADMIN_DEFAULT_EMAIL: {{PGADMIN_EMAIL}}
@ -92,5 +82,3 @@ networks:
postgres_network:
driver: bridge
name: postgres_network
labels:
- "com.synology.network=database"

View file

@ -3,9 +3,6 @@ services:
image: technitium/dns-server:latest
container_name: technitium-dns
restart: unless-stopped
labels:
- "com.synology.stack=network"
- "com.synology.service=technitium-dns"
environment:
TZ: "{{TZ}}"
# Domain shown in Technitium UI defaults

View file

@ -1,15 +1,8 @@
# Synology DS920+ Compatible Configuration
# Note: CPU limits removed due to kernel lacking CPU CFS scheduler support
# Memory limits are supported and configured below
services:
vault:
image: hashicorp/vault:1.19.2
container_name: vault
restart: unless-stopped
labels:
- "com.synology.stack=security"
- "com.synology.service=secrets-manager"
ports:
- "8200:8200"
- "8201:8201"
@ -50,5 +43,4 @@ networks:
vault_network:
driver: bridge
name: vault_network
labels:
- "com.synology.network=security"

View file

@ -136,7 +136,7 @@ Symptoms:
Cause:
- `network_mode: service:gluetun` can fail during single-service recreate/update flows on some Synology setups.
- `network_mode: service:gluetun` can fail during single-service recreate/update flows on some Docker setups.
Fix:

View file

@ -15,7 +15,7 @@ This guide focuses on internal networking and 10GbE LAN performance.
| Netgate 1100 / pfSense | UDM Pro | Replace |
| UB-USW-LITE-8-POE (core role) | USW-Aggregation (core role) | Replace core role |
| UB-USW-LITE-8-POE (removed) | UB-USW-LITE-8-POE (access/PoE role) | Keep + repurpose |
| Synology DS920+ (primary NAS) | UGREEN DXP8800 Plus (primary NAS) | Replace primary role |
| DS920+ (primary NAS) | UGREEN DXP8800 Plus (primary NAS) | Replace primary role |
| DS920+ (optional) | DS920+ (backup/secondary role) | Keep optional |
## 3. Target Topology (MermaidJS)

View file

@ -37,7 +37,7 @@ Rendered exports:
| Family and Media have explicit reverse-proxy access rule | TCP pass rules from Family/Media to reverse proxy host (`CADDY_HOST`) | `config-pfSense.home.arpa-20260321225944.xml` (`<filter>`) | High |
| IoT and Guest are isolated from other private networks except explicit rules | `Block access to other networks` (RFC1918) + own-subnet + DNS + internet pass ordering | `config-pfSense.home.arpa-20260321225944.xml` (`<filter>`) | High |
| Core infrastructure static mappings on LAN exist | USW Lite 8, Mac mini, U6 LR, and TL-SG1016DE have static mappings on LAN | `config-pfSense.home.arpa-20260321225944.xml` (`<dhcpd><lan>`) | High |
| Caddy and DS920+ are statically mapped on Office VLAN | Reverse proxy (`10.10.0.5`) and DS920+ (`10.10.0.24`) mapped in Office subnet example | `config-pfSense.home.arpa-20260321225944.xml` (`<dhcpd><opt2>`) | High |
| Caddy and NAS are statically mapped on Office VLAN | Reverse proxy (`10.10.0.5`) and NAS (`10.10.0.24`) mapped in Office subnet example | `config-pfSense.home.arpa-20260321225944.xml` (`<dhcpd><opt2>`) | High |
| Published reverse-proxy naming uses safe domain examples | `home.example.com` in templates | `.env.sample`, `caddy/Caddyfile_template` | High |
## 2. Device Inventory
@ -52,7 +52,7 @@ Rendered exports:
| Raspberry Pi 4 Model B (2GB) | Technitium DNS/ad-block host | Static mapping `dns01` on AdBlock VLAN as `10.60.0.5` example |
| Mac mini | Endpoint on core switch/LAN | Static mapping on LAN as `10.1.0.6` example |
| Intel NUC | Homelab endpoint | User-confirmed static IP on Office VLAN (public-safe value not published here) |
| Synology DS920+ | NAS/homelab service host | Static mapping in Office VLAN as `10.10.0.24` example |
| DS920+ NAS | NAS/homelab service host | Static mapping in Office VLAN as `10.10.0.24` example |
| Office reverse proxy host (Caddy) | Controlled cross-VLAN ingress target | Alias `CADDY_HOST`; static mapping in Office VLAN as `10.10.0.5` example |
| Family/Guest/IoT wireless clients | Client groups on AP | Family and other client DHCP scopes verified |
| Media clients | TV/Apple TV/soundbar class clients | Media VLAN DHCP scope and static TV entry verified |
@ -71,7 +71,7 @@ Physical path (left-to-right):
- Raspberry Pi 4 (Technitium DNS)
6. Downstream endpoints:
- Media clients via TL-SG108
- Office/homelab endpoints via TL-SG1016DE (including DS920+, other infra)
- Office/homelab endpoints via TL-SG1016DE (including NAS, other infra)
- Wireless Family/Guest/IoT clients via U6 LR
Physical/logical clarification:
@ -84,7 +84,7 @@ Netgate internal switch implementation details are intentionally abstracted in t
| VLAN | Purpose | CIDR (public-safe) | Typical residents |
|---|---|---|---|
| LAN | Core local management/client segment | `10.1.0.0/24` | Switch/AP management, Mac mini, baseline LAN clients |
| Office | Admin/workstation + homelab services | `10.10.0.0/24` | Caddy reverse proxy, DS920+, Proxmox-related services |
| Office | Admin/workstation + homelab services | `10.10.0.0/24` | Caddy reverse proxy, NAS, Proxmox-related services |
| Family | Family user segment | `10.20.0.0/24` | Family wireless devices |
| IoT | IoT isolation segment | `10.30.0.0/24` | IoT clients |
| Media | Media device segment | `10.40.0.0/24` | TV/media devices |

41
setup-homeassistant.sh Executable file
View file

@ -0,0 +1,41 @@
#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
APPDATA="$(cd "$SCRIPT_DIR/.." && pwd)/appdata"
STACK_DIR="$SCRIPT_DIR/docker-compose-files/homeassistant"
ENV_FILE="$SCRIPT_DIR/.env"
echo "==> Creating appdata directories at $APPDATA"
sudo mkdir -p \
"$APPDATA/homeassistant" \
"$APPDATA/mqtt/config" \
"$APPDATA/mqtt/data" \
"$APPDATA/mqtt/log" \
"$APPDATA/zigbee2mqtt"
echo "==> Copying mosquitto.conf"
sudo cp "$STACK_DIR/config/mosquitto.conf" "$APPDATA/mqtt/config/mosquitto.conf"
echo "==> Substituting zigbee2mqtt configuration"
sudo "$SCRIPT_DIR/substitute_env.sh" \
"$STACK_DIR/config/zigbee2mqtt_configuration.yaml" \
"$APPDATA/zigbee2mqtt/configuration.yaml" \
"$ENV_FILE"
echo "==> Substituting Home Assistant configuration"
sudo "$SCRIPT_DIR/substitute_env.sh" \
"$STACK_DIR/config/ha_configuration.yaml" \
"$APPDATA/homeassistant/configuration.yaml" \
"$ENV_FILE"
echo "==> Generating docker-compose.homeassistant.yml"
"$SCRIPT_DIR/substitute_env.sh" \
"$STACK_DIR/template.yaml" \
"$SCRIPT_DIR/docker-compose.homeassistant.yml" \
"$ENV_FILE"
echo ""
echo "Done. To deploy:"
echo " docker compose -f docker-compose.homeassistant.yml up -d"