MetaTrader5-Docker-Goldex/DEPLOY.md

40 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2026-11-07 05:31:49 +00:00
# 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 <stack-ordner> && 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