From 49badb74a75ecbb12677dc3afc57990ee8d250da Mon Sep 17 00:00:00 2001 From: rorapp Date: Wed, 5 Mar 2025 15:20:01 +0100 Subject: [PATCH] different script approaches to start the app --- scripts/start/deploy-app.sh | 10 ++++++--- scripts/start/deploy-traefik.sh | 31 +++++++++++++-------------- scripts/start/deploy.sh | 37 +++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 20 deletions(-) create mode 100755 scripts/start/deploy.sh diff --git a/scripts/start/deploy-app.sh b/scripts/start/deploy-app.sh index 25a26df..e82cc45 100755 --- a/scripts/start/deploy-app.sh +++ b/scripts/start/deploy-app.sh @@ -1,4 +1,8 @@ #!/bin/bash +source ../setup/set-project-root.sh +source ../setup/set-global-env.sh +source ../setup/set-proxy-env.sh +source ../setup/generate-secrets.sh # Pfad zur .env.all Datei ENV_FILE="../../env/.env.all" @@ -13,7 +17,7 @@ ENVIRONMENT=$(get_env_var "ENVIRONMENT") SERVER_IP=$(curl -s https://api.ipify.org) # Liste aller Stacks -STACKS=("frontend" "database" "backend") +STACKS=("proxy" "frontend" "database" "backend") # Liste aller Environments ENVIRONMENTS=("development" "staging" "production") @@ -44,7 +48,7 @@ else fi # Ausgabe der Variablen -echo "Deploying to:" +echo "Deploying to" echo "INFRASTRUCTURE: ${INFRASTRUCTURE:-Not set}" echo "ENVIRONMENT: ${ENVIRONMENT:-Not set}" echo "-----------------------------------" @@ -57,5 +61,5 @@ fi # Ausführen des Docker Compose Befehls -docker compose -f ../../apps/docker-compose.all.yml --env-file ../../env/.env.all -p ${INFRASTRUCTURE:-my} --profile app up --remove-orphans $BUILD_OPTION +docker compose -f ../../apps/docker-compose.all.yml -p ${INFRASTRUCTURE:-my} --profile app up --remove-orphans $BUILD_OPTION diff --git a/scripts/start/deploy-traefik.sh b/scripts/start/deploy-traefik.sh index d0061ef..3e45421 100755 --- a/scripts/start/deploy-traefik.sh +++ b/scripts/start/deploy-traefik.sh @@ -3,7 +3,7 @@ set -e # Funktion zur Überprüfung der Produktivumgebung is_production() { - local prod_ip="85.215.56.185" # IP-Adresse deines Produktivservers + local prod_ip=${SERVER_IP:-127.0.0.1} # IP-Adresse deines Produktivservers local current_ip # Überprüfe das Betriebssystem @@ -69,30 +69,27 @@ if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; 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.traefik.prod.yml up -d + 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/docker-compose.traefik.local.yml up -d + 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/docker-compose.traefik.prod.yml up -d + 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/docker-compose.traefik.local.yml up -d + 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 @@ -106,14 +103,14 @@ fi if is_production; then echo "Wir befinden uns in der Produktivumgebung." - echo "Starte/Aktualisiere Deployment mit docker-compose.prod.yml..." + echo "Starte/Aktualisiere Deployment mit docker-compose.yml..." env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an - docker compose -f ../apps/docker-compose.prod.yml up -d + 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/docker-compose.overwrite.yml up -d + 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 @@ -123,9 +120,9 @@ if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then if is_production; then echo "Wir befinden uns in der Produktivumgebung." set_environment_variables - echo "Starte Deployment mit docker-compose.prod.yml..." + echo "Starte Deployment mit docker-compose.yml..." env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an - docker compose -f ../apps/docker-compose.prod.yml up -d + 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 @@ -133,7 +130,7 @@ if ! docker ps --format '{{.Names}}' | grep -q 'traefik'; then echo "Starte lokale Version..." set_environment_variables env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an - docker compose -f ../apps/docker-compose.overwrite.yml up -d + 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 @@ -145,15 +142,15 @@ else if is_production; then echo "Wir befinden uns in der Produktivumgebung." set_environment_variables - echo "Aktualisiere Deployment mit docker-compose.prod.yml..." + echo "Aktualisiere Deployment mit docker-compose.yml..." env | grep DOMAIN # Debug: Zeige die gesetzten Umgebungsvariablen an - docker compose -f ../apps/docker-compose.prod.yml up -d + 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/docker-compose.overwrite.yml up -d + 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 diff --git a/scripts/start/deploy.sh b/scripts/start/deploy.sh new file mode 100755 index 0000000..47ab7ff --- /dev/null +++ b/scripts/start/deploy.sh @@ -0,0 +1,37 @@ +#!/bin/bash +#!/bin/bash + +# Bestimme das Root-Verzeichnis des Git-Repos +ROOT_DIR=$(git rev-parse --show-toplevel 2>/dev/null) + +# Falls das Repository nicht gefunden wurde, abbrechen +if [ -z "$ROOT_DIR" ]; then + echo "❌ Fehler: Kein Git-Repository gefunden!" + exit 1 +fi + +# Setze die Variable für die aktuelle Shell-Sitzung +echo "✅ ROOT_DIR gesetzt auf: $ROOT_DIR" + +# Pfad zur .env.all Datei +ENV_FILE="${ROOT_DIR}/env/.env.all" +echo $ENV_FILE +# Funktion zum Auslesen von Variablen aus der .env.all Datei +get_env_var() { + grep "^$1=" "$ENV_FILE" | cut -d '=' -f2 +} + +# Auslesen der INFRASTRUCTURE und ENVIRONMENT Variablen +INFRASTRUCTURE=$(get_env_var "INFRASTRUCTURE_LABEL") +ENVIRONMENT=$(get_env_var "ENVIRONMENT") +SERVER_IP=$(curl -s https://api.ipify.org) + + +# Ausgabe der Variablen +echo "Deploying to:" +echo "INFRASTRUCTURE: ${INFRASTRUCTURE:-Not set}" +echo "ENVIRONMENT: ${ENVIRONMENT:-Not set}" +echo "-----------------------------------" + +# Ausführen des Docker Compose Befehls +docker compose -f ../../apps/docker-compose.all.yml -p ${INFRASTRUCTURE:-my} --env-file ${ENV_FILE} --env-file ${ROOT_DIR}/env/${ENVIRONMENT:-development}/.env.proxy --profile app up --remove-orphans