GNU/Linux >> LINUX-Kenntnisse >  >> Fedora

So installieren Sie den Gitea Code Hosting Service auf Fedora 34

Gitea ist eine Open-Source-Code-Hosting-Lösung, die auf der Git-Plattform basiert. Es ist in der Go-Sprache geschrieben. Es enthält einen Repository-Dateieditor, Problemverfolgung, Pull-Anforderungen, Benutzerverwaltung, Benachrichtigungen, integriertes Wiki, LFS-Unterstützung, Git-Hooks und vieles mehr.

Es ist eine leichte Anwendung. Daher kann es auf Systemen mit geringer Leistung installiert werden. Wenn Sie nach einer selbst gehosteten Git-Plattform mit einer kleineren Speicherplattform suchen, sollten Sie sich Gitea ansehen.

In diesem Artikel erfahren Sie, wie Sie Gitea auf Fedora 34 installieren und konfigurieren und wie Sie Ihr erstes Git-Repository einrichten. Gitea kann aus der Quelle, Binärdatei, einem Docker-Paket oder einem Paket installiert werden. Für unser Tutorial werden wir es aus der Binärdatei installieren.

Voraussetzungen

  • Ein Server mit Fedora 34.
  • Ein Nicht-Root-Sudo-Benutzer.
  • SELinux deaktiviert.
  • Stellen Sie sicher, dass alles aktualisiert ist.

    $ sudo dnf update
    

Schritt 1 – Firewall konfigurieren

Der erste Schritt besteht darin, die Firewall zu konfigurieren. Der Fedora-Server wird mit der Firewalld geliefert Firewall.

Überprüfen Sie, ob die Firewall ausgeführt wird.

$ sudo firewall-cmd --state

Sie sollten die folgende Ausgabe erhalten.

running

Überprüfen Sie die aktuell erlaubten Dienste/Ports.

$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe zeigen.

dhcpv6-client mdns ssh

HTTP- und HTTPS-Ports zulassen.

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Überprüfen Sie den Status der Firewall erneut.

$ sudo firewall-cmd --permanent --list-services

Sie sollten eine ähnliche Ausgabe sehen.

dhcpv6-client http https mdns ssh

Laden Sie die Firewall neu.

$ sudo systemctl reload firewalld

Schritt 2 – Git installieren

Der erste Schritt ist die Installation von Git.

$ sudo dnf install git

Überprüfen Sie die Installation, indem Sie die Git-Version überprüfen.

$ git --version
git version 2.31.1

Git konfigurieren

Git kann mit git config konfiguriert werden Befehl. Legen Sie Ihren Namen und Ihre E-Mail-Adresse für die Arbeit mit Git fest.

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Sie können die Konfiguration mit dem folgenden Befehl überprüfen.

$ git config --list
user.name=Your Name
[email protected]

Schritt 3 – PostgreSQL installieren und konfigurieren

Gitea unterstützt SQLite, MySQL/Mariadb, MSSQL und PostgreSQL. Für unser Tutorial verwenden wir PostgreSQL.

PostgreSQL installieren und initialisieren.

$ sudo dnf module enable postgresql:13
$ sudo dnf install postgresql-server postgresql-contrib
$ sudo postgresql-setup --initdb --unit postgresql
$ sudo systemctl enable --now postgresql

PostgreSQL verwendet standardmäßig das md5-Verschlüsselungsschema für die Passwortauthentifizierung, was nicht sicher ist. Sie müssen zu SCRAM-SHA-256 wechseln planen. Und wenn Sie eine Verbindung zu einer entfernten PostgreSQL-Datenbank herstellen möchten, müssen Sie sie so konfigurieren, dass sie auf Ihre IP-Adresse lauscht. Beide können durch Bearbeiten der /var/lib/pgsql/data/postgresql.conf geändert werden Datei. Zum Bearbeiten öffnen.

$ sudo nano /var/lib/pgsql/data/postgresql.conf

