Files
BeyondCXAnalytics-Demo/generate_compose.sh

115 lines
3.1 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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