GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie den selbstgehosteten Git-Dienst von Gitea mit Docker unter Ubuntu 18.04

Gitea ist ein Fork von Gogs, dem benutzerfreundlichen, selbst gehosteten Git-Dienst. Es ähnelt GitHub, Bitbucket und Gitlab. Gitea ist eine leichtgewichtige 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, wo Go kompiliert werden kann, wie Windows, Linux, MacOS, ARM usw.

In diesem Tutorial zeige ich Ihnen Schritt für Schritt, wie Sie den leichtgewichtigen Git-Dienst mit Gitea installieren und konfigurieren. Wir werden den Gitea-Server mit Docker bereitstellen und die PostgreSQL-Datenbank und den Traefik-Reverse-Proxy verwenden. Für diese Anleitung verwenden wir den neuesten Ubuntu 18.04 Server.

Voraussetzungen

  • Ubuntu 18.04
  • Root-Rechte

Was werden wir tun?

  1. Installieren Sie Docker-CE
  2. Installieren Sie Docker Compose
  3. Stellen Sie Gitea als Container mit Docker bereit
  4. Gitea-Nachinstallation
  5. Erstes Repository erstellen
  6. Ersten Commit testen

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 Docker und das 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 so, dass er jedes Mal beim Systemstart gestartet wird.

sudo systemctl start docker
sudo systemctl enable docker

Docker CE läuft auf dem Ubuntu 18.04-Server. Überprüfen Sie die Installation, indem Sie die Docker-Version überprüfen.

docker version

oder führen Sie den Docker 'hello-world' aus.

docker run hello-world

Schritt 2 – Docker Compose installieren

Docker-Compose ist ein Befehlszeilentool zum Definieren und Verwalten von Docker-Anwendungen mit mehreren Containern. Es ermöglicht Ihnen, einen Container als Dienst zu erstellen, der sich hervorragend für Ihre Entwicklungs-, Test- und Staging-Umgebung eignet.

Installieren Sie Docker Compose, indem Sie die Binärdatei herunterladen und ausführbar 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 jetzt installiert.

Schritt 3 – Gitea als Docker-Container bereitstellen

In diesem Schritt erstellen wir ein neues Docker-Compose-Skript, das alle Dienstkonfigurationen enthält, einschließlich PostgreSQL-Datenbank und Traefik-Reverse-Proxy. Wir richten alle Bereitstellungsdateien im Verzeichnis „Bereitstellung“ ein.

Benutzerdefiniertes Docker-Netzwerk erstellen

Bevor wir die Bereitstellungskonfiguration erstellen, erstellen wir ein neues benutzerdefiniertes Bridge-Netzwerk. Es wird für den externen Service-Traefik-Reverse-Proxy verwendet.

Überprüfen Sie die Liste des Docker-Netzwerks.

docker network ls

Erstellen Sie nun ein neues benutzerdefiniertes Bridge-Netzwerk mit dem Namen „hakasenet“.

docker network create hakasenet

Überprüfen Sie es erneut.

docker network ls

Jetzt erhalten Sie das 'hakasenet'-Netzwerk auf der Liste.

Einrichtungsverzeichnis und -dateien

Erstellen Sie ein neues Verzeichnis mit dem Namen „deployment“ und das Skript „docker-compose.yml“ darauf.

mkdir deployment; cd deployment
touch docker-compose.yml

Erstellen Sie nun ein neues Verzeichnis ‚gitea‘ und ‚postgres‘ Datenvolumen.

mkdir -p gitea/ postgres/

Erstellen Sie eine neue Datei „acme.json“ und ändern Sie die Berechtigung der Datei. es wird verwendet, um Letsencrypt-Daten zu speichern.

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

PostgreSQL-Dienst einrichten

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

Konfigurationen unten einfügen.

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.

Traefik-Reverse-Proxy einrichten

Jetzt konfigurieren wir den Traefik-Reverse-Proxy für unsere Gitea-Installation.

Der Traefik-Dienst wird unter den HTTP- und HTTPS-Standardports ausgeführt, die auf dem benutzerdefinierten Bridge-Netzwerk namens „hakasenet“ ausgeführt werden, und wir werden ihn so konfigurieren, dass er die Letsencrypt-Zertifikate verwendet, die in der Datei „traefik.toml“ definiert werden.

Bearbeiten Sie das Erstellungsskript.

vim docker-compose.yml

