diff --git a/README.md b/README.md
index 6034380..ac1c2aa 100644
--- a/README.md
+++ b/README.md
@@ -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: · Logs: `podman-compose logs -f`
+Dashboard: `http://: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
```
diff --git a/deploy/trademind.container b/deploy/trademind.container
index 28965c7..374796e 100644
--- a/deploy/trademind.container
+++ b/deploy/trademind.container
@@ -35,8 +35,11 @@ Environment=TRADEMIND_CONFIG=/config/config.yaml
Exec=run --config /config/config.yaml
-# Dashboard/Metriken nur auf dem Loopback-Interface
-PublishPort=127.0.0.1:8080:8080
+# Dashboard und Metriken auf allen Interfaces, also von außen erreichbar.
+# Die Endpunkte sind lesend, aber unauthentifiziert – sie zeigen Kontostand, Positionen
+# und Trade-Historie. In offenen Netzen einen Reverse Proxy mit Authentifizierung
+# davorsetzen oder hier auf 127.0.0.1:8080:8080 zurückstellen.
+PublishPort=8080:8080
# Härtung
NoNewPrivileges=true
diff --git a/podman-compose.yml b/podman-compose.yml
index c39496a..1696bdf 100644
--- a/podman-compose.yml
+++ b/podman-compose.yml
@@ -20,7 +20,12 @@ services:
command: ["run", "--config", "/config/config.yaml"]
ports:
- - "127.0.0.1:8080:8080" # Dashboard nur lokal erreichbar
+ # Dashboard und Metriken sind von außen erreichbar (alle Interfaces).
+ # Die Endpunkte sind lesend, aber unauthentifiziert – sie zeigen Kontostand,
+ # Positionen und Trade-Historie. Nur in vertrauenswürdigen Netzen so betreiben,
+ # sonst einen Reverse Proxy mit Authentifizierung davorsetzen.
+ # Wieder auf rein lokalen Zugriff begrenzen: "127.0.0.1:8080:8080"
+ - "8080:8080"
volumes:
- ./config:/config:ro,Z # Konfiguration schreibgeschützt hineinreichen