200 lines
6.3 KiB
Markdown
200 lines
6.3 KiB
Markdown
# 🎬 Bratonien Tech – Kapitel 15: Git (Self-Hosted mit Gitea)
|
||
|
||
🎵 **Intro**
|
||
Szene: Talking Head (du oder Barney), Bratonien Tech Logo eingeblendet.
|
||
|
||
**Voiceover / Gesprochen:**
|
||
„Hallo und herzlich willkommen bei Bratonien Tech.
|
||
Ich bin [dein Name oder Barney] von Bratonien Cosplay.
|
||
Dieses Format ist für alle großen und kleinen Technik-Streamer, Nerds – oder die, die es noch werden wollen.
|
||
|
||
In dieser Reihe bauen wir aus einem alten Office-PC ein komplettes Homelab.
|
||
Oder wie ich es gerne nenne: Bratoniens Kontrollzentrum.
|
||
|
||
Heute beschäftigen wir uns mit Git – genauer gesagt mit Gitea.
|
||
Damit holen wir uns Versionskontrolle, Zusammenarbeit und Datensicherheit ins eigene Haus.
|
||
Und das Beste: wir können trotzdem eine Brücke zu GitHub schlagen.“
|
||
|
||
---
|
||
|
||
## 1. Warum Gitea?
|
||
Szene: Logos (GitHub, GitLab, Gitea).
|
||
|
||
**Voiceover:**
|
||
„Viele nutzen GitHub oder GitLab. Das ist praktisch – solange man den externen Dienst nutzen darf.
|
||
Aber was, wenn euer Account gesperrt wird? Oder ihr einfach selbst bestimmen wollt, wo eure Daten liegen?
|
||
|
||
Genau dafür setzen wir Gitea auf:
|
||
leichtgewichtig, schnell eingerichtet und perfekt für kleine Teams oder Streamer-Projekte.
|
||
So habt ihr die volle Kontrolle über eure Daten und könnt trotzdem GitHub als Schaufenster nutzen.“
|
||
|
||
---
|
||
|
||
## 2. Voraussetzungen
|
||
Szene: Textfolie mit Specs.
|
||
|
||
**Voiceover:**
|
||
„Wir arbeiten in einem Debian 12 LXC-Container.
|
||
Ein vCore, 512 MB bis 1 GB RAM und 5 GB Speicher reichen völlig aus.
|
||
Alles, was ihr braucht, habt ihr also wahrscheinlich schon daheim stehen.“
|
||
|
||
---
|
||
|
||
## 3. Installation vorbereiten
|
||
Szene: Terminalaufnahme.
|
||
|
||
**Voiceover:**
|
||
„Wir starten wie immer mit einem Update und den Basis-Tools.“
|
||
```bash
|
||
apt update && apt upgrade -y
|
||
apt install -y curl gnupg lsb-release ca-certificates nano
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Docker & Compose installieren
|
||
Szene: Terminal, Befehlseingaben mit Einblendung „Docker installieren“.
|
||
|
||
**Voiceover:**
|
||
„Anschließend installieren wir Docker und Docker Compose – das Fundament für unseren Gitea-Container.“
|
||
```bash
|
||
mkdir -p /etc/apt/keyrings
|
||
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||
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
|
||
|
||
apt update
|
||
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Verzeichnis & Compose-Datei
|
||
Szene: Editor mit docker-compose.yml.
|
||
|
||
**Voiceover:**
|
||
„Jetzt legen wir ein Verzeichnis für Gitea an und schreiben die Compose-Datei.
|
||
Damit definieren wir, wie der Container läuft.“
|
||
|
||
```yaml
|
||
version: "3"
|
||
|
||
services:
|
||
gitea:
|
||
image: gitea/gitea:latest
|
||
container_name: gitea
|
||
environment:
|
||
- USER_UID=1000
|
||
- USER_GID=1000
|
||
- DB_TYPE=sqlite3
|
||
restart: always
|
||
ports:
|
||
- "3000:3000"
|
||
- "222:22"
|
||
volumes:
|
||
- ./gitea:/data
|
||
```
|
||
|
||
**Voiceover-Ergänzung:**
|
||
„Die Werte USER_UID und USER_GID sorgen dafür, dass die Dateien dem gleichen Benutzer gehören wie in unserem LXC.
|
||
So können wir später auch außerhalb des Containers ohne Root-Rechte auf die Daten zugreifen.“
|
||
|
||
---
|
||
|
||
## 6. Container starten & prüfen
|
||
Szene: Terminal.
|
||
|
||
**Voiceover:**
|
||
„Wir starten den Container – und prüfen, ob Docker läuft und Gitea wirklich aktiv ist.“
|
||
```bash
|
||
docker compose up -d
|
||
systemctl status docker
|
||
docker ps
|
||
```
|
||
|
||
---
|
||
|
||
## 7. Browser-Aufruf & Ersteinrichtung
|
||
Szene: Browser → http://IP:3000 → Setup-Seite.
|
||
|
||
**Voiceover:**
|
||
„Im Browser sehen wir jetzt die Setup-Seite.
|
||
Für den ersten Test reicht die IP mit Port 3000.
|
||
Dauerhaft wollen wir Gitea natürlich über eine Subdomain mit HTTPS betreiben.
|
||
Wie das geht, haben wir bereits in den Kapiteln zu Nginx Proxy Manager und DynDNS gezeigt – die Links findet ihr unten in der Beschreibung.“
|
||
|
||
Szene: Setup-Formular.
|
||
|
||
**Voiceover:**
|
||
„Hier ändern wir den SSH-Port auf 222 und legen unseren Admin-Benutzer an.
|
||
Ein Klick auf Installieren – und unser eigenes Git-System ist fertig.“
|
||
|
||
Ergänzung für Vollständigkeit:
|
||
- Repo-Verzeichnis `/data/git/repositories`
|
||
- LFS leer lassen
|
||
- Gravatar deaktivieren, Offline-Modus aktivieren
|
||
- Admin-Mail: `admin@localhost` reicht
|
||
|
||
---
|
||
|
||
## 8. Erstes Repository
|
||
Szene: Gitea-Oberfläche → Neues Repo.
|
||
|
||
**Voiceover:**
|
||
„Wir melden uns mit unserem Admin an und erstellen ein erstes Repository.
|
||
Name vergeben, Sichtbarkeit einstellen – fertig.
|
||
Für Content nutzen wir hier CC BY als Lizenz – für echten Code wäre MIT üblich.“
|
||
|
||
---
|
||
|
||
## 9. Lokales Repo pushen
|
||
Szene: Terminal lokal.
|
||
|
||
**Voiceover:**
|
||
„Auf unserem Rechner initialisieren wir Git, verbinden es mit Gitea und machen den ersten Commit.“
|
||
```bash
|
||
mkdir testprojekt
|
||
cd testprojekt
|
||
git init
|
||
git remote add origin http://<IP>:3000/admin/testprojekt.git
|
||
echo "# Hallo Gitea" > README.md
|
||
git add .
|
||
git commit -m "Erster Commit"
|
||
git push -u origin master
|
||
```
|
||
|
||
**Voiceover-Ergänzung:**
|
||
„Wer lieber SSH nutzt: denkt daran, Port 222 einzutragen und vorher euren SSH-Key im Gitea-Profil zu hinterlegen.“
|
||
|
||
---
|
||
|
||
## 10. GitHub-Verbindung
|
||
Szene: Gitea-Repo → Einstellungen → Mirroring.
|
||
|
||
**Voiceover:**
|
||
„Das Highlight: Wir können Repos mit GitHub spiegeln.
|
||
So arbeiten wir privat auf unserem eigenen Git, haben aber gleichzeitig ein Backup oder präsentieren Projekte öffentlich auf GitHub.
|
||
Ich trage hier die GitHub-URL ein, aktiviere Push-Mirroring – und schon laufen alle Änderungen automatisch nach GitHub.“
|
||
|
||
---
|
||
|
||
## 11. Fazit & Ausblick
|
||
Szene: Dashboard von Gitea mit Repo-Übersicht.
|
||
|
||
**Voiceover:**
|
||
„Damit haben wir Gitea installiert, eingerichtet, unser erstes Repository erstellt und sogar die Verbindung zu GitHub aufgebaut.
|
||
|
||
Für mich persönlich ist das ein echter Gamechanger: ich weiß, dass meine Projekte bei mir sicher sind – und ich entscheide, was auf GitHub landet.
|
||
|
||
Im nächsten Kapitel kümmern wir uns um ein eigenes Wiki – damit wir Projekte nicht nur versionieren, sondern auch dokumentieren können.“
|
||
|
||
---
|
||
|
||
🎵 **Outro**
|
||
Szene: Bratonien Tech Outro / Logo.
|
||
|
||
**Voiceover:**
|
||
„Wenn dir dieses Video gefallen hat, abonniere Bratonien Tech und schau dir auch die anderen Kapitel unserer Reihe an.
|
||
Bis zum nächsten Mal – in Bratonien!“
|