Bearbeiten Sie die folgenden Variablen wie folgt.

listen_addresses = 'localhost, 201.0.110.0'
password_encryption = scram-sha-256

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Starten Sie PostgreSQL neu.

$ sudo systemctl restart postgresql

Melden Sie sich bei der PostgreSQL-Shell an.

$ sudo -u postgres psql

Erstellen Sie einen neuen SQL-Benutzer und eine neue Datenbank für Gitea. Wählen Sie ein starkes Passwort für Ihren Datenbankbenutzer.

postgres-# CREATE ROLE gitea WITH LOGIN PASSWORD 'yourpassword';
postgres-# CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

Ersetzen Sie den Benutzernamen, den Datenbanknamen und das Passwort nach Bedarf.

Verlassen Sie die Shell, indem Sie \q eingeben .

Erlauben Sie dem Datenbankbenutzer den Zugriff auf die oben erstellte Datenbank, indem Sie die folgende Authentifizierungsregel zu /var/lib/pgsql/data/pg_hba.conf hinzufügen .

Wenn die Datenbank lokal ist, fügen Sie diese Zeile hinzu.

local    giteadb    gitea    scram-sha-256

Verwenden Sie für eine entfernte Datenbank stattdessen den folgenden Code.

host    giteadb    gitea    192.0.2.10/32    scram-sha-256

Sie müssen auch die folgenden Zeilen bearbeiten, indem Sie ident ersetzen mit scram-sha-256 .

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Sie sollten wie folgt aussehen.

# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
# IPv6 local connections:
host    all             all             ::1/128                 scram-sha-256

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Starten Sie PostgreSQL neu.

$ sudo systemctl restart postgresql

Sie müssen auch die folgende Regel in der Firewall hinzufügen, wenn Sie Remote-Verbindungen ermöglichen möchten.

$ sudo firewall-cmd --permanent--add-service=postgresql
$ sudo firewall-cmd --reload

Schritt 4 – Erstellen Sie einen Git-Benutzer

Erstellen Sie einen neuen Systembenutzer, um die Gitea-Anwendung auszuführen.

$ sudo useradd \
   --system \
   --shell /bin/bash \
   --comment 'Git Version Control' \
   --create-home \
   --home /home/git \
   git

Dieser Befehl erstellt einen neuen Benutzer und eine neue Gruppe mit dem Namen git und setzt das Home-Verzeichnis auf /home/git .

Schritt 5 – Gitea installieren

Öffnen Sie die Seite Gitea Downloads und überprüfen Sie die Versionsnummer der neuesten verfügbaren Binärdatei. Zum Zeitpunkt der Erstellung dieses Tutorials ist die neueste Version 1.14.3. Wenn es eine neuere Version gibt, ändern Sie diese in VERSION Variable im folgenden Befehl.

Verwenden Sie das wget Dienstprogramm zum Abrufen der neuesten Gitea-Binärdatei.

$ GITEAVERSION=1.14.3
$ wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64

Verschieben Sie die heruntergeladene Binärdatei nach /usr/local/bin Verzeichnis.

$ sudo mv gitea /usr/local/bin

Machen Sie die Binärdatei ausführbar.

$ sudo chmod +x /usr/local/bin/gitea

Führen Sie die folgenden Befehle aus, um Verzeichnisse zu erstellen und die erforderlichen Berechtigungen festzulegen, damit Gitea ordnungsgemäß funktioniert.

$ sudo mkdir -p /var/lib/gitea/{custom,data,log}
$ sudo chown -R git:git /var/lib/gitea/
$ sudo chmod -R 750 /var/lib/gitea/
$ sudo mkdir /etc/gitea
$ sudo chown root:git /etc/gitea
$ sudo chmod 770 /etc/gitea

Die Berechtigung für /etc/gitea Verzeichnis auf 770 gesetzt, damit der Installationsassistent die Konfigurationsdatei erstellen kann. Sobald die Installation abgeschlossen ist, werden wir restriktivere Berechtigungen festlegen.

