Instalación con Docker (Nginx externo)
En esta modalidad, el contenedor de la aplicación NocoBase y el contenedor de Nginx se ejecutan por separado. Puedes empezar con Instalación con Docker (Nginx integrado) y luego cambiar la entrada a un contenedor externo de Nginx.
Cuándo usar esta modalidad
- Quieres desplegar NocoBase y el servidor web por separado
- Quieres gestionar tú mismo la configuración de Nginx y los puertos expuestos
- 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 Nginx 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=nginxindica que debe generarse la configuración de NginxNOCOBASE_PROXY_UPSTREAM_HOST=apppermite que el contenedor de Nginx acceda al servicioappmediante la red de Compose./storagedebe montarse tanto enappcomo ennginxpara compartir la configuración del proxy, los recursos estáticos y los archivos subidos- El contenedor
nginxdebe esperar a que se generenocobase.confy luego enlazarlo a/etc/nginx/conf.d/default.confconln -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 - Si usas un contenedor externo de Nginx, deja que el contenedor
nginxgestione el mapeo del puerto del host. Para pruebas, puedes empezar con13000:80; en producción, normalmente se exponen directamente los puertos80y443del host, mientras que el servicioappno necesita exponer su puerto al host
Si usas Nginx local en el host
Si tu Nginx 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 Nginx 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 al directorio de configuración local de Nginx:
Si tu Nginx local no usa el directorio conf.d, 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.conf como un archivo incluido desde el contexto http {} en lugar de copiar su contenido manualmente.
Si mantienes Nginx 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 Nginx 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 Nginx — Más detalles sobre la configuración generada de Nginx

