Wie man den Gitea Self-hosted Git Service mit Docker auf Ubuntu 18.04 installiert.
Gitea ist ein Fork von Gogs, dem einfach zu bedienenden, selbst gehosteten Git-Service. Es ist ähnlich wie GitHub, Bitbucket und Gitlab. Gitea ist eine einfach zu bedienende Code-Hosting-Lösung, die in Go geschrieben wurde und mit minimalen Hardwareanforderungen ausgeführt werden kann. Es ist eine plattformübergreifende Anwendung, die überall ausgeführt werden kann Go kann kompiliert werden, wie z.B. Windows, Linux, MacOS, ARM etc.
In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie den leichten Git-Dienst mit Gitea installieren und konfigurieren. Wir werden den Gitea-Server mit Docker und die PostgreSQL-Datenbank sowie den Traefik Reverse-Proxy einsetzen. Für diesen Leitfaden verwenden wir den neuesten Ubuntu 18.04 Server.
Voraussetzungen
- Ubuntu 18.04.
- Root-Rechte
Was werden wir tun?
- Docker-CE installieren
- Docker Compose installieren
- Bereitstellen von Gitea als Container über Docker
- Gitea nach der Installation
- Erstes Repository anlegen
- Testen des ersten Commits
Schritt 1 – Docker-CE installieren
Der erste Schritt, den wir für dieses Handbuch tun werden, ist die Installation der Docker Community Edition auf dem Ubuntu 18.04 Server. Wir werden das Docker CE-Paket aus dem offiziellen Docker-Repository installieren.
Fügen Sie das Docker- und Docker-Repository hinzu, indem Sie die folgenden Befehle ausführen.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Der Befehl ‚add-apt-repository‘ aktualisiert das Repository automatisch.
Installieren Sie nun das Docker CE-Paket.
sudo apt policy docker-ce sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu
Wenn die Installation abgeschlossen ist, starten Sie den Docker-Dienst und aktivieren Sie ihn, damit er jedes Mal beim Systemstart gestartet werden kann.
sudo systemctl start docker sudo systemctl enable docker
Docker CE ist auf dem Ubuntu 18.04 Server lauffähig. Überprüfen Sie die Installation, indem Sie die Docker-Version überprüfen.
docker version
oder den Docker „Hallo-Welt“ laufen lassen.
docker run hello-world
Schritt 2 – Docker Compose installieren
Docker-Compose ist ein Befehlszeilenwerkzeug zur Definition und Verwaltung von Multi-Container-Docker-Anwendungen. Es ermöglicht Ihnen, einen Container als Dienst zu erstellen, der sich ideal für Ihre Entwicklungs-, Test- und Stagingumgebung eignet.
Installieren Sie Docker Compose, indem Sie die Binärdatei herunterladen und sie zu einer ausführbaren Datei machen.
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Überprüfen Sie nun den Befehl docker-compose.
docker-compose version
Docker Compose ist nun installiert.
Schritt 3 – Deployment von Gitea als Docker Container
In diesem Schritt erstellen wir ein neues Docker-Compose-Skript, das alle Dienstekonfigurationen einschließlich PostgreSQL-Datenbank und Traefik Reverse-Proxy enthält. Wir werden alle Bereitstellungsdateien auf dem Verzeichnis namens’deployment‘ einrichten.
Eigenes Docker-Netzwerk erstellen
Bevor Sie die Bereitstellungskonfiguration erstellen, erstellen wir ein neues benutzerdefiniertes Bridge-Netzwerk. Es wird für den externen Dienst traefik reverse proxy verwendet.
Überprüfen Sie die Liste der Docker-Netzwerke.
docker network ls
Erstellen Sie nun ein neues benutzerdefiniertes Bridge-Netzwerk namens’hakasenet‘.
docker network create hakasenet
Überprüfen Sie es noch einmal.
docker network ls
Jetzt erhalten Sie das Netzwerk’hakasenet‘ auf der Liste.
Einrichten des Bereitstellungs-Verzeichnisses und der Dateien
Erstellen Sie ein neues Verzeichnis namens’deployment‘ und das Skript’docker-compose.yml‘ darauf.
mkdir deployment; cd deployment touch docker-compose.yml
Erstellen Sie nun das neue Verzeichnis’gitea‘ und’postgres‘ Datenträger.
mkdir -p gitea/ postgres/
Erstellen Sie eine neue Datei’acme.json‘ und ändern Sie die Berechtigung der Datei. Sie wird zum Speichern von Letsencrypt-Daten verwendet.
touch acme.json chmod 600 acme.json
Erstellen Sie nun die globale traefik-Konfigurationsdatei’traefik.toml‘.
touch traefik.toml
Und unten sind Dateien und Verzeichnisse, die wir für die Gitea-Installation mit Docker haben.
tree
Einrichten des PostgreSQL-Dienstes
Der Datenbankdienst PostgreSQL ist der erste Dienst, den wir konfigurieren möchten. Der Datenbankdienst wird nur im internen Docker-Netzwerk ausgeführt.
Und wir werden das Postgres 9.6 Image verwenden, ‚gitea‘ als Datenbanknamen, Benutzer und Passwort verwenden und das Postgres-Datenvolumen einrichten.
Bearbeiten Sie die Datei’docker-compose.yml‘ mit vim.
vim docker-compose.yml
Füge die folgenden Konfigurationen ein.
version: "3" networks: hakasenet: external: true internal: external: false services: db: image: postgres:9.6 restart: always environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea labels: - "traefik.enable=false" networks: - internal volumes: - ./postgres:/var/lib/postgresql/data
Speichern und beenden.
Einrichtung Traefik Reverse Proxy
Nun werden wir den Traefik Reverse Proxy für unsere Gitea-Installation konfigurieren.
Der Traefik-Dienst wird unter HTTP- und HTTPS-Standardports ausgeführt, die auf dem benutzerdefinierten Bridge-Netzwerk namens’hakasenet‘ laufen, und wir werden ihn so konfigurieren, dass er die Letsencrypt-Zertifikate verwendet, die in der Datei’traefik.toml‘ definiert werden.
Bearbeiten Sie das Kompositionsskript.
vim docker-compose.yml
Konfigurationen in die db-Service-Konfiguration einfügen.
traefik: image: traefik:latest command: --docker ports: - 80:80 - 443:443 labels: - "traefik.enable=true" - "traefik.backend=dashboard" - "traefik.frontend.rule=Host:traefik.hakase-labs.io" - "traefik.port=8080" networks: - hakasenet volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml - ./acme.json:/acme.json container_name: traefik restart: always
Speichern und beenden.
Bearbeiten Sie nun die Konfigurationsdatei’traefik.toml‘.
vim traefik.toml
Und fügen Sie die folgende Konfiguration ein.
#Traefik Global Configuration debug = false checkNewVersion = true logLevel = "ERROR" #Define the EntryPoint for HTTP and HTTPS defaultEntryPoints = ["https","http"] #Define the HTTP port 80 and #HTTPS port 443 EntryPoint #Enable automatically redirect HTTP to HTTPS [entryPoints] [entryPoints.http] address = ":80" [entryPoints.http.redirect] entryPoint = "https" [entryPoints.https] address = ":443" [entryPoints.https.tls] #Enable Traefik Dashboard on port 8080 #with basic authentication method #hakase and password [entryPoints.dash] address=":8080" [entryPoints.dash.auth] [entryPoints.dash.auth.basic] users = [ "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.", ] [api] entrypoint="dash" dashboard = true #Enable retry sending a request if the network error [retry] #Define Docker Backend Configuration [docker] endpoint = "unix:///var/run/docker.sock" domain = "hakase-labs.io" watch = true exposedbydefault = false #Letsencrypt Registration #Define the Letsencrypt ACME HTTP challenge [acme] email = "hakase@gmail.com" storage = "acme.json" entryPoint = "https" OnHostRule = true [acme.httpChallenge] entryPoint = "http"
Speichern und beenden.
Hinweis:
- Ändere die acme letsencrypt E-Mail mit deiner gültigen E-Mail-Adresse.
Gitea Service einrichten
Bearbeiten Sie die Konfigurationsdatei’docker-compose.yml‘.
vim docker-compose.yml
Fügen Sie die Gitea-Service-Konfiguration am unteren Rand der Zeile ein.
server: image: gitea/gitea:latest environment: - USER_UID=1000 - USER_GID=1000 restart: always networks: - internal volumes: - ./gitea:/data ports: - "3000" - "22" labels: - "traefik.enabled=true" - "traefik.backend=gitea" - "traefik.frontend.rule=Host:git.hakase-labs.io" - "traefik.docker.network=hakasenet" - "traefik.port=3000" networks: - internal - hakasenet depends_on: - db - traefik
Speichern und beenden.
Der Gitea-Dienst wird auf dem TCP-Port’3000′ unter Verwendung dieser beiden Dockernetzwerke’internal‘ und’hakasenet‘ ausgeführt und unter dem Traefik Reverse Proxy auf der Domain’git.hakase-labs.io‘.
Docker erstellt die Konfiguration für die Gitea-Bereitstellung ist abgeschlossen.
Bereitstellung aller Dienste
Stellen Sie nun den Stapel mit dem Befehl „docker-compose“ unten bereit.
docker-compose up -d
Der Befehl lädt alle benötigten Docker-Images herunter und führt die im docker-compose-Skript definierten Dienste aus.
Und wenn es fertig ist, überprüfen Sie die verfügbaren Dienste auf dem Docker mit der Option ps wie unten beschrieben.
docker-compose ps
Nun erhalten Sie das Ergebnis wie unten beschrieben.
Die PostgreSQL-Datenbank, Gitea und traefik Reverse-Proxy-Container sind nun verfügbar. Der Datenbankdienst läuft auf dem Standardport 5432′, der Gitea-Server auf dem Port 3000′ und der Traefik-Proxy auf HTTP- und HTTPS-Ports, die über das externe Netzwerk/Internet zugänglich sind.
Wenn Sie alle Protokolle der Dockerprüfung überprüfen möchten, führen Sie den folgenden Befehl aus.
docker-compose logs
Schritt 4 – Gitea nach der Installation
Öffnen Sie Ihren Webbrowser und geben Sie Ihre Gitea URL-Installation ein. Meins schon:
https://git.hakase-labs.io/
Jetzt erhalten Sie die Standard-Gitea-Seite.
Fügen Sie den Installationspfad zur URL hinzu.
https://git.hakase-labs.io/install
Nun erhalten Sie die Gitea-Installationsseite.
Datenbankkonfiguration
Geben Sie die Details der PostgreSQL-Datenbank ein und verwenden Sie ‚db‚ als Host.
Allgemeine Gitea-Konfiguration
Ändern Sie den’Seitentitel‘ mit Ihrem eigenen Titel, die’SSH Server Domain‘ (ohne https) und’Gitea Base URL‘ mit Ihrer Gitea Server URL.
Einstellungen für das Admin-Konto
Geben Sie in den Admin-Einstellungen den Admin-Benutzernamen, das Passwort und die E-Mail-Adresse ein.
Klicken Sie nun auf die Schaltfläche’Gitea installieren‘.
Sie werden dann auf das Gitea Standard-Benutzer-Dashboard weitergeleitet.
Schritt 5 – Erstes Repository in Gitea erstellen
Klicken Sie auf der Benutzerhomepage auf die Schaltfläche „+“.
Geben Sie nun Details des Repositories ein, das Sie erstellen möchten.
und klicken Sie auf die Schaltfläche’Repository erstellen‘.
Das Repository wurde angelegt.
Schritt 6 – Testen des ersten Commits
Kehren Sie zu Ihrer Terminal-Shell zurück und richten Sie den Standard-Git-Benutzer und die E-Mail ein.
Führt unten Git-Befehle aus.
git config --global user.name "hakase" git config --global user.email "admin@hakase.io"
Klonen Sie nun das Repository.
git clone https://git.hakase-labs.io/hakase/myrepo.git
Gehen Sie in das Repository-Verzeichnis ‚myyrepo‘ und bearbeiten Sie die Datei README.md.
cd myrepo/ vim README.md
Änderungen an der README-Datei vornehmen, dann speichern und beenden.
Übertragen Sie nun das Repository.
git add . git commit -m 'Edit the README.md file by hakase-labs'
Und schieben Sie es auf den Server.
git push origin master
Geben Sie Ihren Benutzernamen und Ihr Passwort ein.
Und folgendes sollte das Ergebnis sein.
Überprüfen Sie die Repository-Seite und stellen Sie sicher, dass Sie die Änderungen wie unten beschrieben erhalten.
Die Gitea-Installation mit Docker auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.