Erstellen Sie eine Systemd-Dienstdatei

Wir werden Gitea als systemd-Dienst ausführen. Erstellen Sie dazu eine neue systemd-Eintragsdatei für Gitea.

$ sudo nano /etc/systemd/system/gitea.service

Fügen Sie den folgenden Code ein.

[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=postgresql.service

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Als Referenz können Sie sich die systemd-Beispieldatei ansehen, die im Gitea-Repository verfügbar ist.

Laden Sie den systemd-Daemon neu, um die gerade erstellte Datei zu aktivieren.

$ sudo systemctl daemon-reload

Aktivieren und starten Sie den Gitea-Dienst.

$ sudo systemctl enable --now gitea

Stellen Sie sicher, dass Gitea ausgeführt wird.

$ sudo systemctl status gitea
  gitea.service - Gitea
     Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: disabled)
     Active: active (running) since Tue 2021-07-04 20:33:38 EDT; 1 day 8h ago
   Main PID: 46404 (gitea)
      Tasks: 7 (limit: 2328)
     Memory: 115.5M
CPU: 9min 12.061s CGroup: /system.slice/gitea.service ---46404 /usr/local/bin/gitea web -c /etc/gitea/app.ini ...

Schritt 6 – Gitea konfigurieren

Gitea lauscht standardmäßig auf Port 3000. Sie können entweder einen anderen Port verwenden oder beim Standardport bleiben. Daher müssen wir auch Port 3000 öffnen.

$ sudo firewall-cmd --permanent --add-port=3000/tcp
$ sudo firewall-cmd --reload

Öffnen Sie Ihren Browser und geben Sie https://YOURIPADDRESS:3000 ein und Sie werden mit dem Gitea-Installationsprogramm begrüßt. Verwenden Sie zum Konfigurieren die folgenden Werte.

Datenbankeinstellungen

  • Datenbanktyp: Wählen Sie PostgreSQL aus der Dropdown-Liste aus
  • Host: 127.0.0.1:5432
  • Benutzername: Gitea
  • Passwort: Ihr Passwort
  • Datenbankname: Gitea

Allgemeine Einstellungen

  • Site-Titel: Geben Sie den Namen Ihrer Organisation ein
  • Repository-Stammpfad: Belassen Sie den Standardpfad
  • Git-LFS-Stammpfad: Belassen Sie den Standardpfad
  • Als Benutzername ausführen: git
  • SSH-Serverdomäne: Geben Sie Ihre IP-Adresse ein
  • HTTP-Überwachungsport: 3000 (Sie können den Port hier ändern, müssen aber über die Firewall darauf zugreifen.)
  • Gitea-Basis-URL: http://IHREIPADRESSE:3000
  • Protokollpfad: Belassen Sie die Standardeinstellung

Sie können die E-Mail- und Servereinstellungen an dieser Stelle konfigurieren oder später ändern. Sie sollten jedoch die Administratorkontoeinstellungen ausfüllen.

Um die Installation zu starten, klicken Sie auf Gitea installieren* Taste. Sobald Sie fertig sind, werden Sie automatisch angemeldet und zum Konto-Dashboard weitergeleitet.

Die Installation erstellt die Gitea-Konfigurationsdatei. Ändern Sie die Berechtigung in schreibgeschützt.

$ sudo chmod 750 /etc/gitea
$ sudo chmod 640 /etc/gitea/app.ini

Das ist es. Gitea ist jetzt auf Ihrem Server installiert.

Schritt 7 – SSL mit Let's Encrypt installieren

Um ein SSL-Zertifikat mit Let's Encrypt zu installieren, müssen wir das Certbot-Tool mit dem in Ubuntu 20.04 enthaltenen Snapd-Paketinstaller herunterladen.

Führen Sie die folgenden Befehle aus, um Certbot zu installieren.

$ sudo dnf install certbot

