50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
if ask_to_install "Gitea Server"; then
|
|
echo "=== GITEA SERVER INSTALLATION ==="
|
|
|
|
ensure_root
|
|
detect_pkg_manager
|
|
install_docker
|
|
|
|
$SUDO mkdir -p /srv/docker/gitea
|
|
cd /srv/docker/gitea
|
|
|
|
# Funktion, die den nächsten freien Port sucht
|
|
find_free_port() {
|
|
local START_PORT=$1
|
|
PORT=$START_PORT
|
|
while ss -lnt | awk '{print $4}' | grep -q ":$PORT$"; do
|
|
PORT=$((PORT + 1))
|
|
done
|
|
echo "$PORT"
|
|
}
|
|
|
|
FREE_HTTP_PORT=$(find_free_port 3000)
|
|
echo "✅ Freier HTTP-Port gefunden: $FREE_HTTP_PORT"
|
|
|
|
FREE_SSH_PORT=$(find_free_port 2222)
|
|
echo "✅ Freier SSH-Port gefunden: $FREE_SSH_PORT"
|
|
|
|
$SUDO tee docker-compose.yml >/dev/null <<EOF
|
|
services:
|
|
gitea:
|
|
image: gitea/gitea:latest
|
|
container_name: gitea-$FREE_HTTP_PORT
|
|
restart: unless-stopped
|
|
ports:
|
|
- "$FREE_HTTP_PORT:3000"
|
|
- "$FREE_SSH_PORT:22"
|
|
volumes:
|
|
- gitea_data:/data
|
|
volumes:
|
|
gitea_data:
|
|
EOF
|
|
|
|
$SUDO docker compose up -d
|
|
echo "Gitea Server läuft auf HTTP-Port $FREE_HTTP_PORT und SSH-Port $FREE_SSH_PORT"
|
|
|
|
echo "✅ Fertig! URL: http://<server-ip>:$FREE_HTTP_PORT"
|
|
else
|
|
log "${YELLOW}⏭ Gitea Server übersprungen.${NC}"
|
|
fi |