Raspberry Pi: Gitea installieren
Ich schaue mir derzeit Alternativen zu GitHub und GitLab an. Deshalb habe ich mich nach Alternativen umgesehen. Als erste Alternative kam mir Gogs (Go Git Service) wieder in den Sinn. Bei der Google-Suche nach gogs hat mir die Google-Suche auch direkt gogs fork vorgeschlagen. Nachdem ich Gogs angesehen hatte, habe ich mir den Fork Gitea angesehen. Gitea ist ein von der Gogs-Community erstellter Fork, da der zentrale Entwickler wiederholt für Monate nicht erreichbar war und ist.
Gogs und Gitea sind beide sehr sparsam was den Ressourcenverbrauch angeht und beide erwähnen dass sie auf dem Raspberry Pi betrieben werden können. Der deutsche Text hierzu:
Gogs/Gitea hat minimale Systemanforderungen und kann selbst auf einem günstigen und stromsparenden Raspberry Pi betrieben werden
Nun geht es an die Installation:
sudo apt update sudo apt upgrade sudo apt install git mariadb-server-10.3 sudo adduser git sudo adduser git sudo su git
MariaDB fragt, zumindest unter Raspbian, bei der Installation leider nicht nach einem Passwort für den Benutzer root. Dieses muss man erst setzen. Dies geht wie folgt:
sudo mysql -u root -p
Dort den folgenden Befehl eingeben (‘geheim‘ muss durch ein sicheres Passwort ersetzt werden):
grant all on *.* to root@localhost identified by 'geheim' with grant option;
Datenbank für gitea erstellen:
create database gitea; flush privileges; quit; cd mkdir gitea wget https://dl.gitea.io/gitea/1.11/gitea-1.11-linux-arm-6 -O gitea chmod +x gitea sudo nano /etc/systemd/system/gitea.service
Dort einfügen:
[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target #After=mysqld.service #After=postgresql.service #After=memcached.service #After=redis.service [Service] # Modify these two values and uncomment them if you have # repos with lots of files and get an HTTP error 500 because # of that ### #LimitMEMLOCK=infinity #LimitNOFILE=65535 RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/home/git/gitea ExecStart=/home/git/gitea/gitea web Restart=always Environment=USER=git HOME=/home/git [Install] WantedBy=multi-user.target
Mit Strg + O, Enter & Strg + X die Datei speichern
sudo systemctl enable gitea.service sudo systemctl start gitea.service
Gitea ist, wie Gogs, über den Port 3000 erreichbar und kann nun eingerichtet werden.
Ich benutze Gogs schon ziemlich lang und bin recht früh auf Gitea umgestiegen (weil ich alle Entwickler dahinter vorher aus der Community kannte und schätzte). Kann also Gitea nur absolut weiterempfehlen.
Für den Betrieb auf dem heimischen Raspberry Pi empfehle ich noch einen NGinx-proxy vorzuschalten, damit man den Port weglassen kann. Wenn man zusätzlich noch eine Subdomain über hat und deren CNAME Record auf seinen Dyndns-Anbieter setzt kann man das ganze auch schön mit Letsencrypt absichern. Falls es da Fragen gibt, gerne fragen. 😉
Vielleicht bin ich ja etwas zu paranoid, aber ich halte einen MariaDB-Server auf dem Raspi bzw. seiner SD-Karte für keine gute Idee. Da würde die DB auf dem NAS, welches ja eh schon vorhanden ist, mehr Sinn machen und diese kann von der Gogs-/Gitea-Installation ja genauso gut benutzt werden.
@dakira: Das mit dem Nginx Proxy wollte bei mir nicht, mit dem Apache hat es dann funktioniert. Während ich mich über Gitea informiert bin ich auch auf deinen Beitrag „Gitea oder Gogs statt GitHub und GitLab“ gestoßen.
@Kay: Gitea läuft mittlerweile auf meiner Synology DS216j. Wie man Gitea auf einem Synology NAS installiert zeige ich demnächst.
Spricht ja nix dagegen, Gitea gleich komplett auf dem NAS zu installieren, aber die Installation kann durchaus auch auf dem Raspberry bleiben, welcher dann nur die Datenbank vom NAS benutzt. Gerade die Synology-Geräte bieten zumindest mal MariaDB 5 und 10 an und je nach dem welche Synology-Applikationen auf dem NAS installiert sind ist mindestens eine der beiden sowieso schon am laufen.
Hey Steven,
vielen Dank für deinen Beitrag! Da du dich in dem Thema auszukennen scheinst, wollte ich dich hier fragen, ob du mir evtl. bei meinem Problem weiterhelfen kannst.
Ich versuche Gitea in einem Docker hinter einen NGINX-Docker zu installieren. Soweit funktioniert eigentlich alles, außer die Web-GUI, welche sich nicht richtig aufbaut. Beschrieben hier: https://discourse.gitea.io/t/incomplete-chunked-encoding-in-subdirectory-with-docker-and-reverse-proxy/301
Wäre super, falls dir was einfällt!
Danke
Johannes