#!/usr/bin/env bash set -e USERS_FILE="config/users" ADMIN_USER="admin" echo "🔐 Creando usuario administrador para Radicale..." # Verificar que htpasswd esté disponible if ! command -v htpasswd >/dev/null 2>&1; then echo "❌ htpasswd no encontrado. Instalando apache2-utils..." if command -v apt >/dev/null 2>&1; then sudo apt update && sudo apt install -y apache2-utils elif command -v yum >/dev/null 2>&1; then sudo yum install -y httpd-tools elif command -v pacman >/dev/null 2>&1; then sudo pacman -S apache-tools else echo "❌ No se pudo instalar htpasswd automáticamente" echo "💡 Instala manualmente: apache2-utils (Ubuntu/Debian) o httpd-tools (RHEL/CentOS)" exit 1 fi fi # Crear directorio config si no existe mkdir -p config # Verificar si ya existe el usuario admin if [ -f "$USERS_FILE" ] && grep -q "^$ADMIN_USER:" "$USERS_FILE"; then echo "⚠️ El usuario '$ADMIN_USER' ya existe." read -rp "¿Deseas cambiar su contraseña? (s/n): " change_password if [[ "$change_password" =~ ^[sS]$ ]]; then echo "🔄 Cambiando contraseña para '$ADMIN_USER'..." htpasswd -B "$USERS_FILE" "$ADMIN_USER" else echo "🚫 Operación cancelada." exit 0 fi else # Crear archivo de usuarios si no existe if [ ! -f "$USERS_FILE" ]; then touch "$USERS_FILE" echo "📁 Archivo de usuarios creado: $USERS_FILE" fi echo "➕ Creando usuario '$ADMIN_USER'..." htpasswd -B "$USERS_FILE" "$ADMIN_USER" fi echo "" echo "✅ Usuario administrador configurado correctamente" echo "📝 Usuario: $ADMIN_USER" echo "📂 Archivo: $USERS_FILE" echo "" # Reiniciar Radicale si está corriendo if docker ps --format 'table {{.Names}}' | grep -q radicale; then echo "🔄 Reiniciando contenedor Radicale..." docker compose restart radicale >/dev/null 2>&1 echo "✅ Radicale reiniciado" else echo "ℹ️ Para aplicar los cambios, ejecuta: docker compose up -d" fi echo "" echo "🎉 ¡Listo! Puedes usar '$ADMIN_USER' para acceder a Radicale"