283 lines
6.3 KiB
Markdown
283 lines
6.3 KiB
Markdown
---
|
|
created: '2026-04-16T00:45:32+00:00'
|
|
id: 7a9a2585-0be1-4409-a8d0-b5c87671ed60
|
|
keywords:
|
|
- ana-docker
|
|
- traefik
|
|
- synapse
|
|
- element
|
|
- gitea
|
|
- seafile
|
|
- vaultwarden
|
|
- mattermost
|
|
- sillytavern
|
|
- open-webui
|
|
- dockge
|
|
- portainer
|
|
- rustdesk
|
|
- restic
|
|
- mailrise
|
|
- it-tools
|
|
- ollama
|
|
links: []
|
|
modified: '2026-04-16T00:45:32+00:00'
|
|
summary: 'Complete Docker service inventory for ana-docker (10.250.50.70): 20 containers
|
|
across 15 stacks, host details, config paths, and per-service issues.'
|
|
tags:
|
|
- infrastructure
|
|
- ana-colo
|
|
- docker
|
|
- services
|
|
- traefik
|
|
- matrix
|
|
- gitea
|
|
- seafile
|
|
- vaultwarden
|
|
- mattermost
|
|
title: Ana Colo — Docker Service Inventory
|
|
---
|
|
|
|
# Ana Colo — Docker Service Inventory
|
|
|
|
> **Last surveyed:** 2026-04-15
|
|
> **Host:** ana-docker · 10.250.50.70
|
|
|
|
## Host Details
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| OS | Debian 12 (bookworm) |
|
|
| Kernel | 6.1.0-44-amd64 |
|
|
| Resources | 8 vCPU (QEMU), 16GB RAM, 245GB disk (153GB free) |
|
|
| User | llmuser (UID 1001, GID 1001), sudo no password |
|
|
| Docker | 20.10.24 |
|
|
| Compose | v5.1.1 |
|
|
| Buildx | v0.31.1 |
|
|
| Python | 3.11.2 |
|
|
| Node | v20.12.2 (nvm) |
|
|
| Firewall | ❌ None (no UFW, firewalld, SELinux, AppArmor) |
|
|
|
|
### NFS Mounts
|
|
|
|
| Mount | Source |
|
|
|---|---|
|
|
| /mnt/compose | 10.250.50.50 |
|
|
| /mnt/backup | 10.250.50.50 |
|
|
| /mnt/tnvms | 10.250.50.50 |
|
|
|
|
### File Layout
|
|
|
|
| Path | Purpose |
|
|
|---|---|
|
|
| /opt/docker/compose/\<stack\>/compose.yaml | Compose files |
|
|
| /opt/docker/conf/\<service\>/ | Config files |
|
|
|
|
---
|
|
|
|
## Service Inventory (20 containers)
|
|
|
|
### Traefik (reverse proxy)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `traefik:latest` |
|
|
| Ports | 80, 443, 8380 (dashboard) |
|
|
| Network | traefik-net |
|
|
| Health check | ❌ none |
|
|
| Config | `/opt/docker/conf/traefik-ana/config/traefik.yml`, `/opt/docker/compose/traefik/.env` |
|
|
|
|
**Issues:**
|
|
- Debug logging enabled (`--log.level=DEBUG`)
|
|
- Dashboard unprotected on :8380
|
|
- Stale commented-out configs in traefik.yml
|
|
|
|
---
|
|
|
|
### Matrix (Synapse + Element + Postgres)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Images | `matrixdotorg/synapse:v1.120.0`, `vectorim/element-web:v1.11.80`, `postgres:16-alpine` |
|
|
| Ports | Internal only (Traefik-routed) |
|
|
| Networks | traefik-net + matrix-net |
|
|
| Health check | ✅ Postgres only |
|
|
| DB | Local Postgres volume |
|
|
| Config | `/opt/docker/conf/synapse/homeserver.yaml`, `aipa_appservice.yaml` |
|
|
|
|
**Notes:**
|
|
- AIPA appservice configured for MCP bridge integration
|
|
- Virtual hosts: `matrix.phasefinal.com` (Synapse), `chat.phasefinal.com` (Element)
|
|
|
|
**Issues:**
|
|
- DB password hardcoded in compose.yaml
|
|
- Multiple secrets in homeserver.yaml (DB password, registration secret, macaroon key, form secret, appservice tokens)
|
|
|
|
---
|
|
|
|
### Gitea
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `gitea/gitea:latest` |
|
|
| Ports | 3000 (Traefik-routed), 222 (SSH) |
|
|
| Network | traefik-net |
|
|
| Health check | ❌ none |
|
|
| DB | Remote PostgreSQL on 10.250.50.80 |
|
|
|
|
**Issues:**
|
|
- DB password hardcoded in compose.yaml
|
|
|
|
---
|
|
|
|
### Seafile (Seafile + MariaDB + Memcached)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Images | `seafileltd/seafile-mc:11.0-latest`, `mariadb:10.6`, `memcached:1.6.18` |
|
|
| Ports | 9180 (Traefik-routed), internal DB |
|
|
| Networks | traefik-net + seafile-net |
|
|
| Health check | ❌ none |
|
|
| DB | Local MariaDB volume |
|
|
|
|
**Issues:**
|
|
- MySQL root password hardcoded AND duplicated in .env
|
|
- Admin credentials in .env
|
|
|
|
---
|
|
|
|
### SillyTavern
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `ghcr.io/sillytavern/sillytavern:latest` |
|
|
| Ports | 8100 (direct, not Traefik-routed) |
|
|
| Network | default only |
|
|
| Health check | ❌ none |
|
|
| Config | `/opt/docker/conf/sillytavern/config.yaml` |
|
|
|
|
---
|
|
|
|
### Open WebUI
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `ghcr.io/open-webui/open-webui:main` |
|
|
| Ports | 3100 (direct, not Traefik-routed) |
|
|
| Network | default only |
|
|
| Health check | ✅ curl localhost:8080 |
|
|
| DB | External Ollama on 10.250.50.51:11434 |
|
|
| Config | `/opt/docker/compose/openwebui/.env` |
|
|
|
|
---
|
|
|
|
### Vaultwarden
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `vaultwarden/server:latest` |
|
|
| Ports | 9080 (Traefik-routed) |
|
|
| Network | traefik-net |
|
|
| Health check | ✅ curl localhost:80 |
|
|
| DB | Remote PostgreSQL on 10.250.50.80 |
|
|
|
|
---
|
|
|
|
### Dockge (compose manager)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Images | `louislam/dockge:latest`, custom backup image `9392b1d81976` (no repo tag) |
|
|
| Ports | 5001 (direct) |
|
|
| Network | default only |
|
|
| Health check | ✅ curl localhost:5001 |
|
|
|
|
**Issues:**
|
|
- Backup uses untagged custom image — needs documentation or tagging
|
|
|
|
---
|
|
|
|
### Portainer (legacy — consider removal)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Images | `portainer/portainer-ce:latest` (3 years old), `portainer/agent:2.19.4` |
|
|
| Ports | 9000, 9001 (direct) |
|
|
| Network | default only |
|
|
| Health check | ❌ none |
|
|
|
|
**Issues:**
|
|
- Very old images (Portainer CE ~3 years, agent ~2 years)
|
|
- Consider migrating to Dockge-only or removing entirely
|
|
|
|
---
|
|
|
|
### RustDesk (hbbs + hbbr)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `rustdesk/rustdesk-server:latest` (13 months old) |
|
|
| Ports | Host network mode (hbbs + hbbr + NAT relay) |
|
|
| Network | Host network |
|
|
| Health check | ❌ none |
|
|
|
|
**Issues:**
|
|
- Host network breaks Docker isolation model
|
|
- Image is 13 months old
|
|
|
|
---
|
|
|
|
### Restic Server
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `restic/rest-server` |
|
|
| Ports | 8000 (direct) |
|
|
| Network | default only |
|
|
| Health check | ❌ none |
|
|
| Storage | NFS-backed volume |
|
|
|
|
---
|
|
|
|
### IT Tools
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `corentinth/it-tools:latest` (13 months old) |
|
|
| Ports | 8780 (direct) |
|
|
| Network | default only |
|
|
| Health check | ❌ none |
|
|
|
|
**Issues:**
|
|
- Homepage labels present but no Homepage container running
|
|
- Image 13 months old
|
|
|
|
---
|
|
|
|
### Mailrise
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `yoryan/mailrise:latest` |
|
|
| Ports | 8025 (direct) |
|
|
| Network | default only |
|
|
| Health check | ❌ none |
|
|
| Config | `/opt/docker/conf/mailrise/mailrise.conf` |
|
|
|
|
**Issues:**
|
|
- SendGrid API key and webhook tokens in plaintext config
|
|
|
|
---
|
|
|
|
### Mattermost (not currently running)
|
|
|
|
| Property | Value |
|
|
|---|---|
|
|
| Image | `mattermost/mattermost-enterprise-edition:latest` |
|
|
| Ports | 8065 (Traefik-routed), UDP 8443 from WAN |
|
|
| Networks | traefik-net + mattermost-net |
|
|
| DB | Remote PostgreSQL on 10.250.50.80 |
|
|
| Config | `/opt/docker/data/mattermost/.../config.json` |
|
|
|
|
**Issues:**
|
|
- SendGrid API key, SMTP password, encryption keys, salts all in config.json
|
|
- Not currently running (container stopped) |