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?
- Installieren Sie Docker-CE
- Installieren Sie Docker Compose
- Stellen Sie Gitea als Container mit Docker bereit
- Gitea-Nachinstallation
- Erstes Repository erstellen
- 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.