Gitea ist ähnlich wie GitLab oder GitHub ein Web-Frontend für Versionskontrollsoftware, wie z.B. git.
Es steht unter MIT-Lizenz und lässt sich hervorragend in Docker auf unserem Homeserver installieren.
git
Das Versionsverwaltungstool git wurde ab 2005 von Linus Torvalds entwickelt und ist heute in vielen Softwareentwicklungsprojekten zur Sourcecode Versionierung im Einsatz.
git unterstützt kollaborative Softwareentwicklung, Branching. Im Gegensatz zu älteren Versionierungssystemen wie cvs oder Subversion legt git zunächst ein lokales Repository an, dass du dediziert auf den Server übertragen musst.
Installation von gitea
Wie schon bekannt legst du zunächst das Directory für das Volume an.
sudo mkdir /opt/gitea
sudo chown -R pi:pi /opt/gitea
Danach speicherst du den folgenden Code in der Datei docker-compose.yml
version: "3"
services:
pihole:
container_name: gitea
image: kunde21/gitea-arm:latest
ports:
- "3000:3000/tcp"
- "23:22/tcp"
# Volumes store your data between container upgrades
volumes:
- '/opt/gitea:/data'
restart: unless-stopped
gitea benötigt zwei Ports: 3000 für die Benutzeroberfläche und 22 für SSH
Jetzt startest du den Container mit
docker-compose up -d
Nachdem das Image heruntergeladen wurde und der Container erzeugt ist, kannst du die Weboberfläche aufrufen
http://<hostname>:3000
Für <hostname>
setzt du natürlich den hostname oder dir IP deines Raspberry Pi ein. Du landest dann auf der Konfigurationsseite für die Installation von Gitea
Konfiguration
Lass alle Werte auf den Vorgaben stehen nur bei „ssh-Server-Domain“ und „Gitea Basis-URL“ änderst du localhost in den Hostnamen deines Raspis.
Danach klickst du auf „Gitea installieren“ Der Installationsvorgang kann u.U. eine Weile dauern. Danach rufst du erneut den obigen URL auf. Auf der Seite, die dann erscheint, klickst du auf „Registrieren“ und legst dir deinen Benutzeraccount an. Der erste Benutzer ist dann automatisch Administrator.
Nachdem du mit dem Benutzer angemeldet bist, legst du mit dem „+“ Button oben rechts ein neues Repository an.
Trag als Name „testrepo“ ein und belasse alle anderen Werte auf den Voreinstellungen. Klicke dann am Seitenende auf „Repository erstellen“.
Jetzt ist dein Repository bereit für den Einsatz. Auf deinem Raspi (oder einem anderen kannst du jetzt den git Client installieren
sudo apt install git
Und dann von dem Repository eine lokale Kopie anlegen
git clone http://gabbo:3000/raspithek/testrepo
Der Hinweis, dass du anscheinend ein leeres Repository gecloned hast, ist verständlich, da du noch keine Dateien dort abgelegt hast.
Dateien verwalten
Lege jetzt einfach eine Textdatei test.txt
im Repositoryverzeichnis an. Der Inhalt ist beliebig.
Nach dem Speichern stellst du die Datei unter Versionsverwaltung
git add test.txt
Danach überträgst du die Datei ins lokale Repository
git commit -a
Bei jedem Commit öffnet sich ein Editor, damit du die Änderungen in dem Commit kurz beschreibst. Dies ist gerade in großen Projekten mit vielen Mitarbeitern wichtig. Daher zwingt git doch zu dieser Eingabe.
Zuletzt überträgst du deine lokalen Änderungen auf den Gitea Server.
git push -u origin master
Beim ersten Push in ein neues Repository musst du einen Branch angeben, dies ist beim weiteren Arbeiten nicht mehr nötig.
Wenn du jetzt wieder in Gitea wechselst, kannst du dir im Repository deine neue Datei anzeigen lassen.
Falls du planst, von außen auf gitea zu zugreifen, empfehle ich dir, nginx davor zu schalten, um den Port 3000 nicht nach außen öffnen zu müssen und eine verschlüsselte Verbindung zu haben.
Update vom 09.11.23: network_mode: host aus der docker-compose.yml entfernt.