calnedario iniciado

This commit is contained in:
2025-11-13 01:11:01 +01:00
commit 1212c82ea9
206 changed files with 172012 additions and 0 deletions
Executable
+173
View File
@@ -0,0 +1,173 @@
#!/usr/bin/env bash
set -e
echo "🚀 Inicializando servidor CalDAV/CardDAV con Radicale + InfCloud"
echo "================================================================"
# Colores para output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Función para mostrar mensajes
info() { echo -e "${BLUE}$1${NC}"; }
success() { echo -e "${GREEN}$1${NC}"; }
warning() { echo -e "${YELLOW}⚠️ $1${NC}"; }
error() { echo -e "${RED}$1${NC}"; }
# Verificar dependencias
info "Verificando dependencias..."
# Verificar Docker
if ! command -v docker >/dev/null 2>&1; then
error "Docker no encontrado. Instálalo primero: https://docs.docker.com/get-docker/"
exit 1
fi
# Verificar Docker Compose
if ! docker compose version >/dev/null 2>&1; then
error "Docker Compose no encontrado o no funciona"
exit 1
fi
# Verificar htpasswd
if ! command -v htpasswd >/dev/null 2>&1; then
warning "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
error "No se pudo instalar htpasswd automáticamente"
echo "Instala manualmente: apache2-utils (Ubuntu/Debian) o httpd-tools (RHEL/CentOS)"
exit 1
fi
fi
success "Dependencias verificadas"
# 1. Crear estructura de directorios
info "Creando estructura de directorios..."
mkdir -p data config infcloud_config
success "Directorios creados"
# 2. Copiar configuración de Radicale
info "Configurando Radicale..."
if [ ! -f "config/config" ]; then
cp config_example/config config/config
success "Configuración de Radicale creada"
else
warning "Ya existe config/config, no se sobrescribirá"
fi
# 3. Copiar configuración de InfCloud
info "Configurando InfCloud..."
if [ ! -f "infcloud_config/config.js" ]; then
cp infcloud_config_example/config.js infcloud_config/config.js
success "Configuración de InfCloud creada"
else
warning "Ya existe infcloud_config/config.js, no se sobrescribirá"
fi
# 4. Crear archivo de usuarios vacío
if [ ! -f "config/users" ]; then
touch config/users
success "Archivo de usuarios creado"
else
warning "Ya existe config/users"
fi
# 5. Crear usuario administrador
info "Configurando usuario administrador..."
read -p "¿Quieres crear un usuario admin ahora? (s/n): " create_admin
if [[ "$create_admin" =~ ^[sS]$ ]]; then
htpasswd -B config/users admin
success "Usuario admin creado"
else
info "Puedes crear el usuario admin más tarde con: ./create_admin.sh"
fi
# 6. Verificar y parar servicios existentes si están corriendo
info "Verificando servicios existentes..."
if docker ps --format 'table {{.Names}}' | grep -E 'radicale|infcloud' >/dev/null 2>&1; then
warning "Servicios ya corriendo. Reiniciando..."
docker compose down
fi
# 7. Levantar servicios
info "Levantando servicios..."
docker compose up -d
# Esperar a que los servicios se inicien
info "Esperando a que los servicios se inicien..."
sleep 5
# 8. Verificar que los servicios están corriendo
info "Verificando servicios..."
# Verificar contenedores
if docker ps --format 'table {{.Names}}\t{{.Status}}' | grep -E 'radicale|infcloud' | grep -q 'Up'; then
success "Contenedores corriendo correctamente"
else
error "Problema con los contenedores"
docker ps --format 'table {{.Names}}\t{{.Status}}' | grep -E 'radicale|infcloud'
exit 1
fi
# 9. Verificar conectividad
info "Verificando conectividad..."
# Verificar Radicale
if curl -s -f http://localhost:5232/ >/dev/null 2>&1; then
success "Radicale responde en http://localhost:5232"
else
error "Radicale no responde"
echo "Logs de Radicale:"
docker logs radicale --tail 10
fi
# Verificar InfCloud
if curl -s -f http://localhost:8090/ >/dev/null 2>&1; then
success "InfCloud responde en http://localhost:8090"
else
warning "InfCloud puede estar iniciándose aún..."
echo "Logs de InfCloud:"
docker logs infcloud --tail 10
fi
echo ""
echo "🎉 ¡Inicialización completada!"
echo "============================================="
echo ""
echo "📱 Servicios disponibles:"
echo " • Radicale (servidor): http://localhost:5232"
echo " • InfCloud (cliente web): http://localhost:8090"
echo ""
echo "🔑 Credenciales:"
if [[ "$create_admin" =~ ^[sS]$ ]]; then
echo " • Usuario: admin"
echo " • Contraseña: (la que configuraste)"
else
echo " • Ejecuta: ./create_admin.sh para crear usuario admin"
fi
echo ""
echo "📚 Gestión:"
echo " • Usuarios: ./radicale_users.sh"
echo " • Parar: docker compose down"
echo " • Reiniciar: docker compose restart"
echo ""
echo "🧪 Prueba de conexión:"
echo " • Abre http://localhost:8090 en tu navegador"
echo " • Usa las credenciales configuradas"
echo ""
# Mostrar estado final
info "Estado actual de los servicios:"
docker ps --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}' | grep -E 'NAMES|radicale|infcloud'
echo ""
success "Setup completado exitosamente 🚀"