#!/bin/bash # Script para arreglar Activepieces en Alicante Core V3.2 # Se ejecuta en DCC (10.10.10.101) dentro de /sc/alicante-infra # Colores GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' REPO_DIR="/sc/alicante-infra" GROUP_VARS="$REPO_DIR/group_vars/all.yml" # IMPORTANTE: Ajusta si tu template real tiene otro nombre (ej. apps-business-compose.j2) TEMPLATE_FILE="$REPO_DIR/roles/core/templates/business-compose.j2" # 0. Verificaciones if [ ! -f "$GROUP_VARS" ]; then echo -e "${RED}ERROR: No encuentro $GROUP_VARS. ¿Estás en el DCC?${NC}" exit 1 fi # Verificar nombre real del template (Ansible usa src: "{{ item }}-compose.j2" normalmente) if [ ! -f "$TEMPLATE_FILE" ]; then # Intentamos buscar si existe con prefijo apps- if [ -f "$REPO_DIR/roles/core/templates/apps-business-compose.j2" ]; then TEMPLATE_FILE="$REPO_DIR/roles/core/templates/apps-business-compose.j2" echo -e "${YELLOW}Aviso: Usando template alternativo: $TEMPLATE_FILE${NC}" else echo -e "${RED}ERROR: No encuentro el template business-compose.j2${NC}" exit 1 fi fi echo -e "${GREEN}=== FIX ACTIVEPIECES SECRETS ===${NC}" # 1. Generar Claves echo -e "${YELLOW}[1/3] Generando claves criptográficas...${NC}" AP_KEY=$(openssl rand -hex 16) AP_JWT=$(openssl rand -base64 32) echo " Encryption Key: $AP_KEY" echo " JWT Secret: (generado)" # 2. Inyectar en group_vars/all.yml echo -e "${YELLOW}[2/3] Actualizando group_vars/all.yml...${NC}" if grep -q "ap_encryption_key" "$GROUP_VARS"; then echo -e " ⚠️ Variables ya existen en group_vars. Saltando inyección." else cat <> "$GROUP_VARS" # Activepieces Configuration ap_encryption_key: "$AP_KEY" ap_jwt_secret: "$AP_JWT" EOT echo -e " ✅ Variables añadidas al final del archivo." fi # 3. Parchear el Template (business-compose.j2) echo -e "${YELLOW}[3/3] Parcheando template Docker Compose...${NC}" # Hacemos backup cp "$TEMPLATE_FILE" "${TEMPLATE_FILE}.bak_ap" # Estrategia: Buscar la línea AP_FRONTEND_URL e insertar debajo las nuevas variables # Usamos perl para inserción multilínea segura perl -i -pe 's|(AP_FRONTEND_URL:.*)|$1\n AP_ENCRYPTION_KEY: "{{ ap_encryption_key }}"\n AP_JWT_SECRET: "{{ ap_jwt_secret }}"|g' "$TEMPLATE_FILE" if grep -q "AP_ENCRYPTION_KEY" "$TEMPLATE_FILE"; then echo -e " ✅ Template parcheado correctamente." else echo -e "${RED}ERROR: Falló el parcheo del template. Revisa manualmente.${NC}" # Restaurar backup si falló cp "${TEMPLATE_FILE}.bak_ap" "$TEMPLATE_FILE" fi echo -e "${GREEN}=== LISTO ===${NC}" echo -e "Ahora ejecuta:" echo -e "1. git diff" echo -e "2. git add . && git commit -m 'Fix Activepieces secrets' && git push" echo -e "3. Desplegar en Semaphore"