ONLYOFFICE Docs is a self-hosted office suite distributed in terms of the AGPLv3 license. It allows editing text documents, spreadsheets, and presentations in a browser.
Format Compatibility
Just like the desktop version, ONLYOFFICE Docs uses docx, xlsx, and pptx as core formats. This means that ONLYOFFICE creates these files and saves them by default.
ODF files are supported through conversion. For example, if you open an odt file, it will be converted to docx. After you finish editing, you can save the file back to odt.
Old binary files (doc, xls, ppt) are converted too. However, you can’t save to these formats.
Other than that, pdf files are available for viewing. You can also save any of your documents to pdf.
Functionality
ONLYOFFICE allows editing and collaborating on office files using real-time co-editing, reviewing, commenting, and built-in chat.
Real-time co-editing has two modes:
- In Fast mode, in which you can see what everyone is typing in real-time.
- In Strict mode, in which you can lock the paragraph you are working with. No one can see your changes until you hit “Save” and you can’t see theirs as well.
Latest Updates
ONLYOFFICE receives several updates and bug fixes per year. The latest versions were focused on spreadsheets. This year the developers added pivot tables, slicers, data validation, and more.
The most recent updates for the doc editor include cross-references, end-notes, and a table of figures.
The changelog is available on GitHub.
Hardware Requirements
According to the official documentation, to install ONLYOFFICE Docs, you’ll need at least:
- Single-core 2 GHz CPU
- 2 GB of RAM
- 40 GB of storage
- 4 GB of swap
Docker Installation
The easiest way to install the suite is to use Docker. Also, this method is officially recommended by the developers.
Assuming that you already have the latest version of Docker, you can install ONLYOFFICE Docs with a single command:
If you want to change the port, use the -p command. Example for port 8080:
Storing Data Outside Containers
All the data is stored in the specially-designated directories called data volumes:
- logs — `/var/log/onlyoffice`
- certificates — `/var/www/onlyoffice/Data`
- file cache — `/var/lib/onlyoffice`
- database — `/var/lib/postgresql`
It’s a good idea to mount those you need to your hosting machine. Use -v option in the docker run command:
If you delete the container or something goes wrong during the update, you won’t lose your data. You will also be able to update your certificates without messing with the container.
SSL Certificates
You can use HTTPS to prevent unauthorized access.
To do so, two files are needed: private key (.key) and SSL certificate (.crt). You can either get them from a trusted CA or generate them yourself.
Generate DHE parameters (optional step):
Then install the files:
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key`
Restart the Docker container:
Deb and Rpm
Use the official documentation to install ONLYOFFICE Docs on Debian/Ubuntu and CentOS with deb and rpm packages.
Integration with Different Doc Management Systems
By default, ONLYOFFICE Docs only contains editors for documents, spreadsheets, and presentations. To use them as a Google Docs alternative on your server, you’ll need to integrate the suite with a document management system (DMS):
- Native ONLYOFFICE Groups platform for collaboration on documents and projects. If you plan to opt for this, it’s easier to install a bundle (editors + platform).
- Nextcloud or ownCloud. ONLYOFFICE Docs can be installed on the same server as NC/oC or on a different machine. You’ll also need to install a connector — an integration app that serves as a bridge between the editors and the dms.
- Seafile, Nuxeo, Plone, etc. have the full list of integrations
- Your own app. To integrate the editors, use the official API. Note that your app must be able to allow executing custom code, adding new buttons to UI, and opening a new page for the editors to work.
An integration example is provided by default together with the editors:
It’s a simple DMS used to:
- Test the editors before integration
- See how the integration can be implemented
Community Version vs. Enterprise
In this article, I described how the Community version is installed. There’s also a more scalable enterprise version distributed under a commercial license. A detailed comparison is available on GitHub.