Install ONLYOFFICE for Nextcloud

This tutorial will demonstrate how to install ONLYOFFICE on a Debian 10 server running Nextcloud. Watch the video version here.

Prerequisites: You will need a server running Debian 10 (visit digitalocean.nots.co or linode.nots.co if you don't have one.) You will also need a domain name (visit hover.nots.co if you don't have one.) It's expected that you already have Nextcloud 17 set up (use this tutorial if you haven't set Nextcloud up yet.)

Example parameters: In this example, the domain name for our Nextcloud server will be "example.nerdonthestreet.com" and the domain name for our ONLYOFFICE server will be "example1.nerdonthestreet.com". All passwords will be set to "P@ssw0rd".


Step 1: Make sure your server is entirely up-to-date:

sudo apt update
sudo apt full-upgrade

Step 2: Install GnuPG and import the ONLYOFFICE key:

apt install gnupg
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5

Step 3: Add the ONLYOFFICE repository to the system:

echo "deb https://download.onlyoffice.com/repo/debian squeeze main" | tee /etc/apt/sources.list.d/onlyoffice.list
apt update

Step 4: Set the non-standard port for ONLYOFFICE in the debconf databse:

echo onlyoffice-documentserver onlyoffice/ds-port select 81 | debconf-set-selections

Step 5: Install PostgreSQL and set up the ONLYOFFICE user & database:

apt install postgresql
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'P@ssw0rd';"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"

Step 6: Install Redis and RabbitMQ:

apt install redis rabbitmq-server

Step 7: Install the ONLYOFFICE package:

apt install onlyoffice-documentserver

When asked, enter the PostgreSQL password you specified in the "CREATE USER" command earlier.

Step 8: When apt errors out of the installation, edit the NGINX default site configuration file:

nano /etc/nginx/sites-enabled/default

Change all instances of the number "80" to "81", then tell dpkg to try configuring the package again:

dpkg --configure -a

Step 9: Enable the Apache proxy module, copy the Nextcloud virtual host configuration file to a new file for the ONLYOFFICE reverse proxy, and edit the new configuration file:

a2enmod proxy_http
cp /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-available/onlyoffice.conf
nano /etc/apache2/sites-available/onlyoffice.conf

Change the ServerName to your ONLYOFFICE subdomain, comment out the DocumentRoot item, and add the proxy configuration:

ServerName example1.nerdonthestreet.com
#DocumentRoot

ProxyPreserveHost On
ProxyPass "/" "http://localhost:81/"
ProxyPassReverse "/" "http://localhost:81/"

<IfModule mod_headers.c>
RewriteEngine On
SetEnvIf Host "^(.*)$" THE_HOST=$1
RequestHeader set X-Forwarded-Proto "https"
ProxyAddHeaders Off
</IfModule>

Step 10: Enable the new virtual host, reload Apache, and get a TLS certificate from Let's Encrypt:

a2ensite onlyoffice
systemctl reload apache2
certbot --apache

Step 11: Stop ONLYOFFICE and rebuild the spell checker from source:

supervisorctl stop all
apt install build-essential git npm
cd /var/www/onlyoffice/documentserver/server/SpellChecker/
mv node_modules/ node_modules_old/
npm install

Step 12: Set a password for usage of the ONLYOFFICE server by editing this configuration file:

nano /etc/onlyoffice/documentserver/local.json

Set the following options to the appropriate values:

services.CoAuthoring.token.enable.request.inbox -> true
services.CoAuthoring.token.enable.request.outbox -> true
services.CoAuthoring.token.enable.browser -> true
services.CoAuthoring.secret.inbox.string -> P@ssw0rd
services.CoAuthoring.secret.outbox.string -> P@ssw0rd
services.CoAuthoring.secret.session.string -> P@ssw0rd

Step 13: Start the ONLYOFFICE server:

supervisorctl start all

Step 14: Install the ONLYOFFICE app in Nextcloud, navigate to Settings -> Administration -> ONLYOFFICE, and set the document server address and secret key/password. After clicking Save, the rest of the preferences will populate, and you can set them as you wish.


There are no pages beneath this page

Expand: Discussion Discussion (0 posts)