From 081ff7a3318af122f40848a024598b1c85dd174e Mon Sep 17 00:00:00 2001 From: Guillermo Date: Tue, 17 Feb 2026 16:48:44 +0000 Subject: [PATCH] script t parse the docker compose template with some values requested to the user --- generate_compose.sh | 114 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100755 generate_compose.sh diff --git a/generate_compose.sh b/generate_compose.sh new file mode 100755 index 0000000..993ecdf --- /dev/null +++ b/generate_compose.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash +set -euo pipefail + +############################################### +# CONFIGURACIÓN BÁSICA – EDITA ESTO +############################################### +# TODO: pon aquí la URL real de tu repo (sin credenciales) +REPO_URL_DEFAULT="ssh://git@git.beyondcx.org:2424/susana/BeyondCXAnalytics-Demo.git" +INSTALL_BASE="/opt/beyondcx" + +############################################### +# UTILIDADES +############################################### +step() { + echo + echo "==================================================" + echo " 👉 $1" + echo "==================================================" +} + + +############################################### +# 1. COMPROBACIONES INICIALES +############################################### + +step "Recogiendo datos de configuración" + +read -rp "Dominio para la aplicación (ej: app.cliente.com): " DOMAIN +if [ -z "$DOMAIN" ]; then + echo "El dominio no puede estar vacío." + exit 1 +fi + +SUBDOMAIN=${DOMAIN%%.*} +if [[ $DOMAIN == $SUBDOMAIN ]]; then + DOMAIN=$DOMAIN".analytics.beyondcx.org" +fi +echo "el dominio es $DOMAIN y el subdominio $SUBDOMAIN" + +INSTALL_DIR=$INSTALL_BASE"/"$SUBDOMAIN + +read -rp "Usuario de acceso (Basic Auth / login): " API_USER +if [ -z "$API_USER" ]; then + echo "El usuario no puede estar vacío." + exit 1 +fi + +read -rsp "Contraseña de acceso: " API_PASS +echo +if [ -z "$API_PASS" ]; then + echo "La contraseña no puede estar vacía." + exit 1 +fi + +echo +echo "Resumen de configuración:" +echo " Dominio: $DOMAIN" +echo " Usuario API: $API_USER" + +read -rp "¿Continuar con la instalación? [s/N]: " CONFIRM +CONFIRM=${CONFIRM:-N} +if [[ ! "$CONFIRM" =~ ^[sS]$ ]]; then + echo "Instalación cancelada." + exit 0 +fi + +# COMENZAMOS ... + +############################################### +# 4. CONFIGURAR docker-compose.yml (credenciales y nginx) +############################################### +step "Aplicando credenciales al docker-compose.yml" + +if ! grep -q "BASIC_AUTH_USERNAME" docker-compose.yml; then + echo "⚠ No encuentro BASIC_AUTH_USERNAME en docker-compose.yml. Revisa el archivo a mano." +else + sed -i "s/BASIC_AUTH_USERNAME:.*/BASIC_AUTH_USERNAME: \"$API_USER\"/" docker-compose.yml +fi + +if ! grep -q "BASIC_AUTH_PASSWORD" docker-compose.yml; then + echo "⚠ No encuentro BASIC_AUTH_PASSWORD en docker-compose.yml. Revisa el archivo a mano." +else + sed -i "s/BASIC_AUTH_PASSWORD:.*/BASIC_AUTH_PASSWORD: \"$API_PASS\"/" docker-compose.yml +fi + +if ! grep -q "XXX" docker-compose.yml; then + echo "⚠ No encuentro XXX en docker-compose.yml. Revisa el archivo a mano." +else + sed -i "s/XXX/$SUBDOMAIN/g" docker-compose.yml +fi +if [[ $DOMAIN == $SUBDOMAIN ]]; then + set DOMAIN=$DOMAIN".analytics.beyondcx.org" +fi +if ! grep -q "DDD" docker-compose.yml; then + echo "⚠ No encuentro DDD en docker-compose.yml. Revisa el archivo a mano." +else + sed -i "s/DDD/$DOMAIN/" docker-compose.yml +fi + + + +step "Arrancando contenedores" + +docker compose up -d + +############################################### +# 8. FIN +############################################### +step "Instalación completada" + +echo "La aplicación debería estar disponible en: https://$DOMAIN" +echo +echo "Servicios levantados:" +docker compose ps