Add systemd service file and installation guide
Adds krafttrainer.service for running as a systemd unit and expands deployment.md with step-by-step instructions for both systemd and Docker deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,78 @@
|
|||||||
# Deployment
|
# 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
|
- Docker + Docker Compose auf dem Zielrechner
|
||||||
- Quellcode (git clone)
|
- Quellcode (git clone)
|
||||||
|
|||||||
17
krafttrainer.service
Normal file
17
krafttrainer.service
Normal file
@@ -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
|
||||||
Reference in New Issue
Block a user