Gitea ist ein alternatives Open-Source-Versionskontrollsystem, das von Git unterstützt wird. Gitea ist in Golang geschrieben und eine leichte Lösung, die auf jeder Plattform gehostet werden kann.
Voraussetzungen
- Neue Vultr Debian 9-Instanz.
- Nicht-Root-Benutzer mit
sudoBerechtigungen.
- Nginx
- Git
- MariaDB
Schritt 1: Installieren Sie Nginx
Aktualisieren Sie Ihre Paketliste.
sudo apt update
Installieren Sie Nginx.
sudo apt -y install nginx
Führen Sie nach Abschluss der Installation die folgenden Befehle aus, um den Nginx-Dienst zu starten und zu aktivieren.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Schritt 2: Installieren Sie Git
Dies kann mit dem folgenden Befehl erfolgen.
sudo apt -y install git
Schritt 3: Installieren Sie den MariaDB-Datenbankserver
Gitea unterstützt die folgenden Datenbankserver.
- MariaDB / MySQL
- PostgreSQL
- SQLite
- TiDB
Für dieses Tutorial verwenden wir den MariaDB-Server und -Client.
sudo apt -y install mariadb-server mariadb-client
Stellen Sie nach Abschluss sicher, dass MariaDB aktiviert ist und ausgeführt wird.
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
Führen Sie danach den folgenden Befehl aus, um den MariaDB-Server zu sichern, indem Sie ein Root-Passwort erstellen und den Remote-Root-Zugriff nicht zulassen.
sudo mysql_secure_installation
Wenn Sie dazu aufgefordert werden, beantworten Sie die folgenden Fragen, indem Sie der Anleitung folgen.
Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Starten Sie MariaDB neu.
sudo systemctl restart mariadb.service
Geben Sie den folgenden Befehl ein, um sich bei der MariaDB-Konsole anzumelden.
sudo mysql -u root -p
Geben Sie dann das oben erstellte Passwort ein, um sich anzumelden. Sie sehen die Begrüßungsnachricht von MariaDB.
Erstellen Sie eine Datenbank mit dem Namen gitea.
CREATE DATABASE gitea;
Erstellen Sie einen Datenbankbenutzer, der giteausermit einem neuen Kennwort aufgerufen wird .
CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';
Stellen Sie sicher, dass Sie durch new_password_hereein sicheres und komplexes Passwort ersetzen .
Gewähren Sie dem Benutzer dann vollen Zugriff auf die Datenbank.
GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Speichern Sie abschließend Ihre Änderungen und beenden Sie das Programm.
FLUSH PRIVILEGES;
EXIT;
Schritt 4: Bereiten Sie die Gitea-Umgebung vor
Erstellen Sie einen Benutzer, um Gitea auszuführen.
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
Erstellen Sie die gewünschte Verzeichnisstruktur.
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
Schritt 5: Installieren Sie Gitea
Die Gitea-Binärdatei kann durch Ausführen der folgenden Befehle heruntergeladen werden.
sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64
sudo chmod +x gitea
Kopieren Sie die Binärdatei an einen globalen Speicherort.
sudo cp gitea /usr/local/bin/gitea
Schritt 6: Erstellen Sie eine Servicedatei, um Gitea automatisch zu starten
Erstellen Sie eine Linux-Dienstdatei.
sudo touch /etc/systemd/system/gitea.service
Öffnen Sie diese neu erstellte Datei mit einem Texteditor Ihrer Wahl und füllen Sie sie mit den folgenden Angaben.
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
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
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
Aktivieren und starten Sie Gitea beim Booten.
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
Stellen Sie sicher, dass Gitea ausgeführt wird.
sudo systemctl status gitea
Löschen Sie die Standard-Nginx-Konfigurationsdatei.
sudo rm /etc/nginx/sites-enabled/default
Erstellen Sie eine Reverse-Proxy-Konfiguration für Gitea.
sudo touch /etc/nginx/sites-available/git
Füllen Sie die Datei mit der folgenden Konfiguration und stellen Sie sicher, dass Sie sie durch example.comIhren Domainnamen oder Ihre IP-Adresse ersetzen .
upstream gitea {
server 127.0.0.1:3000;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com;
root /var/lib/gitea/public;
access_log off;
error_log off;
location / {
try_files maintain.html $uri $uri/index.html @node;
}
location @node {
client_max_body_size 0;
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 120;
}
}
Aktivieren Sie die Reverse-Proxy-Konfiguration von Gitea Nginx.
sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled/git
Laden Sie dann den Nginx-Dienst neu.
sudo systemctl reload nginx.service
Öffnen Sie als Nächstes Ihren Browser und navigieren Sie zum Server-Hostnamen oder zur IP-Adresse.
http://YOUR_SERVER_IP/install
Befolgen Sie die Anweisungen auf dem Bildschirm, um das Gitea-Setup abzuschließen.