157 lines
7.0 KiB
Bash
Executable File
157 lines
7.0 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Funktion zur Überprüfung der Produktivumgebung
|
|
is_production() {
|
|
local prod_ip=${SERVER_IP:-127.0.0.1} # IP-Adresse deines Produktivservers
|
|
local current_ip
|
|
|
|
# Überprüfe das Betriebssystem
|
|
case "$OSTYPE" in
|
|
msys*|cygwin*|mingw*)
|
|
# Windows
|
|
current_ip=$(ipconfig | grep -i "IPv4 Address" | head -n 1 | awk '{print $NF}')
|
|
;;
|
|
darwin*)
|
|
# macOS
|
|
current_ip=$(ipconfig getifaddr en0) # Für Wi-Fi
|
|
if [ -z "$current_ip" ]; then
|
|
current_ip=$(ipconfig getifaddr en1) # Für Ethernet
|
|
fi
|
|
;;
|
|
linux*|bsd*|solaris*)
|
|
# Linux und andere Unix-ähnliche Systeme
|
|
current_ip=$(hostname -I | awk '{print $1}')
|
|
;;
|
|
*)
|
|
echo "Unbekanntes Betriebssystem: $OSTYPE"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
echo "Erkannte IP-Adresse: $current_ip"
|
|
|
|
if [ "$current_ip" == "$prod_ip" ]; then
|
|
echo "Produktivumgebung erkannt."
|
|
return 0 # True, wir sind in der Produktivumgebung
|
|
else
|
|
echo "Lokale Entwicklungsumgebung erkannt."
|
|
return 1 # False, wir sind in der lokalen Umgebung
|
|
fi
|
|
}
|
|
|
|
# Funktion zum Setzen der Umgebungsvariablen
|
|
set_environment_variables() {
|
|
if is_production; then
|
|
export DOMAIN_SUFFIX=".mindboost.team"
|
|
export TRAEFIK_DASHBOARD_DOMAIN="traefik${DOMAIN_SUFFIX}"
|
|
export PORTAINER_DOMAIN="portainer${DOMAIN_SUFFIX}"
|
|
export FRONTEND_DOMAIN="app${DOMAIN_SUFFIX}"
|
|
export BACKEND_DOMAIN="b${DOMAIN_SUFFIX}"
|
|
else
|
|
export DOMAIN_SUFFIX=".local"
|
|
export TRAEFIK_DASHBOARD_DOMAIN="traefik${DOMAIN_SUFFIX}"
|
|
export PORTAINER_DOMAIN="portainer${DOMAIN_SUFFIX}"
|
|
export FRONTEND_DOMAIN="frontend${DOMAIN_SUFFIX}"
|
|
export BACKEND_DOMAIN="backend${DOMAIN_SUFFIX}"
|
|
fi
|
|
}
|
|
|
|
|
|
echo "Prüfe, ob Traefik läuft..."
|
|
|
|
set_environment_variables
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then
|
|
echo "Traefik läuft nicht. Starte Traefik mit CrowdSec Bouncer..."
|
|
|
|
if is_production; then
|
|
echo "Wir befinden uns in der Produktivumgebung."
|
|
echo "Starte Traefik und CrowdSec Bouncer mit docker-compose.traefik.prod.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Wir befinden uns in der lokalen Entwicklungsumgebung."
|
|
echo "Starte Traefik und CrowdSec Bouncer mit docker-compose.traefik.local.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.overwrite.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
fi
|
|
else
|
|
echo "Traefik läuft bereits. Aktualisiere die Konfiguration..."
|
|
|
|
if is_production; then
|
|
echo "Aktualisiere Traefik und CrowdSec Bouncer in der Produktivumgebung..."
|
|
docker compose -f ../../apps/proxy/docker-compose.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Aktualisiere Traefik und CrowdSec Bouncer in der lokalen Umgebung..."
|
|
docker compose -f ../../apps/proxy/docker-compose.overwrite.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
fi
|
|
fi
|
|
|
|
echo "Traefik und CrowdSec Bouncer Deployment abgeschlossen."
|
|
|
|
echo "Prüfe, ob Traefik läuft..."
|
|
|
|
set_environment_variables
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then
|
|
echo "Traefik läuft nicht. Starte Traefik und Portainer..."
|
|
else
|
|
echo "Traefik läuft bereits. Aktualisiere die Konfiguration..."
|
|
fi
|
|
|
|
|
|
if is_production; then
|
|
echo "Wir befinden uns in der Produktivumgebung."
|
|
echo "Starte/Aktualisiere Deployment mit docker-compose.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Wir befinden uns in der lokalen Entwicklungsumgebung."
|
|
echo "Starte/Aktualisiere lokale Version mit docker-compose.overwrite.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.overwrite.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
fi
|
|
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then
|
|
echo "Traefik läuft nicht."
|
|
|
|
if is_production; then
|
|
echo "Wir befinden uns in der Produktivumgebung."
|
|
set_environment_variables
|
|
echo "Starte Deployment mit docker-compose.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Wir befinden uns in der lokalen Entwicklungsumgebung."
|
|
read -p "Möchtest du die lokale Version zum Debuggen (docker-compose.overwrite.yml) starten? (y/n): " answer
|
|
if [[ "$answer" =~ ^[Yy]$ ]]; then
|
|
echo "Starte lokale Version..."
|
|
set_environment_variables
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.overwrite.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Deployment abgebrochen."
|
|
exit 1
|
|
fi
|
|
fi
|
|
else
|
|
echo "Traefik läuft bereits."
|
|
|
|
if is_production; then
|
|
echo "Wir befinden uns in der Produktivumgebung."
|
|
set_environment_variables
|
|
echo "Aktualisiere Deployment mit docker-compose.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
else
|
|
echo "Wir befinden uns in der lokalen Entwicklungsumgebung."
|
|
set_environment_variables
|
|
echo "Aktualisiere lokale Version mit docker-compose.overwrite.yml..."
|
|
env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an
|
|
docker compose -f ../../apps/proxy/docker-compose.overwrite.yml --env-file ../../env/.env.all --env-file ../../env/${ENVIRONMENT:-development}/.env.proxy --profile proxy up --remove-orphans -d
|
|
fi
|
|
fi
|
|
|
|
echo "Deployment abgeschlossen." |