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?

  1. Docker-CE installieren
  2. Docker Compose installieren
  3. Bereitstellen von Gitea als Container über Docker
  4. Gitea nach der Installation
  5. Erstes Repository anlegen
  6. 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"

Docker Ubuntu Repository hinzufügen

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

das Docker CE-Paket installieren

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

Check Docker version

oder den Docker „Hallo-Welt“ laufen lassen.

docker run hello-world

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.

Docker Compose installieren

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.

Docker-Netzwerk prüfen

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 Bereitstellungs-Verzeichnisses und der Dateien

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.

Bereitstellung aller Dienste

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.

docker-compose ps

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

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.

Gitea läuft mit Docker

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.

Gitea Web-Installer

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.

Allgemeine Gitea-Konfiguration

Einstellungen für das Admin-Konto

Geben Sie in den Admin-Einstellungen den Admin-Benutzernamen, das Passwort und die E-Mail-Adresse ein.

Einstellungen für das Admin-Konto

Klicken Sie nun auf die Schaltfläche’Gitea installieren‘.

Sie werden dann auf das Gitea Standard-Benutzer-Dashboard weitergeleitet.

Gitea Standard-Benutzer-Dashboard

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.

Repository hinzufügen

und klicken Sie auf die Schaltfläche’Repository erstellen‘.

Das Repository wurde angelegt.

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.

Test Git Commit Commit

Überprüfen Sie die Repository-Seite und stellen Sie sicher, dass Sie die Änderungen wie unten beschrieben erhalten.

Gitea installiert

Die Gitea-Installation mit Docker auf Ubuntu 18.04 wurde erfolgreich abgeschlossen.

Referenz

Das könnte Dich auch interessieren …