#!/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