Fügen Sie Konfigurationen unter der db-Dienstkonfiguration ein.

  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 = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Speichern und beenden.

Hinweis:

  • Ändern Sie die acme-letencrypt-E-Mail mit Ihrer gültigen E-Mail-Adresse.

Gitea-Dienst einrichten

Bearbeiten Sie die Konfigurationsdatei „docker-compose.yml“.

vim docker-compose.yml

Fügen Sie die gitea-Dienstkonfiguration am Ende 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“ ausgeführt, wobei diese beiden Docker-Netzwerke „internal“ und „hakasenet“ verwendet werden, und wird unter dem Traefik-Reverse-Proxy auf der Domäne „git.hakase-labs.io“ ausgeführt.

Docker erstellt Konfiguration für Gitea-Bereitstellung wurde abgeschlossen.

Stellen Sie alle Dienste bereit

Stellen Sie nun den Stack mit dem unten stehenden Befehl „docker-compose“ bereit.

docker-compose up -d

Der Befehl lädt alle erforderlichen Docker-Images herunter und führt Dienste aus, die im docker-compose-Skript definiert sind.

Und wenn es fertig ist, überprüfen Sie die verfügbaren Dienste im Docker mit der Option ps wie unten.

docker-compose ps

Jetzt erhalten Sie das Ergebnis wie unten.

Die PostgreSQL-Datenbank, Gitea und Traefik-Reverse-Proxy-Container sind jetzt betriebsbereit. Der Datenbankdienst läuft auf dem Standardport „5432“, der Gitea-Server läuft auf Port „3000“ und der Traefik-Proxy läuft auf HTTP- und HTTPS-Ports, auf die vom externen Netzwerk/Internet aus zugegriffen werden kann.

Wenn Sie alle Protokolle der Docker-Prüfung überprüfen möchten, führen Sie den folgenden Befehl aus.

docker-compose logs

Schritt 4 - Gitea-Nachinstallation

Öffnen Sie Ihren Webbrowser und geben Sie Ihre Gitea-URL-Installation ein. Meine ist:

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

Jetzt erhalten Sie die Installationsseite von Gitea.

Datenbankkonfiguration

Geben Sie die PostgreSQL-Datenbankdetails ein und verwenden Sie „db ' als Gastgeber.

Allgemeine Gitea-Konfiguration

Ändern Sie den 'Seitentitel' mit Ihrem eigenen Titel, die 'SSH-Serverdomäne' (ohne https) und die 'Gitea-Basis-URL' mit Ihrer Gitea-Server-URL.

Admin-Kontoeinstellungen

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

Und Sie werden zum standardmäßigen Benutzer-Dashboard von Gitea weitergeleitet.

Schritt 5 – Erstes Repository in Gitea erstellen

Klicken Sie auf der Startseite des Benutzers auf das „+“ Schaltfläche.

Geben Sie nun die Details des Repositorys ein, das Sie erstellen möchten.

und klicken Sie auf die Schaltfläche „Repository erstellen“.

Das Repository wurde erstellt.

Schritt 6 – Erstes Commit testen

Kehren Sie zu Ihrer Terminal-Shell zurück und richten Sie den Standard-Git-Benutzer und die E-Mail-Adresse ein.

Führen Sie die folgenden Git-Befehle aus.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

Klonen Sie nun das Repository.

git clone https://git.hakase-labs.io/hakase/myrepo.git

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

Übergeben Sie nun das Repository.

git add .
git commit -m 'Edit the README.md file by hakase-labs'

Und auf den Server pushen.

git push origin master

Geben Sie Ihren Benutzernamen und Ihr Passwort ein.

Und folgendes sollte das Ergebnis sein.

Rufen Sie die Repository-Seite auf und vergewissern Sie sich, dass Sie die Änderungen wie unten beschrieben erhalten.

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


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 18.04

  2. So installieren Sie Git unter Ubuntu 18.04 / 20.04

  3. So installieren Sie Kubernetes unter Ubuntu 18.04

  4. So installieren Sie Docker Compose unter Ubuntu 18.04

  5. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

So installieren Sie Docker unter Ubuntu 14.04

So installieren Sie Git unter Ubuntu 15.04

So installieren Sie Git unter Ubuntu 16.04

So installieren Sie Gitea auf Ubuntu mit Docker

So installieren Sie Gitea unter Ubuntu 22.04