Dashboard und Metriken standardmäßig von außen erreichbar
Port 8080 wird in podman-compose.yml und in der Quadlet-Einheit auf allen Interfaces veröffentlicht statt nur auf dem Loopback. Die Endpunkte sind ausschließlich lesend – über HTTP lässt sich weder handeln noch etwas konfigurieren –, aber sie sind nicht authentifiziert: Kontostand, offene Positionen und die Trade-Historie sieht jeder, der den Port erreicht. Das README nennt deshalb jetzt Reverse Proxy und Firewall als Absicherung, den einzeiligen Weg zurück zu rein lokalem Zugriff sowie server.enabled: false zum vollständigen Abschalten. Geprüft im laufenden Container über die Nicht-Loopback-Adresse des Hosts: /health, / , /status und /metrics antworten.
This commit is contained in:
@@ -35,7 +35,7 @@ podman-compose up -d
|
||||
das OCI-Format kennt die Anweisung nicht. Compose und Quadlet bringen ihren eigenen
|
||||
Healthcheck mit, dort spielt das Format keine Rolle.
|
||||
|
||||
Dashboard: <http://127.0.0.1:8080/> · Logs: `podman-compose logs -f`
|
||||
Dashboard: `http://<host>:8080/` · Logs: `podman-compose logs -f`
|
||||
|
||||
Ohne Zugangsdaten läuft der Bot im Paper-Modus auf echten Live-Kursen und beginnt sofort zu
|
||||
lernen. Für den Start werden nur öffentliche Marktdaten gelesen — kein API-Schlüssel nötig.
|
||||
@@ -61,14 +61,28 @@ podman-compose logs -f # verfolgen
|
||||
podman-compose down # stoppen
|
||||
```
|
||||
|
||||
Der Port ist bewusst auf `127.0.0.1:8080` gebunden; das Dashboard ist damit nicht aus dem
|
||||
Netz erreichbar. Für Zugriff von außen einen Reverse Proxy mit Authentifizierung davorsetzen.
|
||||
Port 8080 wird auf allen Interfaces veröffentlicht — das Dashboard ist damit standardmäßig
|
||||
von anderen Rechnern erreichbar.
|
||||
|
||||
> **Windows und macOS.** Dort läuft Podman in einer VM (`podman machine`). Auf Loopback
|
||||
> veröffentlichte Ports bleiben in der VM und erreichen den Host nicht. Zum Testen entweder
|
||||
> `podman machine ssh curl -s localhost:8080/health` verwenden oder in
|
||||
> `podman-compose.yml` auf `"8080:8080"` umstellen. Auf Linux — dem Ziel für den
|
||||
> Dauerbetrieb — funktioniert die Loopback-Bindung unmittelbar.
|
||||
> **Sicherheit.** Alle Endpunkte sind lesend (`GET`, keine Steuerbefehle), aber **nicht
|
||||
> authentifiziert**. Wer den Port erreicht, sieht Kontostand, offene Positionen und die
|
||||
> gesamte Trade-Historie. In offenen Netzen deshalb entweder einen Reverse Proxy mit
|
||||
> Authentifizierung davorsetzen, den Zugriff per Firewall auf bekannte Quell-IPs begrenzen
|
||||
> oder auf rein lokalen Zugriff zurückstellen:
|
||||
>
|
||||
> | Datei | lokal statt offen |
|
||||
> |------------------------------|----------------------------------|
|
||||
> | `podman-compose.yml` | `- "127.0.0.1:8080:8080"` |
|
||||
> | `deploy/trademind.container` | `PublishPort=127.0.0.1:8080:8080`|
|
||||
>
|
||||
> Ganz abschalten lässt sich der Server über `server.enabled: false` in der Konfiguration
|
||||
> oder `trademind run --no-server`; der Container-Healthcheck braucht ihn allerdings.
|
||||
|
||||
> **Windows und macOS.** Dort läuft Podman in einer VM (`podman machine`), die
|
||||
> veröffentlichte Ports nicht in jeder Konstellation an den Host weiterreicht. Ist das
|
||||
> Dashboard nicht erreichbar, mit `podman machine ssh curl -s localhost:8080/health`
|
||||
> gegenprüfen — antwortet das, liegt es an der VM-Weiterleitung, nicht am Bot. Auf Linux —
|
||||
> dem Ziel für den Dauerbetrieb — greift die Veröffentlichung unmittelbar.
|
||||
|
||||
### Variante 2 — einzelner Container
|
||||
|
||||
@@ -79,7 +93,7 @@ podman run -d --name trademind \
|
||||
--env-file config/trademind.env \
|
||||
-v ./config:/config:ro,Z \
|
||||
-v trademind-data:/data:Z \
|
||||
-p 127.0.0.1:8080:8080 \
|
||||
-p 8080:8080 \
|
||||
--security-opt no-new-privileges \
|
||||
trademind:latest
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user