Files
Trademind/deploy/trademind.container
T
Tobias Zimmermann 35d5c64e5b 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.
2026-08-22 11:14:40 +02:00

63 lines
2.0 KiB
INI
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Podman-Quadlet-Einheit der sauberste Weg, TradeMind dauerhaft laufen zu lassen.
#
# Installation (rootless, empfohlen):
# mkdir -p ~/.config/containers/systemd
# cp deploy/trademind.container ~/.config/containers/systemd/
# mkdir -p ~/.config/trademind && cp config/config.yaml config/trademind.env ~/.config/trademind/
# systemctl --user daemon-reload
# systemctl --user start trademind
# systemctl --user status trademind
# journalctl --user -u trademind -f
#
# Damit der Dienst auch ohne aktive Anmeldung läuft:
# loginctl enable-linger $USER
#
# Für den systemweiten Betrieb stattdessen nach /etc/containers/systemd/ kopieren
# und "systemctl" ohne --user verwenden.
[Unit]
Description=TradeMind selbstlernender Krypto-Trading-Bot
Documentation=https://github.com/tlt-turbo/trademind
After=network-online.target
Wants=network-online.target
[Container]
Image=localhost/trademind:latest
ContainerName=trademind
AutoUpdate=local
# Konfiguration schreibgeschützt, Daten persistent
Volume=%h/.config/trademind:/config:ro,Z
Volume=trademind-data.volume:/data:Z
EnvironmentFile=%h/.config/trademind/trademind.env
Environment=TRADEMIND_CONFIG=/config/config.yaml
Exec=run --config /config/config.yaml
# 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
DropCapability=ALL
UserNS=keep-id
HealthCmd=python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8080/health', timeout=4).status==200 else 1)"
HealthInterval=30s
HealthTimeout=5s
HealthRetries=3
HealthStartPeriod=45s
[Service]
Restart=always
RestartSec=15
# SIGTERM zuerst die Engine beendet den laufenden Durchlauf und speichert das Modell.
TimeoutStopSec=90
[Install]
WantedBy=default.target