Development/LibreOffice Online

From The Document Foundation Wiki
Jump to: navigation, search

This page is all about the building and development of LibreOffice Online, the HTML5-based/cloud-based version of our office suite.

Is it Ready Yet?

Yes for sure. LibreOffice Online is here and still growing in feature-richness. If you can, take your chance to help by contributing.

An official version of the container is periodically published on the docker hub under the libreoffice/online namespace. Alternatively, Collabora and CIB, the two companies who most contributed to Online and provide L3 support for LibreOffice, release their own (development) versions under their respective namespaces. For further help, see [1]

Keep in mind that every development version (even the official one) has a maximum limit of 20 concurrent connections.

Also, please feel free to check out the code and start editing it yourself.

Current Status

Deploy

Deploying LOOL is quite easier using Docker. The procedure might be split in two phases:

  • deploy of the container

if you compiled it by yourself, refer to the name you used to save the image. Otherwise you can use the upstream LibreOffice Online image. The hostname referred in the domain parameter is the virtual host name of the requesting webserver, not the reverse record (PTR) of the respective IP address.

docker run --name lool -e "domain=your\\.cloud\\.domain" -e "username=root" -e "password=VeryStrongAdminPassword" -p 8080:8080 -d libreoffice/online:master

To see live logging of the Docker container, you can use

docker logs --tail 50 --follow --timestamps lool

For an interactive shell onto the container, run

docker exec -it lool /bin/bash

To stop and destroy the container, run the commands

docker stop lool
docker system prune
  • configuration of the proxy

As far as you do not dedicate a public IP address to LOOL and give it an his own SSL certificate, using a Reverse Proxy will be the only chance. Using a (sub)domain will save you an IP address, allowing you to serve LOOL on a shared server.

If you're interested in the configuration of the proxy, please see the related page Configuring a reverse proxy for LOOL.

Installing custom fonts

It is possible to install your own fonts and have them available in LOOL.

If you installed LOOL as package or from sources, installing the new fonts under /usr/local/share/fonts (or other appropriate directory), running fc-cache -fv and restarting loolwsd should be enough.

Otherwise, if you're using the docker container, you'll need to

  • prepare a directory containing your fonts making sure it is not organized in subdirectories;
  • mounting this directory as volume both on /usr/share/fonts/lool and /opt/lool/systemplate/usr/share/fonts/lool (lool may be replaced with other names).

Disabling the automatic spellchecker

It is possible to configure various parameters in the file /etc/loolwsd/loolkitconfig.xcu inside the Docker container, e.g. via an interactive shell (see above). To make the changes effective, you can restart the container or the loolwsd service.

One configuration setting is to disable the automatic spellchecking, so users have to enable it manually for each session. The respective line in the configuration has IsSpellAuto and needs to be set to false. A quick hack to do this is:

docker exec lool sed -i s/'<prop oor:name="IsSpellAuto" oor:op="fuse"><value>true'/'<prop oor:name="IsSpellAuto" oor:op="fuse"><value>false'/ /etc/loolwsd/loolkitconfig.xcu
docker restart lool

Disabling the AutoCorrect

In a similar fashion, to disable the AutoCorrect, you can add the following line to /etc/loolwsd/loolkitconfig.xcu and then restart the service:

<!-- Disable AutoCorrect while typing -->
<item oor:path="/org.openoffice.Office.Writer/AutoFunction/Format/ByInput"><prop oor:name="Enable" oor:op="fuse"><value>false</value></prop></item>

A quick hack to script this is (suggestions to improve welcome):

docker exec lool sed -i /'\/oor:items'/i'<!-- Disable AutoCorrect while typing -->\n<item oor:path="/org.openoffice.Office.Writer/AutoFunction/Format/ByInput"><prop oor:name="Enable" oor:op="fuse"><value>false</value></prop></item>\n' /etc/loolwsd/loolkitconfig.xcu
docker restart lool

Integrations

LibreOffice Online is not intended as a standalone software. His goal is, instead, to be integrated with other tools to edit their documents.

Since LOOL is known with many different names, finding out if it is already integrated with a specific product may be tricky. That's why here you have a list of known integrations. Feel free to add any integration you know if it's not already reported in this list.

Unofficial integrations

Product Plugin Latest plugin version tested Latest LOOL version tested
ownCloud [2] untested untested
NextCloud [3] 3.7.3 7.0.0 (30aa9478)
Moodle [4][5] 3.9-r1 6.4.0 (87fea712)
Mattermost [6] untested untested


