diff --git a/recipes/services/gitea/docker-compose.yml b/recipes/services/gitea/docker-compose.yml new file mode 100644 index 0000000..7296735 --- /dev/null +++ b/recipes/services/gitea/docker-compose.yml @@ -0,0 +1,12 @@ +services: + gitea: + image: gitea/gitea:latest + container_name: gitea + restart: unless-stopped + ports: + - "3000:3000" + - "2222:22" # SSH port, host port can be changed if 22 is in use + volumes: + - gitea_data:/data +volumes: + gitea_data: \ No newline at end of file diff --git a/recipes/services/gitea/install.sh b/recipes/services/gitea/install.sh new file mode 100644 index 0000000..df004fe --- /dev/null +++ b/recipes/services/gitea/install.sh @@ -0,0 +1,50 @@ +#!/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 <:$FREE_HTTP_PORT" +else + log "${YELLOW}⏭ Gitea Server übersprungen.${NC}" +fi \ No newline at end of file