Instalación con Docker (Caddy externo)
En esta modalidad, el contenedor de la aplicación NocoBase y el contenedor de Caddy se ejecutan por separado. Puedes empezar con Instalación con Docker (Nginx integrado) y luego cambiar la entrada a un contenedor externo de Caddy.
Cuándo usar esta modalidad
- Quieres desplegar NocoBase y el servidor web por separado
- Quieres simplificar la configuración del proxy inverso y HTTPS con Caddy
- Quieres exponer a la red pública solo el contenedor proxy
Ejemplo de docker-compose.yml
Si necesitas la imagen full, sustituye latest-no-nginx por latest-full-no-nginx.
El mapeo 13000:80 es solo para facilitar las pruebas locales y evitar ocupar directamente los puertos estándar del host. En producción, normalmente no se mantiene 13000:80; en su lugar, el contenedor externo de Caddy se mapea directamente a los puertos 80 y 443 del host.
Puntos clave
NOCOBASE_EXTRACT_CLIENT_ASSETS=trueextrae los recursos del cliente y genera la configuración del proxyNOCOBASE_PROXY_PROVIDER=caddyindica que debe generarse la configuración de CaddyNOCOBASE_PROXY_UPSTREAM_HOST=apppermite que el contenedor de Caddy acceda al servicioappmediante la red de Compose./storagedebe montarse tanto enappcomo encaddypara compartir la configuración del proxy, los recursos estáticos y los archivos subidos- El contenedor
caddydebe esperar a que se generenocobase.caddyy luego enlazarlo a/etc/caddy/Caddyfileconln -sf - La configuración generada reenvía a NocoBase tanto la ruta
/files/bajoAPP_PUBLIC_PATHcomo la ruta/files/en la raíz para permitir vistas previas y descargas autenticadas - Expón al host solo el puerto del contenedor de Caddy. Para pruebas, puedes empezar con
13000:80; en producción, normalmente se exponen directamente los puertos80y443del host, mientras que el servicioappno necesita exponer su puerto al host
Si usas Caddy local en el host
Si tu Caddy está instalado directamente en el host y no se ejecuta dentro de un contenedor Docker, es mejor usar un docker-compose.yml independiente. En este caso, el servicio app debe exponer un puerto al host y las variables del proxy deben configurarse desde la perspectiva del host.
Puedes usar un docker-compose.yml como este:
En esta variante:
NOCOBASE_PROXY_STORAGE_PATHdebe ser la ruta absoluta del directoriostorageen el hostNOCOBASE_PROXY_UPSTREAM_HOSTdebe ser127.0.0.1- El servicio
appdebe conservarports, para que el Caddy local pueda acceder a la aplicación mediante127.0.0.1:13000
Después de iniciar el contenedor app, espera a que se genere el archivo de configuración y luego enlázalo a la ruta de configuración local de Caddy:
Si tu Caddy local no usa /etc/caddy/Caddyfile, sustituye la ruta del enlace por tu propia ruta de configuración. En la mayoría de los casos es más seguro mantener nocobase.caddy como archivo de entrada principal en lugar de copiar su contenido manualmente.
Si mantienes Caddy por tu cuenta en lugar de usar la configuración generada, asegúrate de que /files/* y la ruta correspondiente bajo APP_PUBLIC_PATH se reenvíen a NocoBase antes de las reglas de fallback de la SPA. Consulta Proxy inverso con Caddy para ver un ejemplo completo.
Enlaces relacionados
- Instalación con Docker (Nginx integrado) — Empieza con el despliegue de un solo contenedor
- Proxy de recursos estáticos con Caddy — Más detalles sobre la configuración generada de Caddy

