calnedario iniciado
This commit is contained in:
@@ -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 🚀"
|
||||
Reference in New Issue
Block a user