Update container IP assignments - add compose file locations and persistent config
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

- All dockerproxy containers now have static IPs via Unraid templates
- NetBox, NetDisco, Gitea, Woodpecker, Pangolin use docker-compose with static IPs
- br0 macvlan containers have static IPs via templates
- Documented compose file locations for maintenance
- Removed housekeeping container (not functional)
This commit is contained in:
2026-01-20 23:15:05 +02:00
parent b8cf34aedf
commit 80073c61d3

View File

@@ -3,6 +3,7 @@
**Last Updated:** 2026-01-20 **Last Updated:** 2026-01-20
This document lists all static IP assignments for Docker containers on Unraid. This document lists all static IP assignments for Docker containers on Unraid.
Static IPs are now configured in docker-compose files and Unraid templates for persistence.
--- ---
@@ -12,58 +13,58 @@ Static IP range: 172.18.0.2 - 172.18.0.99
### Core Infrastructure (172.18.0.2 - 172.18.0.10) ### Core Infrastructure (172.18.0.2 - 172.18.0.10)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| dockersocket | 172.18.0.2 | Docker socket proxy | | dockersocket | 172.18.0.2 | Docker socket proxy | Template |
| traefik | 172.18.0.3 | Reverse proxy | | traefik | 172.18.0.3 | Reverse proxy | Template |
| homarr | 172.18.0.4 | Dashboard | | homarr | 172.18.0.4 | Dashboard | Template |
### Security (172.18.0.11 - 172.18.0.15) ### Security (172.18.0.11 - 172.18.0.15)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| authentik | 172.18.0.11 | Identity provider | | authentik | 172.18.0.11 | Identity provider | Template |
| authentik-worker | 172.18.0.12 | Authentik worker | | authentik-worker | 172.18.0.12 | Authentik worker | Template |
| postgresql17 | 172.18.0.13 | PostgreSQL database | | postgresql17 | 172.18.0.13 | PostgreSQL database | Template |
| Redis | 172.18.0.14 | Redis cache | | Redis | 172.18.0.14 | Redis cache | Template |
| vaultwarden | 172.18.0.15 | Password manager | | vaultwarden | 172.18.0.15 | Password manager | Template |
### Productivity (172.18.0.16 - 172.18.0.30) ### Productivity (172.18.0.16 - 172.18.0.30)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| actual-budget | 172.18.0.16 | Budget tracking | | actual-budget | 172.18.0.16 | Budget tracking | Template |
| n8n | 172.18.0.17 | Workflow automation | | n8n | 172.18.0.17 | Workflow automation | Template |
| Uptime-Kuma-API | 172.18.0.18 | Uptime API | | Uptime-Kuma-API | 172.18.0.18 | Uptime API | Template |
| AutoKuma | 172.18.0.19 | Auto Kuma config | | AutoKuma | 172.18.0.19 | Auto Kuma config | Template |
| UptimeKuma | 172.18.0.20 | Uptime monitoring | | UptimeKuma | 172.18.0.20 | Uptime monitoring | Template |
| speedtest-tracker | 172.18.0.21 | Speed test tracking | | speedtest-tracker | 172.18.0.21 | Speed test tracking | Template |
| DoH-Server | 172.18.0.22 | DNS over HTTPS | | DoH-Server | 172.18.0.22 | DNS over HTTPS | Template |
| Libation | 172.18.0.23 | Audiobook manager | | Libation | 172.18.0.23 | Audiobook manager | Template |
| Nextcloud | 172.18.0.24 | Cloud storage | | Nextcloud | 172.18.0.24 | Cloud storage | Template |
| karakeep | 172.18.0.25 | Bookmark manager | | karakeep | 172.18.0.25 | Bookmark manager | Template |
| transmission | 172.18.0.26 | Torrent client | | transmission | 172.18.0.26 | Torrent client | Template |
### DevOps (172.18.0.31 - 172.18.0.40) ### DevOps (172.18.0.31 - 172.18.0.40)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| gitea | 172.18.0.31 | Git server | | gitea | 172.18.0.31 | Git server | Compose |
| woodpecker-server | 172.18.0.32 | CI/CD server | | woodpecker-server | 172.18.0.32 | CI/CD server | Compose |
| woodpecker-agent | 172.18.0.33 | CI/CD agent | | woodpecker-agent | 172.18.0.33 | CI/CD agent | Compose |
### NetDisco (172.18.0.41 - 172.18.0.50) ### NetDisco (172.18.0.41 - 172.18.0.50)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| netdisco-web | 172.18.0.41 | NetDisco web UI | | netdisco-web | 172.18.0.41 | NetDisco web UI | Compose |
| netdisco-backend | 172.18.0.42 | NetDisco SNMP poller | | netdisco-backend | 172.18.0.42 | NetDisco SNMP poller | Compose |
### Fossorial/Pangolin (172.18.0.51 - 172.18.0.60) ### Fossorial/Pangolin (172.18.0.51 - 172.18.0.60)
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| pangolin | 172.18.0.51 | Pangolin tunnel | | pangolin | 172.18.0.51 | Pangolin tunnel | Compose |
--- ---
@@ -71,14 +72,13 @@ Static IP range: 172.18.0.2 - 172.18.0.99
Static IP range: 172.24.0.2 - 172.24.0.20 Static IP range: 172.24.0.2 - 172.24.0.20
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| netbox-redis | 172.24.0.2 | NetBox Redis | | netbox-redis | 172.24.0.2 | NetBox Redis | Compose |
| netbox-redis-cache | 172.24.0.3 | NetBox Redis cache | | netbox-redis-cache | 172.24.0.3 | NetBox Redis cache | Compose |
| netbox-postgres | 172.24.0.4 | NetBox PostgreSQL | | netbox-postgres | 172.24.0.4 | NetBox PostgreSQL | Compose |
| netbox | 172.24.0.5 | NetBox web UI | | netbox | 172.24.0.5 | NetBox web UI | Compose |
| netbox-worker | 172.24.0.6 | NetBox worker | | netbox-worker | 172.24.0.6 | NetBox worker | Compose |
| netbox-housekeeping | 172.24.0.7 | NetBox housekeeping |
--- ---
@@ -86,11 +86,11 @@ Static IP range: 172.24.0.2 - 172.24.0.20
These containers have direct LAN access via macvlan. These containers have direct LAN access via macvlan.
| Container | Static IP | Purpose | | Container | Static IP | Purpose | Config |
|-----------|-----------|---------| |-----------|-----------|---------|--------|
| binhex-official-pihole | 192.168.31.4 | DNS sinkhole | | binhex-official-pihole | 192.168.31.4 | DNS sinkhole | Template |
| unbound | 192.168.31.5 | Recursive DNS | | unbound | 192.168.31.5 | Recursive DNS | Template |
| TimeMachine | 192.168.31.12 | Time Machine backup | | TimeMachine | 192.168.31.12 | Time Machine backup | Template |
--- ---
@@ -123,24 +123,41 @@ These containers share the host network stack.
--- ---
## IP Assignment Command ## Docker Compose Files
To assign a static IP to a container: Compose-managed stacks with persistent static IPs:
```bash | Stack | Location | Containers |
# Disconnect from network |-------|----------|------------|
docker network disconnect <network> <container> | NetBox | `/mnt/user/appdata/netbox/docker-compose.yml` | netbox, netbox-worker, netbox-postgres, netbox-redis, netbox-redis-cache |
| NetDisco | `/mnt/user/appdata/netdisco/docker-compose.yml` | netdisco-web, netdisco-backend |
| Gitea | `/mnt/user/appdata/gitea/docker-compose.yml` | gitea |
| Woodpecker | `/mnt/user/appdata/woodpecker/docker-compose.yml` | woodpecker-server, woodpecker-agent |
| Pangolin | `/mnt/user/appdata/pangolin/docker-compose.yml` | pangolin |
# Reconnect with static IP ---
docker network connect --ip <ip> <network> <container>
```
**Note:** Static IPs only work on user-defined networks (not the default `bridge`). ## Unraid Docker Templates
Templates are stored in `/boot/config/plugins/dockerMan/templates-user/`.
Each template includes `<MyIP>` and `<ExtraParams>--ip=X.X.X.X</ExtraParams>` for static IP assignment.
--- ---
## Maintenance ## Maintenance
When recreating containers, ensure static IPs are preserved by: ### Recreate Compose Containers
1. Using `--ip` flag in `docker run` ```bash
2. Or running the disconnect/connect commands after container creation cd /mnt/user/appdata/<stack>
docker compose down
docker compose up -d
```
### Update Template Container
Use Unraid Docker UI to update/recreate - static IP is preserved in template.
### Verify IPs
```bash
# Check all IPs on a network
docker network inspect <network> --format '{{range .Containers}}{{.Name}}: {{.IPv4Address}}{{"\n"}}{{end}}'
```