- Docker-Compose Konfiguration - Setup-Script für LXC Container - Backup-Script mit Rotation - Installationsanleitung 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
2.0 KiB
Bash
73 lines
2.0 KiB
Bash
#!/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://<SERVER-IP>:3000"
|
|
echo " SSH: ssh://git@<SERVER-IP>:2222"
|
|
echo ""
|
|
echo "Nächste Schritte:"
|
|
echo " 1. Browser öffnen: http://<SERVER-IP>:3000"
|
|
echo " 2. Admin-Account erstellen"
|
|
echo " 3. Repository anlegen"
|
|
echo ""
|
|
echo "Backup-Script: /opt/gitea/backup.sh"
|
|
echo "Backups unter: /opt/gitea-backups/"
|