config(npm): reorganize tatlock and webui domain mappings

Fix naming conflict where tatlock.schweitz.net incorrectly pointed to
Open WebUI. Now correctly maps:
- tatlock.schweitz.net → Tatlock API (port 8000) with Authentik SSO
- webui.schweitz.net → Open WebUI (port 82) with Authentik SSO
- Corresponding .schweitz.internal domains for programmatic access

🤖 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-31 00:03:55 +01:00
co-authored by Claude Opus 4.5
parent facdd6a2ec
commit f3d29089d6
2 changed files with 20 additions and 14 deletions
+16 -11
View File
@@ -1,6 +1,6 @@
# Container Reference - tower-of-joy Infrastructure # Container Reference - tower-of-joy Infrastructure
> **Last Updated:** 2025-12-25 > **Last Updated:** 2025-12-30
> **Total Services:** 27 containers across 21 stacks > **Total Services:** 27 containers across 21 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
@@ -20,7 +20,7 @@
| **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 | https://webui.schweitz.net | Internet (SSO) | 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 | 3 | ✅ 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 | 5 | ✅ Running | | **SearXNG** | 8087 | http://192.168.86.149:8087 | LAN | No | 5 | ✅ Running |
@@ -30,7 +30,7 @@
| **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 |
| **Wiki.js** | 3000 | http://192.168.86.149:3000 | LAN | No | 2 | ✅ 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) | | **Tatlock** | 8000 | https://tatlock.schweitz.net | Internet (SSO) | No | 1, 6 | ✅ Running (external) |
| **Library Desk** | 8089 | http://192.168.86.149:8089 | LAN | No | 4 | ✅ 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 | | **AMP (Game Server)** | Varies | http://192.168.86.149:8081 | LAN | No | - | ✅ Running |
| **Home Assistant** | 8123 | https://housekeeping.schweitz.net | Internet | No | - | ✅ Running | | **Home Assistant** | 8123 | https://housekeeping.schweitz.net | Internet | No | - | ✅ Running |
@@ -50,7 +50,8 @@
- **housekeeping.schweitz.net** → Home Assistant - **housekeeping.schweitz.net** → Home Assistant
- **documents.schweitz.net** → Paperless-ngx - **documents.schweitz.net** → Paperless-ngx
- **library.schweitz.net** → Wiki.js - **library.schweitz.net** → Wiki.js
- **tatlock.schweitz.net** → Open WebUI - **tatlock.schweitz.net** → Tatlock API (Protected by Authentik SSO)
- **webui.schweitz.net** → Open WebUI (Protected by Authentik SSO)
### Internal Domains (HTTP, No Auth) ### Internal Domains (HTTP, No Auth)
@@ -68,7 +69,8 @@ Internal domains provide LAN-accessible URLs without SSL or Authentik, ideal for
| documents.schweitz.internal | 192.168.86.149 | 8091 | | documents.schweitz.internal | 192.168.86.149 | 8091 |
| git.schweitz.internal | localhost | 3002 | | git.schweitz.internal | localhost | 3002 |
| library.schweitz.internal | localhost | 8088 | | library.schweitz.internal | localhost | 8088 |
| tatlock.schweitz.internal | localhost | 82 | | tatlock.schweitz.internal | localhost | 8000 |
| webui.schweitz.internal | localhost | 82 |
| dns.schweitz.internal | localhost | 3053 | | dns.schweitz.internal | localhost | 3053 |
**DNS Resolution:** Via `/etc/hosts` on tower-of-joy (192.168.86.149) **DNS Resolution:** Via `/etc/hosts` on tower-of-joy (192.168.86.149)
@@ -150,8 +152,8 @@ PostgreSQL Shared is a centralized PostgreSQL 17 database server providing isola
| **Resource Limits** | None | | **Resource Limits** | None |
| **GPU Required** | No | | **GPU Required** | No |
| **Dependencies** | docker-dataplane network | | **Dependencies** | docker-dataplane network |
| **Databases** | `authentik` (Authentik SSO), `gitea` (Git hosting), `organizr` (Organizr dashboard), `paperless` (Document management), `postgres` (default/admin) | | **Databases** | `authentik` (Authentik SSO), `gitea` (Git hosting), `organizr` (Organizr dashboard), `paperless` (Document management), `system_settings` (Central Tatlock settings), `postgres` (default/admin) |
| **Database Users** | `authentik_user`, `gitea_user`, `organizr_user`, `paperless_user`, `postgres` (superuser) | | **Database Users** | `authentik_user`, `gitea_user`, `organizr_user`, `paperless_user`, `settings` (system_settings RW), `postgres` (superuser) |
| **Health Check** | `pg_isready -U postgres` (30s interval) | | **Health Check** | `pg_isready -U postgres` (30s interval) |
| **Backup Strategy** | `/backups` volume for pg_dump exports | | **Backup Strategy** | `/backups` volume for pg_dump exports |
@@ -406,8 +408,10 @@ Open WebUI is a feature-rich, self-hosted web interface for interacting with lar
|----------|-------| |----------|-------|
| **Image** | `ghcr.io/open-webui/open-webui:main` | | **Image** | `ghcr.io/open-webui/open-webui:main` |
| **Container Name** | `open-webui` | | **Container Name** | `open-webui` |
| **Access URL** | http://192.168.86.149:82 | | **Access URL (LAN)** | http://192.168.86.149:82 |
| **External Access** | LAN only (not yet proxied) | | **Access URL (Public)** | https://webui.schweitz.net |
| **Internal Domain** | http://webui.schweitz.internal |
| **External Access** | Yes (via NPM reverse proxy with SSL + Authentik SSO) |
| **Port Mapping** | 82:8080 (HTTP) | | **Port Mapping** | 82:8080 (HTTP) |
| **Network Mode** | Bridge (custom network: ai-network) | | **Network Mode** | Bridge (custom network: ai-network) |
| **Restart Policy** | `unless-stopped` | | **Restart Policy** | `unless-stopped` |
@@ -647,7 +651,8 @@ Gitea is a lightweight, self-hosted Git service providing repository hosting, is
| **Headscale** | http://192.168.86.149:8085 | No | VPN control server | | **Headscale** | http://192.168.86.149:8085 | No | VPN control server |
| **Netdata** | http://192.168.86.149:19999 | No | System metrics | | **Netdata** | http://192.168.86.149:19999 | No | System metrics |
| **Organizr** | https://home.schweitz.net | Yes | Unified dashboard | | **Organizr** | https://home.schweitz.net | Yes | Unified dashboard |
| **Open WebUI** | http://192.168.86.149:82 | No | LLM chat interface | | **Open WebUI** | https://webui.schweitz.net | Yes (SSO) | LLM chat interface |
| **Tatlock** | https://tatlock.schweitz.net | Yes (SSO) | AI orchestration API |
| **Core API** | http://192.168.86.149:8083 | No | API functions & infrastructure mgmt | | **Core API** | http://192.168.86.149:8083 | No | API functions & infrastructure mgmt |
| **Jellyfin** | https://media.schweitz.net | Yes | Media streaming | | **Jellyfin** | https://media.schweitz.net | Yes | Media streaming |
| **Nextcloud** | https://cloud.schweitz.net | Yes | Cloud storage & sync | | **Nextcloud** | https://cloud.schweitz.net | Yes | Cloud storage & sync |
@@ -738,4 +743,4 @@ redis-cli -h redis-shared # Redis connection
--- ---
*Last Updated: 2025-12-25* *Last Updated: 2025-12-30*
+4 -3
View File
@@ -289,7 +289,8 @@ Every external `<service>.schweitz.net` domain has a corresponding `<service>.sc
| documents.schweitz.internal | 192.168.86.149:8091 | documents.schweitz.net | | documents.schweitz.internal | 192.168.86.149:8091 | documents.schweitz.net |
| git.schweitz.internal | localhost:3002 | git.schweitz.net | | git.schweitz.internal | localhost:3002 | git.schweitz.net |
| library.schweitz.internal | localhost:8088 | library.schweitz.net | | library.schweitz.internal | localhost:8088 | library.schweitz.net |
| tatlock.schweitz.internal | localhost:82 | tatlock.schweitz.net | | tatlock.schweitz.internal | localhost:8000 | tatlock.schweitz.net |
| webui.schweitz.internal | localhost:82 | webui.schweitz.net |
### Step 1: Add DNS Entry ### Step 1: Add DNS Entry
@@ -570,5 +571,5 @@ curl -s -X PUT http://192.168.86.149:81/api/nginx/proxy-hosts/<proxy_id> \
--- ---
**Last Updated**: 2025-12-25 **Last Updated**: 2025-12-30
**Based on**: library.schweitz.net setup session, Paperless-ngx API deployment, Internal domain consolidation **Based on**: library.schweitz.net setup session, Paperless-ngx API deployment, Internal domain consolidation, Tatlock/WebUI domain reorganization