Kapitel 13/Tutorial.md aktualisiert

This commit is contained in:
Thomas committed 2025-10-16 10:58:44 +00:00
1 parent a30699207e
commit 6fdf6641f8
1 file changed
-199
View File
@@ -1,199 +0,0 @@
# 📝 Kapitel 15 – Git (Self-Hosted mit Gitea)
## 🎯 Ziel
In diesem Kapitel richten wir unser eigenes **Git-Kontrollzentrum mit Gitea** ein.
Wir geben nicht länger fremden Plattformen die alleinige Hoheit über unsere Daten, sondern holen uns die Kontrolle zurück.
Gitea ermöglicht uns, Konfigurationen, Skripte und Dokumente versioniert abzulegen – und bei Bedarf zusätzlich mit GitHub zu spiegeln.
So kombinieren wir **Datenhoheit im Homelab** mit der **Reichweite öffentlicher Plattformen**.
---
## 📖 Warum Gitea?
Viele Streamer und Technik-Nerds starten mit GitHub oder GitLab. Praktisch, aber:
- 🔒 Deine Daten liegen extern, oft ohne volle Kontrolle.
- 🚫 Private Projekte sind meist eingeschränkt oder kostenpflichtig.
- 🌍 Zugriff ist nur mit Internet möglich.
Mit **Gitea im eigenen Homelab** hast du dagegen:
- ✅ Volle Kontrolle über Repos und Nutzerverwaltung.
- ✅ Keine Abhängigkeit von Dritten.
- ✅ Zugriff auch offline oder im LAN.
- ✅ Trotzdem die Möglichkeit, Projekte mit GitHub zu spiegeln.
Kurz: Gitea ist leichtgewichtig, perfekt für Low-Budget-Homelabs und bietet trotzdem alle Kernfunktionen.
---
## ✅ Voraussetzungen
- LXC-Container mit **Debian 12 (Bookworm)**
- Empfohlen: **1 vCPU**, **512 MB – 1 GB RAM**, **≥ 5 GB Speicher**
- Netzwerkzugang (IPv4/IPv6)
- Optional: **Nginx Proxy Manager + DynDNS** (für Zugriff von außen)
- In diesem Kapitel installieren wir **Docker + Compose**
---
## 1️⃣ Container vorbereiten
```bash
apt update && apt upgrade -y
apt install -y curl gnupg lsb-release ca-certificates nano
```
👉 Wir aktualisieren den Container und stellen sicher, dass alle Werkzeuge für Installation und Konfiguration vorhanden sind.
---
## 2️⃣ Docker & Compose installieren
```bash
# Docker GPG-Key hinzufügen
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Repository hinzufügen
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# Installation
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
```
👉 Damit haben wir die Grundlage für Container im Homelab geschaffen.
---
## 3️⃣ Arbeitsverzeichnis & Compose-File
```bash
mkdir /gitea && cd /gitea
nano docker-compose.yml
```
**Beispiel `docker-compose.yml`:**
```yaml
version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea:/data
ports:
- "3000:3000" # Web
- "222:22" # SSH
restart: always
```
👉 Wichtig: UID/GID sorgen für saubere Dateirechte. Port 222 ist unser SSH-Zugang nach außen.
---
## 4️⃣ Container starten & prüfen
```bash
docker compose up -d
docker ps
```
👉 Jetzt sollte `gitea` laufen. Die Web-UI erreichst du unter Port 3000, SSH über Port 222.
---
## 5️⃣ Erstkonfiguration im Browser
Browser öffnen: `http://<IP>:3000`
Hier legst du die Basis deiner Instanz fest – was du jetzt einstellst, bestimmt dein weiteres Arbeiten.
### 5.1 Datenbankeinstellungen
- **Datenbanktyp:** `SQLite3` – leichtgewichtig, perfekt fürs Homelab.
- **Pfad:** `/data/gitea/gitea.db`
👉 Für große Teams: MariaDB/PostgreSQL möglich.
### 5.2 Server-Einstellungen
- **Seitentitel:** frei wählbar, z. B. *Bratonien Git*.
- **Run User:** `git` (Standard im Container).
- **Domain:** zunächst IP, später Subdomain via DynDNS/NPM.
- **SSH-Port:** `222` (wegen Mapping).
- **HTTP-Port:** `3000`.
- **Basis-URL:** `http://<IP>:3000/` – später mit HTTPS über NPM.
### 5.3 Speicherorte
- **Repo-Verzeichnis:** `/data/git/repositories`
- **LFS-Wurzelpfad:** leer lassen (Large File Storage nur für große Binärdateien).
### 5.4 Nutzer & Sicherheit
- **Registrierung:** deaktiviert (Admin legt Accounts an).
- **Gravatar:** aus (Datenschutz).
- **Offline-Modus:** an.
- **Passwort-Hash:** `pbkdf2` (Standard, sicher).
### 5.5 E-Mail
- Ohne SMTP reicht Dummy-Mail (z. B. `admin@localhost`).
- SMTP kann später für Passwort-Resets nachgerüstet werden.
### 5.6 Logging
- **Pfad:** `/data/gitea/log`
### 5.7 Administrator-Konto
- Benutzername + Passwort wählen.
- Dummy-Mail reicht.
👉 Danach klickst du auf *Installieren* – Gitea startet durch.
---
## 6️⃣ Erstes Repository in der Web-UI anlegen
Ein Repo ist das Herzstück deiner Arbeit. Lege jetzt dein erstes Projekt an:
- **Besitzer:** `admin` (oder Organisation).
- **Name:** `testprojekt` (klein, sprechend).
- **Sichtbarkeit:** privat oder öffentlich.
- **README:** anlegen (Startseite wirkt sofort vollständig).
- **Lizenz:** Für Content dieses Tutorials → **CC BY** (freie Nutzung, Namensnennung „Bratonien Tech“).
---
## 7️⃣ Repository per Terminal nutzen
```bash
# Lokal initialisieren
mkdir testprojekt && cd testprojekt
git init
# Remote hinzufügen
git remote add origin http://<IP>:3000/admin/testprojekt.git
echo "# Hallo Gitea" > README.md
git add .
git commit -m "Erster Commit"
# Push
git push -u origin master
```
👉 Mit SSH statt HTTP:
```bash
git remote set-url origin ssh://git@<domain-oder-ip>:222/admin/testprojekt.git
```
(SSH-Key im Userprofil hinterlegen.)
---
## 8️⃣ GitHub-Mirroring
- **Pull-Mirror:** GitHub → Gitea (Externe Projekte sichern).
- **Push-Mirror:** Gitea → GitHub (eigene Projekte zusätzlich sichtbar machen).
👉 Einrichtung im Repo unter *Settings → Mirroring*.
---
## ⚠️ Typische Stolperfallen
- ❌ **SSH-Port vergessen:** immer `222` eintragen.
- ❌ **UID/GID falsch:** Container kann nicht schreiben.
- ❌ **Lizenz ausgelassen:** bei Content immer **CC BY**.
- ❌ **SMTP erwartet:** nicht nötig fürs Homelab.
---
## ✅ Zusammenfassung
Wir haben Gitea erfolgreich im Container eingerichtet.
Ab sofort liegt unsere Arbeit **unter eigener Kontrolle** – mit der Option, Inhalte auf GitHub zu spiegeln.
Damit ist unser Homelab um einen weiteren Baustein reicher: **Versionskontrolle und Zusammenarbeit nach eigenen Regeln.**