Self-hosting
Building from source Coming soon
Building the O3O editing server image from MPL 2.0 sources: experimental status, the steps and the license obligations.
Coming soon
The feature described on this page is coming soon; it is not part of v1.
Why a source build is needed#
- The DEV image is the upstream build: it carries the upstream name and logo, cannot be rebranded through configuration, and is for internal testing only.
- The DEV image has its own hard cap of 20 connections and 10 documents. The O3O image's compiled-in cap is still pending a decision;
Dockerfile.sourcetemporarily defaults to 9999 so the gate is the only place that enforces the plan's cap. The compiled-in cap counts EVERY connection, read-only included, and cannot be raised at run time, so the image must be built with a cap no lower than theconnsof the token it serves. - White labelling for the enterprise edition is only possible with a source-built image.
Status#
| Component | Status |
|---|---|
online/docker/Dockerfile.source | Written, not run end to end (experimental) |
online/docker/build-source.sh | Written, not run end to end (experimental) |
| Released O3O image | Not available |
| White label (logo, product name, colours) | Coming soon |
| Build time, disk and RAM needed | Not measured |
How to build (experimental)#
Prepare a machine
Use a Linux x86_64 machine with Docker and plenty of free disk space; the build includes the whole document engine and is very heavy.Read the instructions
The header comment ofonline/docker/build-source.shis the authoritative guide to its parameters and the image tag it produces.Build and try it
Run the script, setO3O_ONLINE_IMAGEto the new image andO3O_ONLINE_IMAGE_KIND=o3o, then check that/o3o/statusreportsdev_image = false.
# EXPERIMENTAL, NOT YET BUILT
cd online
less docker/build-source.sh # read the header comment first
bash docker/build-source.sh # run exactly as the header describes
# online/.env once the build succeeded
O3O_ONLINE_IMAGE=<image tag produced by the script>
O3O_ONLINE_IMAGE_KIND=o3o
# Check
curl -s http://localhost:8080/o3o/status | jq '{dev_image, upstream}'License obligations#
The editing server source code is licensed under the Mozilla Public License 2.0; the DocBuilder image contains LibreOffice and third-party fonts. The summary below helps track the obligations; the license texts are authoritative, and this is not legal advice.
- MPL 2.0 is a file-level copyleft: an MPL file you modify stays under the MPL.
- When you DISTRIBUTE an executable form (a Docker image included) containing MPL code, recipients must be told how to obtain the source of that MPL code, modifications included, in a timely manner and at no more than the cost of distribution.
- Keep the license notices found in the source code intact.
- O3O's own code (the gate, DocBuilder,
api.js, the proxy configuration) is owned by O3O, is not MPL-licensed and contains no modified MPL files, so that code itself is not subject to the MPL copyleft. The gate andapi.jsonly talk to the editing server over HTTP and WebSocket. DocBuilder does not modify LibreOffice code, but it loads LibreOffice's UNO library (python3-uno) into its own process, and the DocBuilder image is distributed WITH LibreOffice; MPL 2.0 allows such a combination as a Larger Work (section 3.3) without bringing O3O's code under the MPL, but the LibreOffice part of the image keeps its own obligations: distributing the image means including the license notices and stating where the LibreOffice source can be obtained (next two items). - The
o3o-docbuilderimage packages LibreOffice installed from the Debian bookworm archive (mostly MPL 2.0, some parts LGPL and other free licenses) together with Debian system packages. When you distribute this image to customers: keep the license files shipped in the image (/usr/share/doc/<package>/copyright,/usr/lib/libreoffice/LICENSE.html) and tell recipients how to obtain the source of the exact version, namely Debian bookworm'slibreofficesource package (apt-get source libreoffice=<version>or the snapshot.debian.org archive). The running LibreOffice version is reported byGET /v1/statusin thecorefield; the exact Debian package version is shown bydpkg-query -W libreoffice-corerun inside theo3o-docbuildercontainer. Keeping license files and pointing to the source applies to every Debian package in the O3O images, the gate image included. - The DocBuilder image ships fonts so layouts match the originals: Carlito, Caladea, Liberation 2 and Noto (SIL Open Font License 1.1); Liberation 1.07 (GPL 2 with a font exception, so documents using the font are not bound by the GPL); DejaVu (Bitstream Vera license). These licenses allow redistributing the fonts with the image as long as the license files are kept; the OFL and the Bitstream Vera license forbid selling the fonts on their own, not bundling them with software.
- The MPL grants no trademark rights: a released build must replace the upstream name and logo with the O3O brand, and must not use the upstream support-key mechanism.
Coming soon
A public repository with O3O's modifications to the MPL code, for recipients of the O3O image.
License text: mozilla.org/MPL/2.0.