refactor: remove all Synology-specific labels, comments, and references
This commit is contained in:
parent
c8341768eb
commit
e24006dd49
8 changed files with 54 additions and 38 deletions
14
README.md
14
README.md
|
|
@ -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+
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
41
setup-homeassistant.sh
Executable 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"
|
||||
Loading…
Add table
Reference in a new issue