2.5 KiB
onlyoffice
ONLYOFFICE Docs Community Edition: an online editor for documents, spreadsheets and presentations. It has no file storage or user accounts of its own; a storage app opens files in it and receives the saved result.
One container, onlyoffice. Map the domain to port 80.
Setup
- Set
JWT_SECRET. - Map the domain to port
80and deploy. Every start regenerates the font list, so the health check takes a minute or two to pass. - Give the storage app the public URL and the same
JWT_SECRET.
Health check: GET /healthcheck. It answers 200 with false when a
dependency is down, so the compose healthcheck matches the body true rather
than relying on the status code.
Environment
| Variable | Default | Purpose |
|---|---|---|
JWT_SECRET |
— | Secret for signing requests between the editor and the storage app |
ALLOW_PRIVATE_IP_ADDRESS |
false |
Allow fetching files from, and calling back to, private IP addresses |
JWT_ENABLED is fixed to true. JWT_SECRET fails fast if unset: the image
otherwise generates a random secret on every start, which breaks the storage
app's connection after each redeploy.
ALLOW_PRIVATE_IP_ADDRESS is needed only when the storage app is reached over
a private network, such as a container hostname or a LAN address. The editor
refuses those addresses by default, so leave it off when the storage app uses
a public URL.
Storage
| Volume | Mount | Holds |
|---|---|---|
onlyoffice-data |
/var/www/onlyoffice/Data |
Certificates and generated WOPI keys |
onlyoffice-lib |
/var/lib/onlyoffice |
Document cache and converted files |
onlyoffice-logs |
/var/log/onlyoffice |
Logs |
Nothing here is the documents themselves; those stay in the storage app. The volumes keep the cache and keys across redeploys.
Images
onlyoffice/documentserver:latest: upstream publishes X.Y and X.Y.Z tags
but no major tag. Back up the volumes before a pull that crosses a major.
The 9.x images up to 9.4 still run PostgreSQL, RabbitMQ and Redis inside the container for the Community Edition, in volumes the image declares itself; upstream's source has since dropped them from the Community build. Either way no separate database, broker or cache container is needed, and none of their connection variables are set.
stop_grace_period: 60s follows upstream's compose, giving the editor time to
save open documents back to the storage app on shutdown.