feat: add Redis DB tracking and resolve DB conflicts

- Add Redis DB column to All Services table in CONTAINERS.md
- Move Nextcloud from DB 3 to DB 7 to resolve conflict with Scheduler
- Split Tatlock Redis usage: DB 1 (memory), DB 6 (benchmarks)
- Add missing services to table: Wiki.js, Tatlock, Library Desk

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-14 14:46:21 +01:00
co-authored by Claude Opus 4.5
parent 5d0c0fbad9
commit 64ffeda928
3 changed files with 36 additions and 32 deletions
+28 -25
View File
@@ -1,35 +1,38 @@
# Container Reference - tower-of-joy Infrastructure # Container Reference - tower-of-joy Infrastructure
> **Last Updated:** 2025-12-14 > **Last Updated:** 2025-12-14
> **Total Services:** 21 containers across 16 stacks > **Total Services:** 24 containers across 19 stacks
> **System:** Intel i7-6700, RTX 2080 Ti (11GB VRAM), 16GB RAM, Zorin OS 16.3 > **System:** Intel i7-6700, RTX 2080 Ti (11GB VRAM), 16GB RAM, Zorin OS 16.3
--- ---
## 🚀 Quick Reference - All Services ## 🚀 Quick Reference - All Services
| Service | Port(s) | URL | External Access | GPU | Status | | Service | Port(s) | URL | External Access | GPU | Redis DB | Status |
|---------|---------|-----|-----------------|-----|--------| |---------|---------|-----|-----------------|-----|----------|--------|
| **Portainer** | 8080, 8443 | http://192.168.86.149:8080 | LAN | No | ✅ Running | | **Portainer** | 8080, 8443 | http://192.168.86.149:8080 | LAN | No | - | ✅ Running |
| **Nginx Proxy Manager** | 81 (admin), 80, 443 | http://192.168.86.149:81 | Internet | No | ✅ Running | | **Nginx Proxy Manager** | 81 (admin), 80, 443 | http://192.168.86.149:81 | Internet | No | - | ✅ Running |
| **Authentik** | 9000, 9445 (outpost) | https://auth.schweitz.net | Internet (SSO) | No | ⚠️ Partial | | **Authentik** | 9000, 9445 (outpost) | https://auth.schweitz.net | Internet (SSO) | No | 0 | ⚠️ Partial |
| **PostgreSQL Shared** | 5432 | N/A (internal) | No | No | ✅ Running | | **PostgreSQL Shared** | 5432 | N/A (internal) | No | No | - | ✅ Running |
| **Redis Shared** | 6379 | N/A (internal) | No | No | ✅ Running | | **Redis Shared** | 6379 | N/A (internal) | No | No | - | ✅ Running |
| **Ollama** | 11434 | http://192.168.86.149:11434 | LAN | Yes (RTX 2080 Ti) | ✅ Running | | **Ollama** | 11434 | http://192.168.86.149:11434 | LAN | Yes (RTX 2080 Ti) | - | ✅ Running |
| **Headscale** | 8085, 9090 | http://192.168.86.149:8085 | LAN | No | ✅ Running | | **Headscale** | 8085, 9090 | http://192.168.86.149:8085 | LAN | No | - | ✅ Running |
| **Netdata** | 19999 | http://192.168.86.149:19999 | LAN | No | ✅ Running | | **Netdata** | 19999 | http://192.168.86.149:19999 | LAN | No | - | ✅ Running |
| **Organizr** | 9999 | https://home.schweitz.net | Internet (SSO) | No | ✅ Running | | **Organizr** | 9999 | https://home.schweitz.net | Internet (SSO) | No | - | ✅ Running |
| **Watchtower** | None | N/A (background) | No | No | ✅ Running | | **Watchtower** | None | N/A (background) | No | No | - | ✅ Running |
| **Open WebUI** | 82 | http://192.168.86.149:82 | LAN | No | ✅ Running | | **Open WebUI** | 82 | http://192.168.86.149:82 | LAN | No | - | ✅ Running |
| **Core API** | 8083 | http://192.168.86.149:8083 | LAN | No | ✅ Running (external) | | **Core API** | 8083 | http://192.168.86.149:8083 | LAN | No | - | ✅ Running (external) |
| **Scheduler** | 8090 | http://192.168.86.149:8090 | LAN | No | ✅ Running (external) | | **Scheduler** | 8090 | http://192.168.86.149:8090 | LAN | No | 3 | ✅ Running (external) |
| **SearXNG** | 8087 | http://192.168.86.149:8087 | LAN | No | ✅ Running | | **SearXNG** | 8087 | http://192.168.86.149:8087 | LAN | No | 5 | ✅ Running |
| **Jellyfin** | 8096, 8920, 7359, 1900 | https://media.schweitz.net | Internet | Yes (RTX 2080 Ti) | ✅ Running | | **Jellyfin** | 8096, 8920, 7359, 1900 | https://media.schweitz.net | Internet | Yes (RTX 2080 Ti) | - | ✅ Running |
| **Nextcloud** | 8082 | https://cloud.schweitz.net | Internet | No | ⚠️ Stopped | | **Nextcloud** | 8082 | https://cloud.schweitz.net | Internet | No | 7 | ⚠️ Stopped |
| **Samba** | 139, 445 | \\\\192.168.86.149 | LAN | No | ✅ Running | | **Samba** | 139, 445 | \\\\192.168.86.149 | LAN | No | - | ✅ Running |
| **Gitea** | 3002, 2222 (SSH) | https://git.schweitz.net | Internet | No | ✅ Running | | **Gitea** | 3002, 2222 (SSH) | https://git.schweitz.net | Internet | No | - | ✅ Running |
| **Qdrant** | 6333, 6334 | http://192.168.86.149:6333 | LAN | No | ✅ Running | | **Qdrant** | 6333, 6334 | http://192.168.86.149:6333 | LAN | No | - | ✅ Running |
| **AMP (Game Server)** | Varies | http://192.168.86.149:8081 | LAN | No | ✅ Running | | **Wiki.js** | 3000 | http://192.168.86.149:3000 | LAN | No | 2 | ✅ Running |
| **Tatlock** | 8000 | http://192.168.86.149:8000 | LAN | No | 1, 6 | ✅ Running (external) |
| **Library Desk** | 8089 | http://192.168.86.149:8089 | LAN | No | 4 | ✅ Running (external) |
| **AMP (Game Server)** | Varies | http://192.168.86.149:8081 | LAN | No | - | ✅ Running |
### External Domains (SSL via Let's Encrypt) ### External Domains (SSL via Let's Encrypt)
- **home.schweitz.net** → Organizr (Protected by Authentik SSO) - **home.schweitz.net** → Organizr (Protected by Authentik SSO)
@@ -153,7 +156,7 @@ Redis Shared is a centralized Redis 7 key-value store providing cache, session s
| **Resource Limits** | None | | **Resource Limits** | None |
| **GPU Required** | No | | **GPU Required** | No |
| **Dependencies** | docker-dataplane network | | **Dependencies** | docker-dataplane network |
| **Database Allocation** | DB 0: Authentik, DB 1-15: Available for future services | | **Database Allocation** | DB 0: Authentik, DB 1: Tatlock (memory), DB 2: Wiki.js, DB 3: Scheduler, DB 4: Library Desk, DB 5: SearXNG, DB 6: Tatlock (benchmarks), DB 7: Nextcloud, DB 8-15: Available |
| **Persistence** | AOF (Append-Only File) enabled for durability | | **Persistence** | AOF (Append-Only File) enabled for durability |
| **Health Check** | `redis-cli ping` returns PONG (30s interval) | | **Health Check** | `redis-cli ping` returns PONG (30s interval) |
| **Connection String** | `redis://redis-shared:6379/0` (DB 0), `redis://redis-shared:6379/1` (DB 1), etc. | | **Connection String** | `redis://redis-shared:6379/0` (DB 0), `redis://redis-shared:6379/1` (DB 1), etc. |
@@ -596,4 +599,4 @@ redis-cli -h redis-shared # Redis connection
--- ---
*Last Updated: 2025-12-11* *Last Updated: 2025-12-14*
+5 -5
View File
@@ -17,10 +17,10 @@ services:
- POSTGRES_USER=nextcloud_user - POSTGRES_USER=nextcloud_user
- POSTGRES_PASSWORD=${NEXTCLOUD_DB_PASSWORD} - POSTGRES_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
# Redis configuration (Database 3) # Redis configuration (Database 7)
- REDIS_HOST=redis-shared - REDIS_HOST=redis-shared
- REDIS_HOST_PORT=6379 - REDIS_HOST_PORT=6379
- REDIS_DB_INDEX=3 - REDIS_DB_INDEX=7
# Timezone # Timezone
- TZ=Europe/Amsterdam - TZ=Europe/Amsterdam
@@ -49,7 +49,7 @@ networks:
# 2. Database and user already created in postgres-shared: # 2. Database and user already created in postgres-shared:
# - Database: nextcloud # - Database: nextcloud
# - User: nextcloud_user # - User: nextcloud_user
# - Redis DB: 3 # - Redis DB: 7
# #
# 3. Create .env file with: # 3. Create .env file with:
# NEXTCLOUD_DB_PASSWORD=<password from shared infrastructure setup> # NEXTCLOUD_DB_PASSWORD=<password from shared infrastructure setup>
@@ -81,7 +81,7 @@ networks:
# 5. Configure Redis caching: # 5. Configure Redis caching:
# docker exec -u www-data nextcloud php occ config:system:set redis host --value=redis-shared # docker exec -u www-data nextcloud php occ config:system:set redis host --value=redis-shared
# docker exec -u www-data nextcloud php occ config:system:set redis port --value=6379 # docker exec -u www-data nextcloud php occ config:system:set redis port --value=6379
# docker exec -u www-data nextcloud php occ config:system:set redis dbindex --value=3 # docker exec -u www-data nextcloud php occ config:system:set redis dbindex --value=7
# docker exec -u www-data nextcloud php occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu' # docker exec -u www-data nextcloud php occ config:system:set memcache.local --value='\\OC\\Memcache\\APCu'
# docker exec -u www-data nextcloud php occ config:system:set memcache.distributed --value='\\OC\\Memcache\\Redis' # docker exec -u www-data nextcloud php occ config:system:set memcache.distributed --value='\\OC\\Memcache\\Redis'
# docker exec -u www-data nextcloud php occ config:system:set memcache.locking --value='\\OC\\Memcache\\Redis' # docker exec -u www-data nextcloud php occ config:system:set memcache.locking --value='\\OC\\Memcache\\Redis'
@@ -104,7 +104,7 @@ networks:
# Cache: # Cache:
# - Host: redis-shared (from containers) / localhost (from host) # - Host: redis-shared (from containers) / localhost (from host)
# - Port: 6379 # - Port: 6379
# - Database: 3 # - Database: 7
# #
# Resource Usage: # Resource Usage:
# - Nextcloud: 1GB RAM limit # - Nextcloud: 1GB RAM limit
+3 -2
View File
@@ -27,10 +27,11 @@ services:
# SearXNG (optional, shared service) # SearXNG (optional, shared service)
- SEARXNG_HOST=http://searxng:8080 - SEARXNG_HOST=http://searxng:8080
- SEARXNG_TIMEOUT=30 - SEARXNG_TIMEOUT=30
# Redis (optional, shared service) # Redis (shared service)
- REDIS_HOST=redis-shared - REDIS_HOST=redis-shared
- REDIS_PORT=6379 - REDIS_PORT=6379
- REDIS_DB=6 - REDIS_MEMORY_DB=1
- REDIS_BENCHMARK_DB=6
- REDIS_TIMEOUT=5 - REDIS_TIMEOUT=5
# Features # Features
- ENABLE_BENCHMARKS=true - ENABLE_BENCHMARKS=true