diff --git a/README.md b/README.md index a833c9f..2455fa6 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,7 @@ docker build -t llm-quota . ```bash docker run -d \ -p 8000:8000 \ + -p 127.0.0.1:8001:8001 \ -e ADMIN_PASSWORD=geheim \ -e OLLAMA_URL=http://host.docker.internal:11434 \ -e DATABASE_URL=sqlite:///./data/quota.db \ @@ -93,39 +94,33 @@ docker run -d \ llm-quota ``` -Port 8001 (Admin) wird bewusst **nicht** an den Host gebunden. Die Admin-Oberfläche ist über einen Reverse-Proxy zu exponieren (siehe unten). +| Port | Bindung | Dienst | +|------|---------|--------| +| `8000` | `0.0.0.0` — öffentlich | Proxy (für LLM-Clients) | +| `8001` | `127.0.0.1` — nur lokal am Server | Admin-API + Admin-Oberfläche | -| Port | Dienst | -|------|--------| -| `8000` | Proxy (für LLM-Clients, öffentlich) | -| `8001` | Admin-API + Admin-Oberfläche (nur intern) | +Docker unterscheidet beim Port-Mapping zwischen `0.0.0.0` (alle Interfaces, öffentlich erreichbar) und `127.0.0.1` (nur der Server selbst kann zugreifen). Mit `-p 127.0.0.1:8001:8001` ist Port 8001 am Server verfügbar, aber von außen nicht direkt ansprechbar. -### Admin-Oberfläche via Reverse-Proxy zugänglich machen +### Admin-Oberfläche per SSH-Tunnel erreichbar machen -Beispiel mit nginx — Port 8001 intern weiterleiten, nach außen absichern: +Der SSH-Tunnel leitet einen lokalen Port auf den Server weiter und nutzt dabei, dass Port 8001 dort auf `127.0.0.1` erreichbar ist: -```nginx -server { - listen 443 ssl; - server_name admin.example.com; - - location / { - proxy_pass http://localhost:8001; - } -} ``` - -Oder temporär für lokalen Zugriff per SSH-Tunnel: +Admin-Laptop:8001 ──SSH──► Server:127.0.0.1:8001 ──► Container:8001 +``` ```bash ssh -L 8001:localhost:8001 user@server ``` +Danach ist die Admin-Oberfläche auf dem Laptop unter `http://localhost:8001` erreichbar — ohne dass Port 8001 öffentlich exponiert wird. + ### Mit PostgreSQL ```bash docker run -d \ -p 8000:8000 \ + -p 127.0.0.1:8001:8001 \ -e ADMIN_PASSWORD=geheim \ -e DATABASE_URL=postgresql://user:pass@db-host:5432/llm_quota \ -e OLLAMA_URL=http://ollama:11434 \