Files
IBKRTrader/deploy/ibkrtrader.service
RichardandClaude Opus 5 9f66183f1c
Build & Test / build (ubuntu-latest) (push) Waiting to run
Build & Test / build (windows-latest) (push) Waiting to run
Eine Roadmap statt sieben Konzepte; Quelldokumente ins Archiv
Der offene Stand lag ueber sieben Konzepte, zwei Referenzdokumente und die
Phasen-Checkliste der Architektur verteilt. Dieselbe Aufgabe stand teils
doppelt unter zwei Namen - die asynchrone Fill-Verfolgung etwa als "bekannte
Grenze" in IBKR-Integration.md und zugleich als W-2 im OptionsWheel-Konzept.
Wer wissen wollte, was als Naechstes ansteht, musste alles neun lesen.

docs/ROADMAP.md fuehrt das zusammen:
  - Fuenf Stufen in Abhaengigkeitsreihenfolge, von "Fundament schliessen" bis
    zum OptionsWheel, dazu vier laufende Bahnen (Auslieferung, Accounting,
    Supervisor, technische Schulden).
  - Jede Zeile traegt ihre Herkunft (W-2, P5, Kapitalmodell 5, ...), damit die
    Herleitung im Archiv auffindbar bleibt.
  - Eigene Abschnitte fuer Zurueckgestelltes und Verworfenes. Zurueckgestellte
    Ideen nennen ausdruecklich, WAS sie wieder aktuell macht; verworfene nennen
    den Grund, damit sie nicht in sechs Monaten erneut vorgeschlagen werden.
  - Erledigtes bleibt als Zeile mit Datum stehen statt zu verschwinden.

Archiv (git erkennt alle sieben als Umbenennung, Historie bleibt):
  docs/konzepte/*         -> docs/archiv/
  docs/Kapital-und-Buchmodell.md -> docs/archiv/
Jedes archivierte Dokument bekommt oben einen Vermerk, warum es erhalten bleibt
und wo der lebende Stand steht. Inhaltlich ist keines veraendert.

Weiter gepflegt werden ARCHITECTURE.md (Aufbau + Phasen-Historie),
IBKR-Integration.md (Adapter-Design und Grenzen) und die TWS-Setup-Checkliste -
das sind Referenzen, keine Planung. Ihre eigenen Offen-Listen verweisen jetzt
mit Roadmap-Kennung dorthin, statt einen zweiten Stand zu fuehren.

Alle 63 relativen Markdown-Links geprueft, keiner tot. Fuenf Pfadverweise in
Code, csproj und systemd-Unit mitgezogen; die Unit zeigte auf die
Portierungsanalyse, die ausdruecklich den Stand VOR dem Umbau beschreibt - jetzt
auf ARCHITECTURE.md. Build 0 Warnungen, 198/198 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:14:51 +02:00

65 lines
2.1 KiB
Desktop File
Raw Permalink 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.
#
# systemd-Unit für den kopflosen IBKRTrader-Dienst.
#
# sudo cp deploy/ibkrtrader.service /etc/systemd/system/
# sudo systemctl daemon-reload
# sudo systemctl enable --now ibkrtrader
# journalctl -u ibkrtrader -f
#
# Voraussetzungen auf dem Host:
# - .NET-10-Runtime (dotnet-runtime-10.0)
# - libicu → PFLICHT. Ohne ICU fällt die Auflösung von Windows-Zeitzonen-IDs aus und die
# feste de-DE-Formatierung im PDF-Export kippt auf invariant. Beides würde
# lautlos falsche Ausgaben erzeugen, nicht etwa einen Fehler.
# - fonts-dejavu-core → nur für den PDF-Export des Accounting-Moduls.
# - mariadb-client → nur für den BackupWorker (mariadb-dump).
#
[Unit]
Description=IBKRTrader (kopfloser Handelsdienst)
Documentation=file:///opt/ibkrtrader/docs/ARCHITECTURE.md
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
NotifyAccess=all
User=ibkrtrader
Group=ibkrtrader
WorkingDirectory=/opt/ibkrtrader
ExecStart=/opt/ibkrtrader/IBKRTrader.Daemon
# Ablageorte. Ohne diese Variablen weicht die Anwendung selbst auf die FHS-Pfade aus, sobald
# /opt/ibkrtrader nicht beschreibbar ist ausdrücklich gesetzt ist es aber nachvollziehbarer.
Environment=IBKRTRADER_CONFIG_DIR=/etc/ibkrtrader
Environment=IBKRTRADER_DATA_DIR=/var/lib/ibkrtrader
Environment=IBKRTRADER_LOG_DIR=/var/log/ibkrtrader
# Der Master-Key gehört NICHT in diese Datei (sie ist für alle lesbar). Entweder als Datei
# /etc/ibkrtrader/master.key mit chmod 600, oder über eine EnvironmentFile mit 600:
# EnvironmentFile=/etc/ibkrtrader/secrets.env
Environment=DOTNET_EnableDiagnostics=0
# Geordnetes Herunterfahren: SIGTERM, dann Zeit für offene Broker-Anfragen und den Modul-Stopp.
KillSignal=SIGTERM
TimeoutStopSec=60
Restart=on-failure
RestartSec=15
# Absicherung. Der Dienst braucht nur seine drei Verzeichnisse beschreibbar.
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/ibkrtrader /var/log/ibkrtrader
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictSUIDSGID=true
RestrictNamespaces=true
LockPersonality=true
[Install]
WantedBy=multi-user.target