The internal bundled Nginx is not recommend to be modified. You can work on the Caddy layer (Or use another reverse proxy).
Here are some recommendations suggested by our AI (manually checked):
In Seafile version 13.0, the Docker deployment model has shifted to using Caddy as the primary entry point and reverse proxy. The reason the Nginx configuration is no longer mounted is that customization is now intended to be handled through Caddy labels or an external reverse proxy.
Regarding your port concerns, you do not necessarily have to open port 6233 to the internet. Since you are limited to ports 80 and 443, you have two primary ways to integrate OnlyOffice using the new V13 architecture:
Option 1: Use a dedicated subdomain (Recommended)
You can assign a separate domain (e.g., office.yourdomain.com) to OnlyOffice. Caddy will automatically handle the SSL certificate and route traffic over port 443.
In your onlyoffice.yml, you can update the labels for the OnlyOffice service:
services:
onlyoffice:
...
labels:
caddy: office.yourdomain.com
caddy.reverse_proxy: "{{upstreams}}"
Then, update your seahub_settings.py to point to this new URL:
ONLYOFFICE_APIJS_URL = 'https://office.yourdomain.com/web-apps/apps/api/documents/api.js'
Option 2: Use a sub-path on your main domain
If you prefer to keep using yourdomain.com/onlyofficeds/, you can configure Caddy to route that specific path to the OnlyOffice container. This allows you to keep only port 443 open.
Update your onlyoffice.yml labels as follows:
services:
onlyoffice:
...
labels:
caddy: yourdomain.com
caddy.handle: /onlyofficeds/*
caddy.handle.0_uri: strip_prefix /onlyofficeds
caddy.handle.1_reverse_proxy: "{{upstreams}}"
Note: The strip_prefix is necessary because OnlyOffice expects to serve content from the root internally.
Important Reminders for V13:
- JWT Secret: V13 enforces JWT. Ensure the
ONLYOFFICE_JWT_SECRET in your .env file matches the one in seahub_settings.py.
- Internal Ports: The port
6233 mentioned in the documentation is the default internal port. If you use the Caddy routing above, Caddy handles the communication internally, so you do not need to forward port 6233 on your router.
- Config Clean-up: Note that
FILE_SERVER_ROOT and SERVICE_URL are no longer used in Seafile V13, so you do not need to worry about those settings for this integration.