Builds

If you're looking for a prebuilt version, you can checkout the docker hub as mentioned in the first paragraph.

Otherwise, if you're interested in building a version of LOOL on your own, you can checkout our building online guide.

Development

Linux is a must for LibreOffice Online. It doesn't compile/supported on any other platform. So, you need to compile it on Linux. You also need to compile LibreOffice core for development purposes. So, start at the developers page first.

The mailing list and IRC channel is same for LibreOffice Online, so you can ask your general questions about LibreOffice Online on the same medium. Most of the things that applies to the core project applies for Online as well (eg: Gerrit review, etc.).

Branding

Gnome-dialog-warning.svg

Warning:
Make sure to check out the Branding Guidelines before proceeding


LibreOffice Online can be branded by the vendor. To get this done, you'll need to prepare a directory containing

  • branding.css: CSS code for your branding;
  • branding.js: a JavaScript file with your functions/variables. Through this file three variables
    • brandProductName
    • brandProductURL
    • brandProductFAQURL

can be defined to change the interface of LOOL.

Once done, you'll need to pass this directory to the configure script as the parameter

--with-app-branding

Easy Hacks

To get started with Online and get familiar with the workflow, you can find some Easy Hacks for Online. As the name suggests, they are ideal place for you to get started with development work. They have appropriate hints/code pointers guiding how to get started. Don't hesitate to ask questions on the bug report about clarification if something is not clear. Once you are done with your patch, you need to submit your patch on gerrit. You can check Gerrit here (and change the URL to online repo wherever necessary). To get it reviewed put the person who filed the easy hack in the list of reviewers.

Once you are done with your first easy hack, you can checkout bug reports here in bugzilla. It's possible that you will find more low-hanging fruits/bugs that you will be able to eat now (after having some development experience now). Feel free to start the discussion on the mailing list, IRC, or bug report itself if you are stuck.

GSoC

As with the tasks in the LibreOffice component, we require that you fix at least one easy hack in Online as well, if you are applying for a GSoC task that involves LibreOffice Online. Of course, the more, the merrier and greater your chances of getting selected.

Presentations

Learn from the authors of LibreOffice Online, check-out the slides and videos of presentations.

Availability

TDF is not hosting LibreOffice Online. The task is therefore left to large deployers, ISPs and providers of open source cloud solutions, and several options are already available on the market. TDF would welcome provision of a public LibreOffice Online offering by another charity. Meanwhile, here are some companies and services hosting LibreOffice Online, or software based on it:

Advertising based free commercial cloud hosts

  • GMX Online Office (requires gmx email account registration, includes gmx online office [LO ??] 2GB document storage)
  • OffiDocs ( LibreOffice Online [LO 6.1.1.2] ?? gig document storage, Chrome Ext. & Firefox Addon w/ Google Drive integration )

Free (no fees or advertisements) commercial cloud hosts

  • doXiview a browser-based, direct document processing from CIB, includes LibreOffice Online powered by CIB as document editor
  • hostiso.com (requires signup via NextCloud, includes nextcloud/collabora online [LO 6.0], 3GB document storage)
  • webo.hosting (requires signup via NextCloud, includes nextcloud/collabora online [LO 6.0], 5GB document storage)

Fee based commercial cloud hosts

Commercial vendors

Self hosting platforms

Reports from the Press

Date By Title and Link
October 10, 2011 ITProPortal LibreOffice ported to iOS, Android, web browsers
March 23, 2012 H-Online LibreOffice Cloud not coming next month
March 25, 2015 CBS Interactive ZDNet ​LibreOffice finally to go online
December 15, 2015 InfoWorld LibreOffice as a Service Offers Alternative to Google Docs and Office 365
November 3, 2016 iTWire New version of LibreOffice Online released
November 4, 2016 Softpedia Collabora Updates Its LibreOffice Online Solution with Collaborative Editing
December 7, 2016 Softpedia Collabora Online 2.0 Puts LibreOffice in the Cloud, Adds Collaborative Editing
June 23, 2016 Softpedia LibreOffice Online Is Now Ready for ownCloud Enterprise, Thanks to Collabora
August 3, 2016 PCWorld LibreOffice 5.2 includes classified documents and a streamlined interface
January 30, 2017 InfoWorld from IDG First look: LibreOffice 5.3 takes a cue from Microsoft Office’s ribbon
February 2, 2017 Silicon UK LibreOffice 5.3 Online Takes Aim At Office 365 With Cloud Document Collaboration