mejorado para uso en servidor

This commit is contained in:
2025-11-15 17:42:07 +00:00
parent 233c8fefbf
commit 8dc5db63cd
4 changed files with 38 additions and 4 deletions
+5
View File
@@ -5,6 +5,11 @@
RADICALE_USERNAME=admin RADICALE_USERNAME=admin
RADICALE_PASSWORD=tu_contraseña_segura_aqui RADICALE_PASSWORD=tu_contraseña_segura_aqui
# Configuración de dominios públicos (Coolify)
RADICALE_DOMAIN=radicale.tu-dominio.com
INFCLOUD_DOMAIN=infcloud.tu-dominio.com
COOLIFY_ENTRYPOINTS=https
# Configuración de Red # Configuración de Red
RADICALE_PORT=5232 RADICALE_PORT=5232
INFCLOUD_PORT=8090 INFCLOUD_PORT=8090
+15
View File
@@ -70,6 +70,11 @@ INFCLOUD_PORT=8090
# Configuración de Zona Horaria # Configuración de Zona Horaria
TZ=Europe/Madrid TZ=Europe/Madrid
# Dominios públicos (Coolify)
RADICALE_DOMAIN=radicale.tu-dominio.com
INFCLOUD_DOMAIN=infcloud.tu-dominio.com
COOLIFY_ENTRYPOINTS=https
# URLs base # URLs base
RADICALE_BASE_URL=http://localhost:5232 RADICALE_BASE_URL=http://localhost:5232
INFCLOUD_BASE_URL=http://localhost:8090 INFCLOUD_BASE_URL=http://localhost:8090
@@ -130,6 +135,16 @@ docker compose restart radicale
- **Ruta principal:** /usuario/ - **Ruta principal:** /usuario/
- **SSL:** No (para desarrollo local) - **SSL:** No (para desarrollo local)
## 🌐 Integración con coolify-proxy
1. **Define los dominios públicos:** Rellena las variables `RADICALE_DOMAIN`, `INFCLOUD_DOMAIN` y `COOLIFY_ENTRYPOINTS` (por defecto `https`) en `.env`. Mantén `RADICALE_BASE_URL` e `INFCLOUD_BASE_URL` apuntando a las URLs HTTPS finales para que InfCloud genere enlaces correctos.
2. **Genera la configuración de InfCloud:** `make config`.
3. **Asegura la red externa:** Coolify crea una red llamada `coolify-proxy`. Si no existe ejecútalo una vez como root: `docker network create coolify-proxy`.
4. **Ajusta y despliega los servicios:** `docker compose up -d` (o `make start`). Cada servicio se conectará automáticamente tanto a `caldav_net` como a `coolify-proxy` y expondrá las etiquetas Traefik necesarias.
5. **Verifica la conexión a la red de Coolify:** `docker network inspect coolify-proxy | grep -E 'radicale|infcloud'`.
6. **Crea los routers desde Coolify:** Dentro del panel de Coolify > Proxy, declara cada subdominio apuntando al contenedor correspondiente y al puerto interno (`5232` para Radicale, `80` para InfCloud). Traefik detectará los labels y emitirá los certificados usando el resolver indicado.
7. **Pruebas rápidas:** `docker compose ps` para comprobar que ambos contenedores están arriba y `curl -u usuario:contraseña -X PROPFIND https://tu-subdominio-radicale/usuario/ -H "Depth: 0"` para validar la publicación detrás de Coolify.
## 🐛 Resolución de Problemas ## 🐛 Resolución de Problemas
### Error 405 PROPFIND ### Error 405 PROPFIND
+14
View File
@@ -14,6 +14,12 @@ services:
- "${RADICALE_PORT}:5232" - "${RADICALE_PORT}:5232"
networks: networks:
- caldav_net - caldav_net
- coolify-proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.radicale.rule=Host(`${RADICALE_DOMAIN}`)"
- "traefik.http.routers.radicale.entrypoints=${COOLIFY_ENTRYPOINTS}"
- "traefik.http.services.radicale.loadbalancer.server.port=5232"
infcloud: infcloud:
image: nginx:alpine image: nginx:alpine
@@ -30,7 +36,15 @@ services:
- ./infcloud_config/nginx-simple.conf:/etc/nginx/conf.d/default.conf:ro - ./infcloud_config/nginx-simple.conf:/etc/nginx/conf.d/default.conf:ro
networks: networks:
- caldav_net - caldav_net
- coolify-proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.infcloud.rule=Host(`${INFCLOUD_DOMAIN}`)"
- "traefik.http.routers.infcloud.entrypoints=${COOLIFY_ENTRYPOINTS}"
- "traefik.http.services.infcloud.loadbalancer.server.port=80"
networks: networks:
caldav_net: caldav_net:
driver: bridge driver: bridge
coolify-proxy:
external: true
+2 -2
View File
@@ -3,7 +3,7 @@
// Configuración según documentación oficial de Radicale // Configuración según documentación oficial de Radicale
// https://github.com/Kozea/Radicale/wiki/Client-InfCloud // https://github.com/Kozea/Radicale/wiki/Client-InfCloud
var globalNetworkCheckSettings = { var globalNetworkCheckSettings = {
href: 'http://localhost:8090/radicale/', href: 'https://infcloud-h5j23io4jn45.organic-machine.com/radicale/',
timeOut: 90000, timeOut: 90000,
lockTimeOut: 10000, lockTimeOut: 10000,
checkContentType: false, checkContentType: false,
@@ -109,7 +109,7 @@ var globalHideInfoMessageAfter = 3000; // Tiempo en millisegundos para ocultar m
var globalDefaultActiveApp = null; var globalDefaultActiveApp = null;
var globalSubscribedCalendars = {}; var globalSubscribedCalendars = {};
var globalCalendarStartOfBusiness = 8; var globalCalendarStartOfBusiness = 8;
var globalCalendarEndOfBusiness = 19; var globalCalendarEndOfBusiness = 17;
var globalAMPMFormat = false; var globalAMPMFormat = false;
// Persistencia de configuraciones de usuario // Persistencia de configuraciones de usuario