Gitea - Eine grafische Oberfläche für den Git-Server
Ich habe mir vor einiger Zeit einen Git-Server in einer virtuellen Box eingerichtet, was bis jetzt wunderbar funktioniert. Da aber ein Web Frontend ganz nett wäre und es ein paar Dinge vereinfachen würde, habe ich mich entschlossen Gitea
zu installieren und darüber dann die Git-Repos zu verwalten.
Die virtuelle Box wird von mir bei Bedarf einfach gestartet und ist dann im Netzwerk, wie ein normaler Client oder eben Server über eine eigene IP-Adresse verfügbar. Anschließend kann ich meine Git-Repos ganz einfach auf den Server pushen oder von dort abholen. Da die Sicherung und Wiederherstellung einer VirtualBox sehr einfach geht, kann ich das auch als eine einfache Datensicherung für mich verwenden.
Damit die Festplatte meines Laptops nicht der Platz ausgeht, habe ich die virtuelle Maschinen auf einen angeschlossenen USB-Stick (z.B. SanDisk Ultra Fit) ausgelagert.
Die Installation von Git und Gitea könnt ihr auch auf jedem anderen Linux-System nachbauen. Auch auf einem kleinen Raspberry Pi ist das Ganze lauffähig, damit ihr schnell und einfach euren eigenen Git-Server aufsetzen könnt. In Zeiten von Let´s Encrypt könnt ihr den dann auch über das Internet sicher zugänglich machen.
Gitea
Gitea ist eine leichtgewichtige Webanwendung für Softwareverwaltungsplattform, die als Web Frontend für Git verwendet werden kann.
In diesem Artikel zeige ich wie Gitea Schritt-für-Schritt auf einem Ubuntu installiert werden kann. Ich verwende dazu eine virtuelle Maschine, die ich in Oracles VirtualBox eingerichtet habe.
(Anleitung für die Installation eines virtuellen Ubuntu-Systems auch Python Entwicklungsumgebung – Schritt 1: Ubuntu virtualisieren
Hier im Blog habe ich bereits einige Artikel zu Git geschrieben, auch wie sich die Versionsverwaltung unter Ubuntu installieren lässt. (👉 Git installieren unter Ubuntu und Windows)
Ubuntu vorbereiten
Bevor es überhaupt losgeht, ist das Ubuntu-Betriebssystem zu aktualisieren.
sudo apt update && sudo apt dist-upgrade
Die installierte Git-Version könnt ihr ganz einfach überprüfen. Solltet ihr nichts angezeigt bekommen, dann installiert Git schnell noch nach. (👉 Git installieren unter Ubuntu und Windows
git --version
Gitea wird auf GitHub verwaltet, von wo wir nachher die Dateien per "wget" herunterladen werden. Da das Tool in der Standardinstallation von Ubuntu nicht enthalten ist, muss es noch aus den Repositories installiert werden.
sudo apt -y install wget
Installation des Webservers nginx
Gitea ist ein Web Frontend, dass einen Webbrowser benötigt. Ihr habt da die Wahl zwischen Apache2 und Nginx. Für diese Installation habe ich mit für Nginx entschieden. Eine weitere Einrichtung und Konfiguration habe ich nicht vorgenommen, da ich das Ganze nur in meinem Netzwerk laufen lasse.
sudo apt install nginx
Installation von MariaDB
Ich verwende für Gitea den Datenbank-Server MariaDB
, den ich bereits für meine Nextcloud verwende.
Codeberg
Dein Weg zur eigenen Nextcloud
Die notwendigen Pakete lassen sich ganz einfach aus den Ubuntu-Repositories installieren.
sudo apt install mariadb-server mariadb-client
Nach der Installation sollte der Datenbank-Server unbedingt durch ein paar kleine Einstellungen abgesichert werden.
Dazu ruft ihr das Konfigurationsmenü mit dem Befehl auf.
sudo mysql_secure_installation
Es werden daraufhin einige Dinge abgefragt, die ihr wie folgt, beantworten könnt.
Enter current password for root (enter for none): ENTER (Kein Passwort gesetzt)
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
Damit die Änderungen alle geladen werden, startet den MariaDB-Server neu.
sudo systemctl restart mariadb.service
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Datenbank für Gitea erstellen
In diesem Abschnitt erstellen wir eine neue Datenbank für "Gitea".
Meldet euch dazu am MariaDB-Server mit dem Benutzer ROOT an und gebt das oben vergebenen Passwort ein.
sudo mysql -u root -p
Nun erstellt eine Datenbank mit dem Namen gitea
.
CREATE DATABASE gitea;
Nach der Datenbank erstellen wir noch einen eigenen Benutzer für Gitea.
Ändert das Passwort zwingend ab!
Achtet dabei darauf, dass ihr das Zeichen ' im Passwort nicht verwendet, sonst erkennt MariaDB die Syntax nicht mehr. Wie ihr im Beispiel seht werden Benutzernamen und Passwort durch ein ' begrenzt, nutzt ihr das Zeichen auch, kommt MariaDB durcheinander.
CREATE USER 'giteauser'@'localhost' IDENTIFIED BY '123456';
Für den neuen Benutzer giteauser
muss noch ein Zugriff auf die Datenbank "gitea" eingerichtet werden.
GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
Die Änderungen werden mit dem folgenden Befehl angewendet.
FLUSH PRIVILEGES;
Danach könnt ihr euch vom MariaDB-Server abmelden, die Konfiguration ist dort abgeschlossen.
EXIT;
Vorbereitung der Gitea-Umgebung
Auf Betriebssystemebene, also in unserem Ubuntu, müssen noch ein paar Einstellungen vorgenommen werden, damit Gitea funktioniert.
Es wird ein eigener Benutzer mit dem Namen git
für Gitea angelegt.
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
Danach werden die erforderlichen Verzeichnisse und die entsprechenden Rechte angelegt und festgelegt.
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
Gitea Installation
Die ganzen Vorbereitungen für die Installation von Gitea sind abgeschlossen und wir können das Tool endlich installieren.
Schaut vor der Installation auf der offiziellen Website nach, ob es eine neue Gitea-Version gibt und passt den wget-Link entsprechend an. https://gitea.io
Mit "wget" lassen sich alle Gitea-Dateien auf die Festplatte unserer virtuellen Box herunterladen.
Wechselt zuvor in das Home-Verzeichnis eures Benutzers.
cd /home/benutzername/
sudo wget -O gitea https://dl.gitea.io/gitea/1.13.1/gitea-1.13.1-linux-amd64
Nach dem Download befinden sich die ganzen Dateien dann im Home-Verzeichnis eures Benutzers.
Zuerst machen wir das Ganze ausführbar und verschieben es dann in das richtige Verzeichnis.
sudo chmod +x gitea
sudo mv gitea /usr/local/bin/gitea
Gitea automatisch starten
Gitea startet noch NICHT nach jedem Start des Betriebssystems automatisch. Das lässt sich ändern, indem eine neue Datei mit dem nachfolgenden Inhalt angelegt wird.
sudo nano /etc/systemd/system/gitea.service
In die neue Datei gitea.service
tragt ihr folgendes ein
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysqld.service
[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
Anschließend starten wir alles neu
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
Die installierte Gitea-Version lässt sich auch schon mit dem Befehl auf der Konsole abfragen.
gitea --version
Der Status des "gitea.services" lässt sich mit erfragen
sudo systemctl status gitea
Gitea im Webbrowser aufrufen und Konfiguration abschließen
Gitea lässt sich im Webbrowser eurer Wahl aufrufen. Das Tool lauscht dabei standardmäßig auf den Port 3000.
http://192.168.xxx.xxx:3000
- Datenbanktyp: MariaDB = MySQL
- Host: Eintrag belassen, wie er ist
- Benutzername: ändern in `giteauser"_**, wie oben in der Datenbank definiert
- Passwort: Das von euch vergebene Passwort für den Benutzer "giteauser" eingeben
- Datenbankname: Eintrag belassen, wie er ist
- Repository-Verzeichnis: Den Pfad könnt ihr anpassen, jedoch müsst ihr darauf achten, dass der Benutzer
giteauser
dort Schreibrechte hat.
Ganz am Ende könnt ihr noch ein paar weitere Einstellungen vornehmen.
E-Mail-Einstellungen
- In der "app.ini" lassen sich die Einstellungen auch nachher noch eintragen. In der offiziellen Doku gibt es dazu ein Beispiel für GMail. (https://docs.gitea.io/en-us/email-setup/)Sonstige Server- und Drittserviceeinstellungen
Administratoreneinstellungen
- Ich habe gleich einen Benutzer als Hauptadministrator eingetragen. Solltet ihr das nicht machen, wird der erste angelegte Benutzer der Hauptadmin für Gitea.
Nach einem Klick auf den Button "Gitea installieren" dauert es eine kleine Weile, bis die Installation durchgelaufen ist und die Seite neu geladen wird.
Wenn ihr den Port geändert habt, dann bekommt ihr den Fehler 4040 Not Found
zurück, denn ihr werdet schon auf die neue "Gitea Base URL" Adresse weitergleitet.
Die Lösung des Problems, den gitea-Service neu starten.
sudo systemctl restart gitea
Ihr könnt jederzeit die Port-Konfiguration anpassen. Dazu editiert ihr mit einem Editor die Datei app.ini
sudo nano /etc/gitea/app.ini
Im Abschnitt server
könnt ihr dann die IP-Adresse und den Port und die anderen Einstellungen jederzeit wieder ändern.
Das wars! Ihr könnt Gitea nun verwenden. :-)
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️