Generieren Sie das SSL-Zertifikat.

$ sudo certbot certonly --standalone --preferred-challenges http -d example.com

Der obige Befehl lädt ein Zertifikat in /etc/letsencrypt/live/example.com herunter Verzeichnis auf Ihrem Server.

Erstellen Sie ein herausforderndes Webroot-Verzeichnis für die automatische Verlängerung von Let's Encrypt.

$ sudo mkdir -p /var/lib/letsencrypt

Erstellen Sie einen Cron-Job, um das SSL zu erneuern. Es wird jeden Tag ausgeführt, um das Zertifikat zu überprüfen und bei Bedarf zu erneuern. Erstellen Sie dazu zunächst die Datei /etc/cron.daily/certbot-renew und zum Bearbeiten öffnen.

$ sudo nano /etc/cron.daily/certbot-renew

Fügen Sie den folgenden Code ein.

#!/bin/sh
certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Ändern Sie die Berechtigungen für die Aufgabendatei, um sie ausführbar zu machen.

$ sudo chmod +x /etc/cron.daily/certbot-renew

Schritt 8 – Nginx installieren und konfigurieren

Der nächste Schritt ist die Installation des Nginx-Servers.

$ sudo dnf install nginx

Erstellen Sie die Nginx-Konfigurationsdatei für Gitea.

$ sudo nano /etc/nginx/conf.d/gitea.conf

Fügen Sie den folgenden Code ein.

server {
        listen 80;
    
        location ~ /\.well-known/acme-challenge {
                root /var/lib/letsencrypt/;
        }
    
        server_name yourdomain.com;
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name your_domain;
    
        client_max_body_size 50m;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
        ssl_session_tickets off;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20- POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
        ssl_prefer_server_ciphers off;
        ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
        ssl_stapling on;
        ssl_stapling_verify on;

        ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
        ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
    
        proxy_read_timeout 720s;
        proxy_connect_timeout 720s;
        proxy_send_timeout 720s;
        
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
    
        location / {
                proxy_redirect off;
                proxy_pass http://127.0.0.1:3000;
     	}
        access_log /var/log/nginx/gitea.access.log;
        error_log /var/log/nginx/gitea.error.log;
}

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Überprüfen Sie, ob die Konfigurationsdatei ordnungsgemäß funktioniert.

$ sudo nginx -t

Starten Sie den Nginx-Server neu.

$ sudo systemctl restart nginx

Ändern Sie als Nächstes die Gitea-Domain und die Stamm-URL. Öffnen Sie dazu die Konfigurationsdatei /etc/gitea/app.ini .

$ sudo nano /etc/gitea/app.ini

Ändern Sie die folgenden Werte.

[server]
SSH_DOMAIN       = git.example.com
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Starten Sie den Gitea-Dienst neu.

$ sudo systemctl restart gitea

Schritt 9 – E-Mail-Benachrichtigungen einrichten

Wenn Sie E-Mail-Benachrichtigungen erhalten möchten, können Sie diese entweder über Sendmail oder über einen E-Mail-Transaktionsdienst eines Drittanbieters wie Amazon SES, Postmark, Mailgun oder Sendgrid aktivieren.

Um die Benachrichtigungen zu aktivieren, öffnen Sie die Konfigurationsdatei /etc/gitea/app.ini .

$ sudo nano /etc/gitea/app.ini

Bearbeiten Sie den folgenden Abschnitt in der Datei und fügen Sie den folgenden Code hinzu.

[mailer]
ENABLED = true
FROM           = [email protected]
MAILER_TYPE    = smtp
HOST           = mail.mydomain.com:587
IS_TLS_ENABLED = true
USER           = [email protected]
PASSWD         = `password`

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Starten Sie den Gitea-Dienst neu.

$ sudo systemctl restart gitea

Schritt 10 – Aktualisieren von Gitea

Das Aktualisieren von Gitea umfasst das Herunterladen und Ersetzen der Gitea-Binärdatei.

