Inhaltsverzeichnis

Installation

Nachfolgend werden die Schritte beschrieben, die nötig sind, um Gitea unter Ubuntu 26.04 LTS zu installieren.

Verzeichnisstruktur vorbereiten

sudo mkdir -p /mnt/dataSSD/gitea/{data,config}
sudo mkdir -p /mnt/dataSSD/gitea/data/lfs
sudo mkdir -p /var/lib/gitea
sudo mkdir -p /var/log/gitea

Symlink für saubere Struktur:

sudo ln -s /mnt/dataSSD/gitea/data /var/lib/gitea/data
sudo ln -s /mnt/dataSSD/gitea/config /etc/gitea

Rechte setzen:

sudo adduser --system --group --disabled-login gitea
sudo chown -R gitea:gitea /mnt/dataSSD/gitea
sudo chown -R gitea:gitea /var/lib/gitea
sudo chown -R gitea:gitea /etc/gitea
sudo chown -R gitea:gitea /var/log/gitea
sudo chmod -R 750 /mnt/dataSSD/gitea
chmod 750 /etc/gitea

Gitea Binary (immer neueste Version)

Die aktuelle Version herunterladen:
https://dl.gitea.com/gitea/ im Browser öffnen, den obersten Wert lesen und hier deine Version eintragen

VERSION=1.26.1   
sudo wget -O /usr/local/bin/gitea \
  https://dl.gitea.com/gitea/$VERSION/gitea-$VERSION-linux-amd64
sudo chmod +x /usr/local/bin/gitea
gitea --version

systemd‑Service erstellen

Den systemd-Service konfigurieren.

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

Folgendes eintragen:

[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target mariadb.service
Requires=mariadb.service
 
[Service]
Type=simple
User=gitea
Group=gitea
 
WorkingDirectory=/mnt/dataSSD/gitea/data
Environment=USER=gitea
Environment=HOME=/mnt/dataSSD/gitea
 
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
RestartSec=2s
 
# Sicherheit
CapabilityBoundingSet=
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=full
ProtectHome=true
 
[Install]
WantedBy=multi-user.target

Aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable --now gitea

MariaDB vorbereiten

sudo mysql -u root -p

Dann:

CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY '7vY6qeiN4LF9YN8A4gKA';
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;
EXIT;

NGINX Reverse Proxy (HTTPS)

NGINX konfigurieren:

sudo nano /etc/nginx/sites-available/gitea.conf

Folgendes eintragen:

server {
    listen 80;
    server_name gitea.hoeglinger.name;
    return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl;
    http2 on;
    server_name gitea.hoeglinger.name;
 
ssl_certificate /etc/letsencrypt/live/gitea.hoeglinger.name/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gitea.hoeglinger.name/privkey.pem;
 
location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Aktivieren:

sudo ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

Let’s Encrypt:

sudo certbot --nginx -d gitea.hoeglinger.name

Gitea konfigurieren (app.ini)

Zum konfigurieren öffne:

sudo nano /etc/gitea/app.ini

Folgendes eintragen:

[server]
DOMAIN = gitea.hoeglinger.name
ROOT_URL = https://gitea.hoeglinger.name/
HTTP_PORT = 3000
PROTOCOL = http
 
[database]
DB_TYPE  = mysql
HOST     = 127.0.0.1:3306
NAME     = gitea
USER     = gitea
PASSWD   = 7vY6qeiN4LF9YN8A4gKA
 
[repository]
ROOT = /var/lib/gitea/data/repositories
ROOT = /mnt/dataSSD/gitea/data

Bestehende Repositories einbinden

Du hast:

/mnt/dataSSD/gitea/data/eugen/*.git

Gitea erwartet:

/var/lib/gitea/data/repositories/<username>/<repo>.git

Schritt 1: Benutzer in Gitea anlegen

→ Webinterface → Admin → Users → „eugen“

Schritt 2: Repos verschieben

sudo mkdir -p /var/lib/gitea/data/repositories/eugen
sudo mv /mnt/datassd/gitea/data/eugen/*.git /var/lib/gitea/data/repositories/eugen/
sudo chown -R gitea:gitea /var/lib/gitea/data/repositories

Schritt 3: Repos registrieren

sudo -u gitea gitea admin regenerate hooks
sudo -u gitea gitea admin repo-sync

Funktionstest

sudo systemctl restart gitea
sudo systemctl status gitea

Browser öffnen: https://gitea.hoeglinger.name