====== 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//.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