Clarify Docker port binding and SSH tunnel for admin access
Use 127.0.0.1:8001:8001 to bind admin port locally only. Explain Docker's 0.0.0.0 vs 127.0.0.1 distinction and add SSH tunnel diagram showing how admin UI is accessed remotely.
This commit is contained in:
parent
ff5c88ecfd
commit
f22bad6496
31
README.md
31
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 \
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user