57 lines
1.2 KiB
Bash
57 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
if ask_to_install "Budibase Server"; then
|
|
echo "=== BUDIBASE INSTALLATION ==="
|
|
|
|
ensure_root
|
|
detect_pkg_manager
|
|
install_docker
|
|
|
|
echo "[+] Erstelle Verzeichnis: /srv/docker/budibase"
|
|
$SUDO mkdir -p /srv/docker/budibase
|
|
cd /srv/docker/budibase
|
|
|
|
# Funktion für automatisches Finden des nächsten freien Ports
|
|
find_free_port() {
|
|
PORT=10000
|
|
while ss -lnt | awk '{print $4}' | grep -q ":$PORT$"; do
|
|
PORT=$((PORT + 1))
|
|
done
|
|
echo "$PORT"
|
|
}
|
|
|
|
FREE_PORT=$(find_free_port)
|
|
echo "✅ Freier Port gefunden: $FREE_PORT"
|
|
|
|
echo "[+] Schreibe docker-compose.yml"
|
|
$SUDO tee docker-compose.yml >/dev/null <<EOF
|
|
services:
|
|
budibase:
|
|
image: budibase/budibase:latest
|
|
container_name: budibase-$FREE_PORT
|
|
restart: unless-stopped
|
|
ports:
|
|
- "$FREE_PORT:80"
|
|
environment:
|
|
- JWT_SECRET=changeme
|
|
- MINIO_ACCESS_KEY=budibase
|
|
- MINIO_SECRET_KEY=budibase_secret
|
|
volumes:
|
|
- budibase_data:/data
|
|
|
|
volumes:
|
|
budibase_data:
|
|
EOF
|
|
|
|
echo "[+] Starte Budibase..."
|
|
$SUDO docker compose up -d
|
|
|
|
echo ""
|
|
echo "✅ Budibase ist installiert!"
|
|
echo "→ Öffne im Browser: http://<IP>:$FREE_PORT"
|
|
else
|
|
log "${YELLOW}⏭ Budibase Server übersprungen.${NC}"
|
|
fi
|
|
|