t('We\'re very excited to provide a solution for Online Office for the entire Nextcloud community through our partnership with Collabora. Together we are making available the latest and greatest of Online Office in an easy to use docker image for home users.');?>

t('Enterprise users who need a more reliable and scalable solution can take advantage of our optional support contract for Collabora Online. You can request a quote./');?>

t('If you\'re looking for instructions to update to a new version, see here.');?>

t('Collabora Online');?>

t('Collabora Online is a powerful LibreOffice-based online office suite that supports all major document, spreadsheet and presentation file formats.');?>

t('Features:');?>

t('More features and capabilities are in development.');?>

t('Under your control');?>

t('Most people use online services for storing their data, communication and editing documents, often giving up control over their files in exchange for the convenience of online collaboration. With Nextcloud and Collabora Online, this is no longer a trade-off.');?>

t('Collabora Online is:');?>

t('Collabora Online integration tutorial video');?>

t('Getting started in 3 steps');?>

t('We\'ll describe how to get Collabora Online running on your server and how to integrate it into your Nextcloud using the docker image Nextcloud and Collabora built.');?>

t('Requirements');?>

t('To install it the following dependencies are required:');?>

  1. t('A host that can run a Docker container');?>
  2. t('A subdomain or a second domain that the Collabora Online server can run on');?>
  3. t('An Apache server with some enabled modules (NGNIX instructions in a blog here)');?>
  4. t('A valid SSL certificate for the domain that CollaboraOnline should run on');?>
  5. t('A valid SSL certificate for your Nextcloud');?>

t('Note: This guide does NOT cover self-signed certificates. If you use a self-signed certificate then you\'re mostly on your own ;-)');?>

t('1. Install the Collabora Online server');?>

t('The following steps will download the Collabora Online docker, make sure to replace "cloud.nextcloud.com" with the host that your own Nextcloud runs on. Also make sure to escape all dots with double backslashes (\\), since this string will be evaluated as a regular expression (and your bash \'eats\' the first backslash.) If you want to use the docker container with more than one Nextcloud, you\'ll need to use');?> 'domain=cloud\\.nextcloud\\.com\|second\\.nexcloud\\.com' t('instead. (All hosts seperated by \|.)');?>

docker pull collabora/code
docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.nextcloud\\.com' --restart always --cap-add MKNOD collabora/code

t('That will be enough. Once you have done that the server will listen on "localhost:9980". Now we just need to configure the locally installed Apache reverse proxy.');?>

t('2. Install the Apache reverse proxy');?>

t('On a recent Ubuntu or Debian this should be possible using:');?>

  1. apt-get install apache2
  2. a2enmod proxy
  3. a2enmod proxy_wstunnel
  4. a2enmod proxy_http
  5. a2enmod ssl

t('Afterward, configure one VirtualHost properly to proxy the traffic. For security reason we recommend to use a subdomain such as office.nextcloud.com instead of running on the same domain. An example config can be found below:');?>

<VirtualHost *:443>
  ServerName office.nextcloud.com:443

  # SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
  SSLEngine on
  SSLCertificateFile /path/to/signed_certificate
  SSLCertificateChainFile /path/to/intermediate_certificate
  SSLCertificateKeyFile /path/to/private/key
  SSLProtocol             all -SSLv2 -SSLv3
  SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
  SSLHonorCipherOrder     on

  # Encoded slashes need to be allowed
  AllowEncodedSlashes NoDecode

  # Container uses a unique non-signed certificate
  SSLProxyEngine On
  SSLProxyVerify None
  SSLProxyCheckPeerCN Off
  SSLProxyCheckPeerName Off

  # keep the host
  ProxyPreserveHost On

  # static html, js, images, etc. served from loolwsd
  # loleaflet is the client part of LibreOffice Online
  ProxyPass           /loleaflet https://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet https://127.0.0.1:9980/loleaflet

  # WOPI discovery URL
  ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

  # Admin Console websocket
  ProxyPass   /lool/adminws wss://127.0.0.1:9980/lool/adminws

  # Download as, Fullscreen presentation and Image upload operations
  ProxyPass           /lool https://127.0.0.1:9980/lool
  ProxyPassReverse    /lool https://127.0.0.1:9980/lool
</VirtualHost>

t('After configuring these do restart your apache using /etc/init.d/apache2 restart.');?>

t('3. Configure the app in Nextcloud');?>

  1. t('Go to the Apps section and choose "Office & text"');?>
  2. t('Install the "Collabora Online app"');?>
  3. t('Admin -> Collabora Online -> Specify the server you have setup before (e.g. "https://office.nextcloud.com")');?>

t('Congratulations, your Nextcloud has Collabora Online Office integrated!');?>

t('Updating');?>

t('Occasionally, new versions of this docker image are released with security and feature updates. We will of course let you know when that happens! This is how you upgrade to a new version:');?>

t('Enjoy!');?>

t('Troubleshooting');?>

t('Some common issues:');?>

t('Find more questions and answers in the discussion thread on the forums.');?>

t('Enjoy and let us know what you think on the forums!');?>