Gitea ist eine Open Source Lösung zur Verwaltung von Code mittels Git. Hierbei sind Code Reviews, Paket Register, Teamkommunikation und CI/CD Pipelines mit inkludiert. Das Design von Gitea hat sich an GitHub, Bitbucket und GitLab. Ich werde darauf eingehen, wie Du Gitea auf Deinem Raspberry Pi installieren und betreiben kannst.
Inhaltsverzeichnis
Du benötigst Folgendes:
- Docker
Docker mittels Repository unter Debian installieren
Docker auf dem Raspberry Pi 4 installieren
1. Ordner anlegen
Als ersten Schritt lege ich einen neuen Ordner gitea und darin die Ordner data
, config
und für die MySQL Datenbank den Ordner mysql
an.
mkdir gitea
cd gitea
mkdir data
mkdir config
mkdir mysql

2. Docker Compose Datei in Ordner gitea erstellen
Erstelle jetzt die Docker Compose Datei im gitea Ordner, welcher die benötigten Informationen für die Docker images und zusammenstellung der Container beinhaltet.
nano docker-compose.yml

Folgendes fügst Du der Datei hinzu:
version: "2"
services:
server:
image: gitea/gitea:1.22.2-rootless
environment:
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
depends_on:
- db
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
volumes:
- ./mysql:/var/lib/mysql
Du legst zwei Services / Container namens server
und db
an, einmal mit dem Image von Gitea und einmal mit dem Image vom MySQL. Beide sollen immer gestartet sein und das auch nach einem Neustart, angegeben mit dem Flag restart: allways
. Sowohl der server
– als auch der db
-Container verfügen über Environments, welche bei der Datenbank, Nutzer, Passwort und Datenbank angeben und beim Server die Verbindung zur Datenbank. Achte hier darauf, wenn Du die Felder änderst, wie das Passwort, dass diese identisch zwischen den Container sind. Damit die Daten persistent gespeichert und die zuvor angelegten Ordner genutzt werden. Werden die einzelnen Ordner mit Volumens gemountet.
Beim Server kommen die Ordner für die Zeit noch hinzu, und dies als read only. Dem Server wurden die Ports 3000 und 2222 zugewiesen, wobei der Port 3000 die Weboberfläche darstellt und Du hier, wenn gewünscht den Port links auch auf einen anderen ändern darfst. Zu guter Letzt, damit der Server auch die Datenbank erreichen und finden kann, wird der Datenbank-Container mit dem depends_on
Flag dem Server bekannt gemacht.
Speichere und schließe den Editor mit Strg + S und Strg + X.
Starte die Datei mit folgendem Befehl:
docker compose up -d
Sind die Images erfolgreich heruntergeladen und die Container gebaut, kannst Du Gitea über den Port 3000 und die IP-Adresse Deines Hosts, wenn Du ihn nicht geändert hast, erreichen.
3. Gitea installieren
Hier kannst Du die Einstellungen noch mal kontrollieren und am Ende unten dann auf Gitea installieren klicken.


4. Gitea Nutzer anlegen
Wenn Du wie noch keinen expliziten Administrator Account angelegt hast, dann wird der jetzt angelegte Account automatisch Administrations-Rechte erhalten.

Ist dies geschehen, hast Du die Installation auch schon erfolgreich abgeschlossen.
5. GitHub zu Gitea Migrieren / spiegeln
Kann ich meine Repositorys von zum beispiel GitHub auf zu meinem Gitea migrieren? Ja es geht und das schnell udn einfach. Bei meiner Rechereche dafür bin ich auf folgenden Beitrag gestoßen: GitHub Repositorys zum selbst gehostetem Gitea spiegeln
In diesem werden folgende Schritte erklärt:
5.1 Eine neue Migration anlegen
Klicke oben rechts auf das Plus und dann auf ‚Neue Migration‘.

5.2 Platform auswählen
Wähle nun die Plattform, in meinem Falle GitHub, aus.

Kopiere den Link zu Deinem Repository hinein und setze den Haken bei den Migrationsoptionen. Das ist an dieser Stelle wichtig, damit die Daten auch mit geliefert werden.
5.3 Repository migrieren

Und schon ist das Repository migriert worden.

5.4 Migrationseinstellungen vornehmen
Über den Reiter Einstellungen auf der rechten Seite kannst Du die Mirror-Einstellungen vornehmen.

Ich habe mein Intervall auf 24 gestellt, da mein Gitea als reines Backup von GitHub fungieren soll.

Fazit
Wie Du sehen kannst ist es sehr schnell und einfach Gitea mit einer MySQL Datenbank mittel Docker anzulegen. Für den Heimgebrauch und meine Anforderungen ist es vollkommen ausreichend.
Quellen:
- https://docs.gitea.com/ (28.09.2024, 17:03)
- https://docs.gitea.com/installation/install-with-docker-rootless#mysql-database (28.09.2024, 19:05)
- https://gnulinux.ch/github-repositorys-zum-selbst-gehostetem-gitea-spiegeln (04.10.2024, 16:25)
Titelbild von Gitea und Docker
Schreibe eine Antwort