IT Projekte / Home Lab / Smart Home / Games

Allgemein, Docker, Proxmox, Raspberry Pi

Gitea mit Docker auf dem Raspberry Pi installieren 2024

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.

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
Gitea - Ordner anlegen
Gitea – Ordner anlegen

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
Gitea - Docker Compose Datei anlegen
Gitea – Docker Compose Datei anlegen

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.

Gitea - Erstkonfiguration
Gitea – Erstkonfiguration
Gitea - Erstkonfiguration Teil 2
Gitea – Erstkonfiguration Teil 2

4. Gitea Nutzer anlegen

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

Gitea - Neuen Nutzer anlegen
Gitea – Neuen Nutzer anlegen

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‘.

Gitea - Neue Migration anlegen
Gitea – Neue Migration anlegen

5.2 Platform auswählen

Wähle nun die Plattform, in meinem Falle GitHub, aus.

Gitea - Von wo soll eine Migration stattfinden?
Gitea – Von wo soll eine Migration stattfinden?

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

Gitea - Repository angeben
Gitea – Repository angeben

Und schon ist das Repository migriert worden.

Gitea - Repository wurde migriert
Gitea – Repository wurde migriert

5.4 Migrationseinstellungen vornehmen

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

Gitea - Einstellungen vornehmen
Gitea – Einstellungen vornehmen

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

Gitea - Mirror-Einstellungen anpassen
Gitea – Mirror-Einstellungen anpassen

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.

Titelbild von Gitea und Docker

Schreibe eine Antwort