Nachfolgend werden die Schritte beschrieben, die nötig sind, um Gitea unter Ubuntu 26.04 LTS zu installieren.
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
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
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
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 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
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
Du hast:
/mnt/dataSSD/gitea/data/eugen/*.git
Gitea erwartet:
/var/lib/gitea/data/repositories/<username>/<repo>.git
→ Webinterface → Admin → Users → „eugen“
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
sudo -u gitea gitea admin regenerate hooks sudo -u gitea gitea admin repo-sync
sudo systemctl restart gitea sudo systemctl status gitea
Browser öffnen: https://gitea.hoeglinger.name