# Deploy dieses Stacks Diese App deployt sich selbst – unabhängig von anderen Apps. | Datei | Zweck | |---|---| | `deploy.conf` | Kenndaten: Dienstnamen, MCP-Port, Diagnosedatei | | `main.tf` | Terraform: Sperre → Dateien per SSH kopieren → `scripts/deploy-local.sh` | | `.github/workflows/deploy.yml` | Forgejo: Bundle mit `git archive` bauen, `terraform apply` | | `scripts/deploy-local.sh` | Deploy auf dem Server: Sperre, `docker compose up -d --build`, warten | | `scripts/check-stack.sh` | Statusprüfung: Container, Bridge, Konto, Kurs, Positionen, Trader, Telegram | ## Deployen | Weg | Befehl | |---|---| | Push auf `main` | Forgejo-Workflow → Terraform | | Forgejo manuell | Actions → *MT5 Stack Deploy* → Run workflow | | Direkt auf dem Server | `cd && scripts/deploy-local.sh` | **Sperre:** Ein Deploy bricht ab, solange der Stack offene Positionen hat. Der Trader hält Positionen nur im Speicher, nach einem Neustart setzt er für sie kein BE mehr. `scripts/deploy-local.sh --force` übergeht die Sperre bewusst. **Nur auf dem Server, nie im Repo:** `config/`, `trader-data/`, `.env`, `bots.env`. Terraform kopiert nur versionierte Dateien (`git archive`), diese bleiben unberührt. **Direkt auf dem Server geändert?** Dort committen und pushen – sonst dreht der nächste Deploy die Änderung zurück. ## Status ```bash scripts/check-stack.sh # ausführlich scripts/check-stack.sh -q # nur Fehler (cron) ``` ## Forgejo einrichten - Secret `DEPLOY_SSH_KEY`: privater SSH-Key für `bast@BITMT503` - optional Variable `DEPLOY_HOST`: IP, falls der Runner `BITMT503` nicht auflöst