.PHONY: help start stop restart logs config clean # Archivo de configuración ENV_FILE := .env help: ## Mostrar esta ayuda @echo "Comandos disponibles:" @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) config: ## Generar config.js desde variables de entorno @if [ ! -f $(ENV_FILE) ]; then \ echo "Error: Archivo .env no encontrado. Copia .env.example a .env y configura las variables."; \ exit 1; \ fi @echo "Generando config.js desde variables de entorno..." @bash -c 'source $(ENV_FILE) && sed "s|\$${RADICALE_USERNAME}|$$RADICALE_USERNAME|g; s|\$${RADICALE_PASSWORD}|$$RADICALE_PASSWORD|g; s|\$${RADICALE_BASE_URL}|$$RADICALE_BASE_URL|g; s|\$${INFCLOUD_BASE_URL}|$$INFCLOUD_BASE_URL|g" infcloud_config/config.js.template > infcloud_config/config.js' @echo "✅ Config.js generado exitosamente" start: config ## Generar configuración e iniciar servicios docker compose up -d stop: ## Detener servicios docker compose down restart: ## Reiniciar servicios docker compose down && docker compose up -d logs: ## Mostrar logs de todos los servicios docker compose logs -f logs-infcloud: ## Mostrar logs solo de InfCloud docker compose logs -f infcloud logs-radicale: ## Mostrar logs solo de Radicale docker compose logs -f radicale status: ## Mostrar estado de los servicios @echo "=== Estado de servicios ===" @docker compose ps @echo "" @echo "=== URLs de acceso ===" @bash -c 'source $(ENV_FILE) && echo "InfCloud: http://localhost:$$INFCLOUD_PORT/"' @bash -c 'source $(ENV_FILE) && echo "Radicale: http://localhost:$$RADICALE_PORT/"' test-connection: ## Probar conexión con Radicale @bash -c 'source $(ENV_FILE) && curl -u "$$RADICALE_USERNAME:$$RADICALE_PASSWORD" -X PROPFIND "http://localhost:$$RADICALE_PORT/$$RADICALE_USERNAME/" -H "Depth: 0" -v 2>&1 | grep "< HTTP"' clean: ## Limpiar configuración generada rm -f infcloud_config/config.js setup: ## Configuración inicial (copia .env.example a .env) @if [ ! -f $(ENV_FILE) ]; then \ cp .env.example $(ENV_FILE); \ echo "✅ Archivo .env creado desde .env.example"; \ echo "📝 Edita el archivo .env con tus credenciales antes de continuar"; \ else \ echo "⚠️ El archivo .env ya existe"; \ fi