Docker-Installation (externes Nginx)
In diesem Setup laufen der NocoBase-App-Container und der Nginx-Container getrennt. Du kannst mit Docker-Installation (integriertes Nginx) starten und den Einstieg danach auf einen externen Nginx-Container umstellen.
Wann dieses Setup sinnvoll ist
- Du möchtest NocoBase und den Webserver getrennt betreiben
- Du möchtest die Nginx-Konfiguration und die freigegebenen Ports selbst verwalten
- Du möchtest nur den Proxy-Container öffentlich erreichbar machen
Beispiel für docker-compose.yml
Wenn du das full-Image brauchst, ersetze latest-no-nginx durch latest-full-no-nginx.
Das Mapping 13000:80 ist nur für lokale Tests gedacht, damit die Standardports des Hosts nicht direkt belegt werden. In Produktion wird 13000:80 normalerweise nicht beibehalten; stattdessen mappt der externe Nginx-Container direkt auf die Host-Ports 80 und 443.
Wichtige Punkte
NOCOBASE_EXTRACT_CLIENT_ASSETS=trueextrahiert die Client-Assets und erzeugt die Proxy-KonfigurationNOCOBASE_PROXY_PROVIDER=nginxlegt fest, dass eine Nginx-Konfiguration erzeugt wirdNOCOBASE_PROXY_UPSTREAM_HOST=appermöglicht dem Nginx-Container den Zugriff auf den Dienstappüber das Compose-Netzwerk./storagemuss sowohl inappals auch innginxgemountet werden, damit Proxy-Konfiguration, statische Dateien und Uploads gemeinsam genutzt werden können- Der
nginx-Container sollte warten, bisnocobase.conferzeugt wurde, und die Datei dann mitln -sfnach/etc/nginx/conf.d/default.confverlinken - Die erzeugte Konfiguration leitet sowohl die
/files/-Route unterAPP_PUBLIC_PATHals auch die Root-Route/files/an NocoBase weiter, damit Dateivorschau und Downloads authentifiziert werden können - Bevor Nginx eine historische
/storage/uploads/-Datei peraliasausliefert, prüft NocoBase überauth_requestden Anmeldestatus; anonyme Zugriffe erhalten standardmäßig401 - Wenn du einen externen Nginx-Container verwendest, sollte der
nginx-Container das Host-Port-Mapping übernehmen. Für Tests kannst du mit13000:80beginnen; in Produktion werden normalerweise die Host-Ports80und443direkt veröffentlicht, während der Dienstappkeinen Port zum Host veröffentlichen muss
Wenn ein bestehendes Programm anonymen Zugriff auf /storage/uploads/ benötigt, füge LEGACY_LOCAL_STORAGE_PUBLIC_ACCESS=true zu app.environment hinzu und starte den Anwendungscontainer neu. Entferne auth_request nicht; der Authentifizierungsendpunkt wertet diese Variable aus. Die Berechtigungen für /files/ bleiben unverändert.
Wenn du ein lokales Nginx auf dem Host verwendest
Wenn dein Nginx direkt auf dem Host installiert ist und nicht in einem Docker-Container läuft, solltest du besser ein separates docker-compose.yml verwenden. Dabei muss der Dienst app einen Port zum Host veröffentlichen, und die Proxy-Variablen müssen aus Host-Sicht gesetzt werden.
Du kannst ein docker-compose.yml wie dieses verwenden:
In dieser Variante:
NOCOBASE_PROXY_STORAGE_PATHsollte der absolute Host-Pfad desstorage-Verzeichnisses seinNOCOBASE_PROXY_UPSTREAM_HOSTsollte127.0.0.1sein- Der Dienst
appmussportsbehalten, damit das lokale Nginx die Anwendung über127.0.0.1:13000erreichen kann
Nachdem der app-Container gestartet wurde, warte auf die Generierung der Konfigurationsdatei und verlinke sie dann in das lokale Nginx-Konfigurationsverzeichnis:
Wenn dein Host-Nginx kein conf.d-Verzeichnis verwendet, ersetze das Link-Ziel durch deinen eigenen Konfigurationspfad. In der Regel ist es sicherer, nocobase.conf als Datei zu behalten, die aus dem http {}-Kontext eingebunden wird, statt ihren Inhalt manuell zu kopieren.
Wenn du Nginx selbst verwaltest und nicht die erzeugte Konfiguration verwendest, stelle sicher, dass /files/ und die entsprechende Route unter APP_PUBLIC_PATH vor den SPA-Fallback-Regeln an NocoBase weitergeleitet werden. Beim Ausliefern von /storage/uploads/ per alias muss außerdem auth_request konfiguriert sein, damit die Anmeldeprüfung nicht umgangen wird. Ein vollständiges Beispiel findest du unter Nginx-Reverse-Proxy.
Verwandte Links
- Docker-Installation (integriertes Nginx) — Starte mit dem Single-Container-Setup
- Statischer Ressourcen-Proxy mit Nginx — Mehr zur generierten Nginx-Konfiguration

