Doku: Git-Push per HTTPS+Token als Standardweg, SSH-Port-Mapping via Compose-Edit als Variante B
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
7b791c5977
commit
d1df0cd2ec
1 changed files with 32 additions and 12 deletions
|
|
@ -40,9 +40,9 @@ PermitRootLogin prohibit-password
|
||||||
| 22 | TCP | SSH zum Server (Administration) |
|
| 22 | TCP | SSH zum Server (Administration) |
|
||||||
| 80 | TCP | HTTP (nur für Let's-Encrypt-Zertifikate und Umleitung auf HTTPS) |
|
| 80 | TCP | HTTP (nur für Let's-Encrypt-Zertifikate und Umleitung auf HTTPS) |
|
||||||
| 443 | TCP | HTTPS (Coolify-Proxy: alle Web-Oberflächen) |
|
| 443 | TCP | HTTPS (Coolify-Proxy: alle Web-Oberflächen) |
|
||||||
| 2222 | TCP | Git-SSH zu Forgejo (`git push/pull`) |
|
| 2222 | TCP | *Optional:* Git-SSH zu Forgejo — nur nötig, wenn du Variante B in Schritt 5 nutzt |
|
||||||
|
|
||||||
Alles andere bleibt zu — insbesondere **8000** (Coolify-Dashboard, siehe Schritt 2) und **3000** (Forgejo-Weboberfläche; sie läuft nur intern hinter dem Proxy). Alternativ ohne Cloud Firewall: `ufw` mit genau diesen vier Regeln (`ufw allow 22,80,443,2222/tcp && ufw enable`).
|
Alles andere bleibt zu — insbesondere **8000** (Coolify-Dashboard, siehe Schritt 2) und **3000** (Forgejo-Weboberfläche; sie läuft nur intern hinter dem Proxy). Alternativ ohne Cloud Firewall: `ufw` mit genau diesen Regeln (`ufw allow 22,80,443/tcp && ufw enable`).
|
||||||
|
|
||||||
**Updates automatisieren:**
|
**Updates automatisieren:**
|
||||||
|
|
||||||
|
|
@ -71,18 +71,17 @@ Dann absichern:
|
||||||
|
|
||||||
1. In Coolify: **Projects → dein Projekt → + New → Service** → in der Vorlagen-Liste **Forgejo** wählen (Variante mit SQLite reicht für einen Einzelnutzer völlig; Postgres wäre Overkill).
|
1. In Coolify: **Projects → dein Projekt → + New → Service** → in der Vorlagen-Liste **Forgejo** wählen (Variante mit SQLite reicht für einen Einzelnutzer völlig; Postgres wäre Overkill).
|
||||||
2. Im Service unter **Domains** für den Web-Container `https://git.deine-domain.de` eintragen → HTTPS-Zertifikat kommt automatisch.
|
2. Im Service unter **Domains** für den Web-Container `https://git.deine-domain.de` eintragen → HTTPS-Zertifikat kommt automatisch.
|
||||||
3. **Git-SSH-Port freischalten:** Im Service unter *Ports Mappings* den Container-Port `22` auf Host-Port `2222` mappen (Eintrag `2222:22`). Ohne dieses Mapping funktioniert nur HTTPS-Klonen — auch okay, aber SSH ist bequemer.
|
3. **Umgebungsvariablen** (Environment Variables) des Forgejo-Containers ergänzen — so ist Forgejo schon beim ersten Start korrekt konfiguriert:
|
||||||
4. **Umgebungsvariablen** (Environment Variables) des Forgejo-Containers ergänzen — so ist Forgejo schon beim ersten Start korrekt konfiguriert:
|
|
||||||
|
|
||||||
```
|
```
|
||||||
FORGEJO__service__DISABLE_REGISTRATION=true # niemand außer dir kann Accounts anlegen
|
FORGEJO__service__DISABLE_REGISTRATION=true # niemand außer dir kann Accounts anlegen
|
||||||
FORGEJO__server__DOMAIN=git.deine-domain.de
|
FORGEJO__server__DOMAIN=git.deine-domain.de
|
||||||
FORGEJO__server__ROOT_URL=https://git.deine-domain.de/
|
FORGEJO__server__ROOT_URL=https://git.deine-domain.de/
|
||||||
FORGEJO__server__SSH_DOMAIN=git.deine-domain.de
|
|
||||||
FORGEJO__server__SSH_PORT=2222 # damit angezeigte Clone-URLs den richtigen Port enthalten
|
|
||||||
```
|
```
|
||||||
|
|
||||||
5. **Deploy** klicken. Danach `https://git.deine-domain.de` öffnen → Ersteinrichtung bestätigen (die Werte sind durch die Variablen schon richtig) → **Admin-Konto anlegen**.
|
> **Hinweis Git-SSH:** Die Service-Vorlage bietet kein Port-Mapping in der UI an. Das ist okay — wir pushen standardmäßig über HTTPS (Schritt 5, Variante A), dafür braucht es keinen zusätzlichen Port. Wer trotzdem SSH will: Variante B in Schritt 5.
|
||||||
|
|
||||||
|
4. **Deploy** klicken. Danach `https://git.deine-domain.de` öffnen → Ersteinrichtung bestätigen (die Werte sind durch die Variablen schon richtig) → **Admin-Konto anlegen**.
|
||||||
|
|
||||||
## 4. Forgejo absichern
|
## 4. Forgejo absichern
|
||||||
|
|
||||||
|
|
@ -90,18 +89,38 @@ FORGEJO__server__SSH_PORT=2222 # damit angezeigte Clone-URLs den
|
||||||
- **Kontrolle Registrierung:** Site Administration → Configuration — „Registrierung deaktiviert" muss aktiv sein (kommt aus der Umgebungsvariable).
|
- **Kontrolle Registrierung:** Site Administration → Configuration — „Registrierung deaktiviert" muss aktiv sein (kommt aus der Umgebungsvariable).
|
||||||
- Da Forgejo nur über den Coolify-Proxy (HTTPS) und Port 2222 (Git-SSH mit Schlüssel) erreichbar ist, ist die Angriffsfläche damit klein: kein offenes Web-Registrierungsformular, keine Passwort-Logins über SSH.
|
- Da Forgejo nur über den Coolify-Proxy (HTTPS) und Port 2222 (Git-SSH mit Schlüssel) erreichbar ist, ist die Angriffsfläche damit klein: kein offenes Web-Registrierungsformular, keine Passwort-Logins über SSH.
|
||||||
|
|
||||||
## 5. SSH-Schlüssel hinterlegen und Planty pushen
|
## 5. Repository anlegen und Planty pushen
|
||||||
|
|
||||||
In Forgejo: **Einstellungen → SSH/GPG-Schlüssel** → Inhalt von `~/.ssh/id_ed25519.pub` (vom Mac) einfügen.
|
In der Web-UI **Neues Repository** → Name `planty` → **ohne** README/Lizenz initialisieren (das Repo existiert lokal schon).
|
||||||
|
|
||||||
Dann in der Web-UI **Neues Repository** → Name `planty` → **ohne** README/Lizenz initialisieren (das Repo existiert lokal schon). Auf dem Mac:
|
### Variante A: HTTPS mit Zugriffs-Token (empfohlen — kein extra Port nötig)
|
||||||
|
|
||||||
|
1. In Forgejo: **Einstellungen → Anwendungen → Zugriffstoken verwalten** → Token erzeugen (Berechtigung *repository: Lesen und Schreiben*). Das Token wird **einmalig** angezeigt — direkt kopieren.
|
||||||
|
2. Auf dem Mac:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd ~/Documents/Projekte/Planty
|
cd ~/Documents/Projekte/Planty
|
||||||
git remote add origin ssh://git@git.deine-domain.de:2222/<dein-nutzer>/planty.git
|
git remote add origin https://git.deine-domain.de/<dein-nutzer>/planty.git
|
||||||
git push -u origin main
|
git push -u origin main
|
||||||
```
|
```
|
||||||
|
|
||||||
|
3. Beim ersten Push fragt Git nach Zugangsdaten: Benutzername = dein Forgejo-Nutzer, Passwort = **das Token** (nicht dein Login-Passwort). macOS speichert es im Schlüsselbund — danach wirst du nie wieder gefragt.
|
||||||
|
|
||||||
|
### Variante B: Git-SSH (nur wenn gewünscht)
|
||||||
|
|
||||||
|
Die Forgejo-Vorlage hat kein Port-Mapping in der Coolify-UI, aber jede Service-Vorlage ist eine bearbeitbare Docker-Compose-Datei: Im Service **„Edit Compose File"** öffnen und beim Forgejo-Container ergänzen:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ports:
|
||||||
|
- "2222:22"
|
||||||
|
```
|
||||||
|
|
||||||
|
Zusätzlich als Umgebungsvariablen `FORGEJO__server__SSH_DOMAIN=git.deine-domain.de` und `FORGEJO__server__SSH_PORT=2222` setzen (für korrekte Clone-URLs), Port 2222 in der Hetzner-Firewall öffnen, Service neu deployen. Dann in Forgejo unter **Einstellungen → SSH/GPG-Schlüssel** den Inhalt von `~/.ssh/id_ed25519.pub` hinterlegen und als Remote nutzen:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote add origin ssh://git@git.deine-domain.de:2222/<dein-nutzer>/planty.git
|
||||||
|
```
|
||||||
|
|
||||||
Ab dann genügt nach jedem Arbeitsstand ein `git push`. Test: Die Dateien erscheinen unter `https://git.deine-domain.de/<dein-nutzer>/planty`.
|
Ab dann genügt nach jedem Arbeitsstand ein `git push`. Test: Die Dateien erscheinen unter `https://git.deine-domain.de/<dein-nutzer>/planty`.
|
||||||
|
|
||||||
## 6. Backups
|
## 6. Backups
|
||||||
|
|
@ -124,7 +143,8 @@ Zusammen mit dem lokalen Klon auf deinem Mac existieren damit immer mindestens d
|
||||||
## Sicherheits-Checkliste (zum Abhaken)
|
## Sicherheits-Checkliste (zum Abhaken)
|
||||||
|
|
||||||
- [ ] SSH: nur Schlüssel-Login, kein Passwort-Login, Root-Login nur mit Schlüssel
|
- [ ] SSH: nur Schlüssel-Login, kein Passwort-Login, Root-Login nur mit Schlüssel
|
||||||
- [ ] Firewall aktiv: nur 22, 80, 443, 2222 offen — 8000 und 3000 zu
|
- [ ] Firewall aktiv: nur 22, 80, 443 offen (2222 nur bei Git-SSH-Variante B) — 8000 und 3000 zu
|
||||||
|
- [ ] Forgejo-Zugriffstoken sicher verwahrt (macOS-Schlüsselbund), nicht in Dateien/Notizen
|
||||||
- [ ] Coolify: eigene HTTPS-Domain, Registrierung aus, 2FA aktiv
|
- [ ] Coolify: eigene HTTPS-Domain, Registrierung aus, 2FA aktiv
|
||||||
- [ ] Forgejo: Registrierung aus, 2FA für Admin aktiv, nur hinter HTTPS erreichbar
|
- [ ] Forgejo: Registrierung aus, 2FA für Admin aktiv, nur hinter HTTPS erreichbar
|
||||||
- [ ] Automatische Betriebssystem-Updates aktiv
|
- [ ] Automatische Betriebssystem-Updates aktiv
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue