DEPLOY.md: Projektordner ~/festplatte/dockercontainer/hcrb

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
guyg1474andClaude Opus 5.5 committed 2026-10-10 14:35:22 +02:00
1 parent c9dc2bc4b3
commit 6824ca90cd
1 file changed
+13 -14
+13 -14
View File
@@ -28,14 +28,13 @@ cat ~/.ssh/hcrb_deploy.pub
Den ausgegebenen Schlüssel im Repository unter *Settings → Deploy keys* eintragen (nur Lesezugriff). Dann: Den ausgegebenen Schlüssel im Repository unter *Settings → Deploy keys* eintragen (nur Lesezugriff). Dann:
> **Ordner:** Die Anleitung nutzt `/opt/hcrb`. Jeder andere Ordner geht genauso (z. B. `~/docker/hcrb` neben den > **Ordner:** Das Projekt liegt in `~/festplatte/dockercontainer/hcrb`. Die Skripte in `deploy/` finden ihren
> anderen Docker-Projekten) – dann `/opt/hcrb` in den Befehlen unten einfach durch den eigenen Pfad ersetzen. > Ordner selbst – bei einem Umzug muss nur der Pfad in den Befehlen hier angepasst werden.
> Die Skripte in `deploy/` finden ihren Ordner selbst.
```bash ```bash
sudo mkdir -p /opt/hcrb && sudo chown $USER: /opt/hcrb mkdir -p ~/festplatte/dockercontainer
GIT_SSH_COMMAND="ssh -i ~/.ssh/hcrb_deploy" git clone git@github.com:guyg1474/hcrb.git /opt/hcrb GIT_SSH_COMMAND="ssh -i ~/.ssh/hcrb_deploy" git clone git@github.com:guyg1474/hcrb.git ~/festplatte/dockercontainer/hcrb
cd /opt/hcrb cd ~/festplatte/dockercontainer/hcrb
git config core.sshCommand "ssh -i ~/.ssh/hcrb_deploy" git config core.sshCommand "ssh -i ~/.ssh/hcrb_deploy"
chmod +x deploy/*.sh chmod +x deploy/*.sh
@@ -69,14 +68,14 @@ Wer die bisherigen Mitglieder, Termine und Logins mitnehmen will, kopiert sie vo
# lokal ausführen # lokal ausführen
scp data/db.json data/users.json DEIN-USER@SERVER:/tmp/ scp data/db.json data/users.json DEIN-USER@SERVER:/tmp/
# auf dem Server # auf dem Server
sudo mv /tmp/db.json /tmp/users.json /opt/hcrb/data/ sudo mv /tmp/db.json /tmp/users.json ~/festplatte/dockercontainer/hcrb/data/
sudo chown 1000:1000 /opt/hcrb/data/*.json && sudo chmod 600 /opt/hcrb/data/*.json sudo chown 1000:1000 ~/festplatte/dockercontainer/hcrb/data/*.json && sudo chmod 600 ~/festplatte/dockercontainer/hcrb/data/*.json
``` ```
## 6. Container starten ## 6. Container starten
```bash ```bash
cd /opt/hcrb cd ~/festplatte/dockercontainer/hcrb
docker compose up -d --build docker compose up -d --build
docker compose ps # Status sollte nach ca. 30 Sekunden "Up … (healthy)" zeigen docker compose ps # Status sollte nach ca. 30 Sekunden "Up … (healthy)" zeigen
``` ```
@@ -136,7 +135,7 @@ Die NPM-Oberfläche (Port 81) sollte ebenfalls nicht offen im Internet stehen.
```bash ```bash
sudo crontab -e sudo crontab -e
# Zeile hinzufügen: # Zeile hinzufügen:
30 3 * * * /opt/hcrb/deploy/backup.sh 30 3 * * * /home/DEIN-USER/festplatte/dockercontainer/hcrb/deploy/backup.sh
``` ```
Sichert täglich um 3:30 Uhr `data/` nach `/var/backups/hcrb/` und behält 30 Tage. Sichert täglich um 3:30 Uhr `data/` nach `/var/backups/hcrb/` und behält 30 Tage.
@@ -153,7 +152,7 @@ git commit -m "Was geändert wurde"
git push git push
# auf dem Server # auf dem Server
ssh DEIN-USER@SERVER /opt/hcrb/deploy/update-docker.sh ssh DEIN-USER@SERVER festplatte/dockercontainer/hcrb/deploy/update-docker.sh
``` ```
`update-docker.sh` holt den neuen Stand, baut den Container neu und startet ihn. Die Daten bleiben unverändert, `update-docker.sh` holt den neuen Stand, baut den Container neu und startet ihn. Die Daten bleiben unverändert,
@@ -161,7 +160,7 @@ an NPM muss nichts geändert werden.
## Nützliche Befehle auf dem Server ## Nützliche Befehle auf dem Server
Alle im Ordner `/opt/hcrb` ausführen: Alle im Ordner `~/festplatte/dockercontainer/hcrb` ausführen:
| Zweck | Befehl | | Zweck | Befehl |
| --- | --- | | --- | --- |
@@ -172,7 +171,7 @@ Alle im Ordner `/opt/hcrb` ausführen:
| Benutzer anlegen | `docker compose exec hcrb npm run user -- add <name>` | | Benutzer anlegen | `docker compose exec hcrb npm run user -- add <name>` |
| Passwort ändern | `docker compose exec hcrb npm run user -- passwd <name>` | | Passwort ändern | `docker compose exec hcrb npm run user -- passwd <name>` |
| Benutzer auflisten | `docker compose exec hcrb npm run user -- list` | | Benutzer auflisten | `docker compose exec hcrb npm run user -- list` |
| Backup zurückspielen | `docker compose down && sudo tar -xzf /var/backups/hcrb/hcrb-DATUM.tar.gz -C /opt/hcrb && sudo chown -R 1000:1000 data && docker compose up -d` | | Backup zurückspielen | `docker compose down && sudo tar -xzf /var/backups/hcrb/hcrb-DATUM.tar.gz -C ~/festplatte/dockercontainer/hcrb && sudo chown -R 1000:1000 data && docker compose up -d` |
## Fehlersuche ## Fehlersuche
@@ -180,5 +179,5 @@ Alle im Ordner `/opt/hcrb` ausführen:
| --- | --- | | --- | --- |
| `network … declared as external, but could not be found` | Netzwerkname in `.env` stimmt nicht – Schritt 4 wiederholen. | | `network … declared as external, but could not be found` | Netzwerkname in `.env` stimmt nicht – Schritt 4 wiederholen. |
| NPM zeigt „502 Bad Gateway“ | Container läuft nicht (`docker compose ps`, `docker compose logs`) oder hängt nicht im NPM-Netz (Schritt 4). | | NPM zeigt „502 Bad Gateway“ | Container läuft nicht (`docker compose ps`, `docker compose logs`) oder hängt nicht im NPM-Netz (Schritt 4). |
| Container startet neu mit `EACCES … data` | Rechte am Datenordner: `sudo chown -R 1000:1000 /opt/hcrb/data` | | Container startet neu mit `EACCES … data` | Rechte am Datenordner: `sudo chown -R 1000:1000 ~/festplatte/dockercontainer/hcrb/data` |
| Nach 10 falschen Passwörtern ist der Login für **alle** gesperrt | Die Seite erkennt die echte Besucher-IP nicht – prüfen, ob `TRUST_PROXY` in `docker-compose.yml` gesetzt ist und der Zugriff über NPM erfolgt. | | Nach 10 falschen Passwörtern ist der Login für **alle** gesperrt | Die Seite erkennt die echte Besucher-IP nicht – prüfen, ob `TRUST_PROXY` in `docker-compose.yml` gesetzt ist und der Zugriff über NPM erfolgt. |