39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# 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
|