#!/bin/bash # Gitea Setup Script für Debian/Ubuntu LXC Container # Ausführen als root auf dem LXC Container set -e echo "=== Gitea Setup Script ===" echo "" # Prüfen ob als root ausgeführt if [ "$EUID" -ne 0 ]; then echo "Bitte als root ausführen: sudo ./setup.sh" exit 1 fi # System aktualisieren echo "[1/5] System aktualisieren..." apt update && apt upgrade -y # Docker installieren echo "[2/5] Docker installieren..." apt install -y ca-certificates curl gnupg install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null apt update apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Docker starten und aktivieren systemctl enable docker systemctl start docker # Gitea Verzeichnis erstellen echo "[3/5] Gitea Verzeichnis einrichten..." mkdir -p /opt/gitea cp docker-compose.yml /opt/gitea/ # Gitea starten echo "[4/5] Gitea starten..." cd /opt/gitea docker compose up -d # Backup-Script einrichten echo "[5/5] Backup-Script einrichten..." mkdir -p /opt/gitea-backups cp backup.sh /opt/gitea/ chmod +x /opt/gitea/backup.sh # Cron-Job für tägliches Backup (03:00 Uhr) (crontab -l 2>/dev/null; echo "0 3 * * * /opt/gitea/backup.sh >> /var/log/gitea-backup.log 2>&1") | crontab - echo "" echo "=== Setup abgeschlossen! ===" echo "" echo "Gitea ist erreichbar unter:" echo " Web: http://:3000" echo " SSH: ssh://git@:2222" echo "" echo "Nächste Schritte:" echo " 1. Browser öffnen: http://:3000" echo " 2. Admin-Account erstellen" echo " 3. Repository anlegen" echo "" echo "Backup-Script: /opt/gitea/backup.sh" echo "Backups unter: /opt/gitea-backups/"