# SERVER STATE — 2026-05-30

## Removed
- **LibreChat** — containers, volumes, networks, compose, directory, all images
- **OpenClaw** — nginx site, SSL certs
- **MongoDB, Meilisearch, pgvector** — LibreChat dependency images & volumes
- **Docker networks:** `librechat_default`, `ai-web`, `config_default`
- **Disk freed:** ~7.5GB (LibreChat images + volumes)

## Installed
- **Open WebUI** — `:3081`, host networking, persistent volume
- **Nginx proxy** — `webui.local` → Open WebUI (enabled)

## Running Containers (3)
| Container | Image | Port | Status |
|---|---|---|---|
| `open-webui` | ghcr.io/open-webui/open-webui:latest | `0.0.0.0:3081` → 8080 | healthy |
| `searxng-core` | searxng/searxng:latest | `127.0.0.1:8080` | Up |
| `searxng-valkey` | valkey/valkey:9-alpine | internal (6379) | Up |

## Open Ports
| Port | Service | Binding |
|---|---|---|
| 22 | SSH | `0.0.0.0` |
| 80 | Nginx (proxy) | `0.0.0.0` |
| 3081 | Open WebUI | `0.0.0.0` |
| 8080 | SearXNG | `127.0.0.1` |
| 9292 | llama-swap | `*` (all) |
| 5804 | llama-server (qwen36-35b-mtp) | `127.0.0.1` |
| 18789 | Hermes Agent | `0.0.0.0` |
| 443 | Tailscale | Tailscale IP |
| 5432 | PostgreSQL (system) | `127.0.0.1` |
| 6379 | Redis/Valkey (system/SearXNG) | `127.0.0.1` |

## URLs
- **Open WebUI:** `http://192.168.1.50:3081`
- **via nginx:** `http://192.168.1.50/` (with Host: webui.local)
- **SearXNG:** `http://127.0.0.1:8080`
- **llama-swap:** `http://127.0.0.1:9292` (OpenAI-compatible)

## Docker Compose Paths
- **Open WebUI:** `/home/rurouni/projects/openwebui/docker-compose.yml`
- **SearXNG:** `/home/rurouni/projects/searxng/docker-compose.yml`

## Config Files
- **Open WebUI env:** `/home/rurouni/projects/openwebui/.env`
- **Open WebUI nginx:** `/home/rurouni/projects/openwebui/nginx-openwebui.conf`
- **llama-swap:** `/home/rurouni/.config/llama-swap/config.yaml`
- **SearXNG:** `/home/rurouni/projects/searxng/core-config/settings.yml`

## Models (6 via llama-swap)
`heretic-35b`, `qwen36-35b-mtp`, `qwopus-9b`, `ds-flash-9b`, `qwen35-9b-mtp`, `gemma-26b`

## Web Search
- Engine: SearXNG (self-hosted, no API keys)
- Engines: duckduckgo, brave, google
- JSON format enabled
- Private/local only (127.0.0.1)

## Systemd Services (auto-start on boot)
`nginx`, `docker`, `llama-swap.service` — all enabled

## Cleanup Status
- [x] LibreChat removed (containers, volumes, images, configs)
- [x] OpenClaw removed (nginx site, SSL certs)
- [x] Dangling Docker volumes removed (5)
- [x] Old LibreChat/Mongo/Meilisearch/pgvector images removed
- [x] No orphan configs or stale routes
- [x] Other projects untouched (NuvioTV, NuvioStreamsAddon, Lumera, etc.)

## Notes
- Open WebUI uses `network_mode: host` for direct access to llama-swap and SearXNG on localhost
- First login creates admin account
- Web search toggle confirmed in Open WebUI Admin → Settings → General
- llama-swap model inference works on-demand (model swaps take 10-60s for first request)