Stoppen Sie zuerst den Gitea-Dienst.

$ sudo systemctl stop gitea

Laden Sie die Gitea-Binärdatei herunter und installieren Sie sie.

$ GITEAVERSION=LATESTVERSION
$ wget -O gitea https://dl.gitea.io/gitea/${GITEAVERSION}/gitea-${GITEAVERSION}-linux-amd64
$ sudo mv gitea /usr/local/bin
$ sudo chmod +x /usr/local/bin/gitea

Starten Sie den Gitea-Dienst neu.

$ sudo systemctl start gitea

Schritt 11 – Verwendung von SSH

Um SSH zu verwenden, müssen wir unseren eigenen SSH-Schlüssel zu Gitea hinzufügen. Wenn Sie keine haben, können Sie eine mit dem folgenden Befehl auf Ihrem lokalen System erstellen.

$ ssh-keygen -N "yourpassphrase" -t ed25519 -C "gitea_key"

Dadurch wird ein Schlüssel namens id_ed25519 erstellt im ~/.ssh Verzeichnis. Um diesen Schlüssel hinzuzufügen, kopieren Sie den Inhalt der Datei ~/.ssh/id_ed25519.pub zu Ihrer Zwischenablage. Fügen Sie diesen Schlüssel dann zu Ihrer Gitea-Einstellungsseite unter der Registerkarte SSH/GPG-Schlüssel hinzu . Klicken Sie auf Schlüssel hinzufügen Schaltfläche und geben Sie dem Schlüssel einen Namen und fügen Sie ihn in das Feld ein.

Wenn Sie eine Liste erlaubter Benutzer in der sshd-Konfigurationsdatei haben, müssen Sie git hinzufügen dazu.

Öffnen Sie die SSHD-Konfigurationsdatei.

$ sudo nano /etc/ssh/sshd_config

Suchen Sie nach einer Zeile, die wie folgt aussehen sollte.

AllowUsers myuser myotheruser git

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Starten Sie den SSHD-Dienst neu.

$ sudo systemctl restart ssh

Sie müssen die Passphrase für den von uns erstellten Schlüssel zu ssh-agent hinzufügen Tool auf Ihrem lokalen System, damit Sie nicht wiederholt danach gefragt werden. Führen Sie dazu die folgenden Befehle aus.

$ eval $(ssh-agent)
Agent pid 46436
$ ssh-add ~/.ssh/id_ed25519

Sie können Ihr Repository klonen, um die SSH-Verbindung zu testen.

$ git clone ssh://[email protected]/username/repo.git
Cloning into 'repo'...
The authenticity of host 'example.com (201.110.80.160)' can't be established.
ECDSA key fingerprint is SHA256:Kx9l19zpGhHfbb2wHtmWeC7/WWv8e5/T3Tcws2qwVEw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'example.com,201.110.80.160' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), 4.77 KiB | 977.00 KiB/s, done.

Schlussfolgerung

Damit ist das Tutorial über die Installation und Konfiguration des Gitea-Code-Hosting-Dienstes auf Fedora 34 abgeschlossen. Wenn Sie Fragen haben, posten Sie sie in den Kommentaren unten.


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

  2. So installieren Sie die Gitea Code-Hosting-Plattform mit HTTPS unter CentOS 8

  3. So installieren Sie die Gitea Code-Hosting-Plattform mit HTTPS unter Debian 10

  4. So installieren Sie Node.js auf Fedora 35 / Fedora 34

  5. So installieren und konfigurieren Sie Redis 6 auf Fedora 34

So installieren Sie Visual Studio Code auf einer Fedora 35 Workstation

So installieren Sie Visual Studio Code unter Fedora 36 Linux

So installieren Sie Visual Studio Code (VS Code) auf Fedora 34/35

So installieren und konfigurieren Sie Git auf Fedora 35

So installieren Sie Go auf Fedora 35

So installieren Sie Gitea unter Ubuntu 22.04