diff --git a/deployment.md b/deployment.md index f809133..d62f9b8 100644 --- a/deployment.md +++ b/deployment.md @@ -1,6 +1,78 @@ # Deployment -## Voraussetzungen +Es gibt zwei Deployment-Varianten: **systemd** (empfohlen für einzelne Server) und **Docker**. + +--- + +## Variante 1: systemd (Binary direkt) + +### Voraussetzungen + +- Linux mit systemd +- GCC/glibc (für CGO/SQLite) auf dem Build-Rechner +- SSH-Zugang zum Zielrechner + +### Erstinstallation + +```bash +# 1. Binary bauen (auf dem Entwicklungsrechner) +make build + +# 2. Verzeichnis auf dem Zielrechner anlegen +ssh christoph@192.168.1.118 "mkdir -p ~/krafttrainer" + +# 3. Binary übertragen +scp krafttrainer christoph@192.168.1.118:~/krafttrainer/ + +# 4. Service-Datei installieren +sudo cp krafttrainer.service /etc/systemd/system/ +sudo systemctl daemon-reload +sudo systemctl enable krafttrainer +sudo systemctl start krafttrainer +``` + +Die Service-Datei (`krafttrainer.service`) liegt im Repo-Root und geht von folgendem aus: + +| Parameter | Wert | +|-----------|------| +| User | `christoph` | +| Binary | `/home/christoph/krafttrainer/krafttrainer` | +| Datenbank | `/home/christoph/krafttrainer/krafttrainer.db` | +| Port | `8090` | + +Anpassen falls User oder Pfade abweichen. + +### Update deployen + +```bash +make build +scp krafttrainer christoph@192.168.1.118:~/krafttrainer/ +ssh christoph@192.168.1.118 "sudo systemctl restart krafttrainer" +``` + +### Service verwalten + +```bash +sudo systemctl status krafttrainer # Status +sudo journalctl -u krafttrainer -f # Logs live +sudo systemctl stop krafttrainer # Stoppen +sudo systemctl restart krafttrainer # Neustarten +``` + +### Service entfernen + +```bash +sudo systemctl stop krafttrainer +sudo systemctl disable krafttrainer +sudo rm /etc/systemd/system/krafttrainer.service +sudo systemctl daemon-reload +``` + +--- + +## Variante 2: Docker + +### Voraussetzungen - Docker + Docker Compose auf dem Zielrechner - Quellcode (git clone) diff --git a/krafttrainer.service b/krafttrainer.service new file mode 100644 index 0000000..42d0b32 --- /dev/null +++ b/krafttrainer.service @@ -0,0 +1,17 @@ +[Unit] +Description=Krafttrainer Web App +After=network.target + +[Service] +Type=simple +User=christoph +WorkingDirectory=/home/christoph/krafttrainer +ExecStart=/home/christoph/krafttrainer/krafttrainer +Restart=on-failure +RestartSec=5 + +Environment=PORT=8090 +Environment=DB_PATH=/home/christoph/krafttrainer/krafttrainer.db + +[Install] +WantedBy=multi-user.target