My previous setup with HTTPS always failed on Nextcloud and Collabora.
When I saw the article Integrate Collabora Online with Nextcloud on Ubuntu without Docker by Xiao Guoan, I saw hope.
I did not use valid credentials for this article. If you want to use an authenticated SSL certificate, please refer to the above article.
Iâm going to write this because Iâve seen some articles like those below.
At the bottom of the official website article is written Issue: Collabora Online doesnât work with Encryption. Yes, this is currently unsupported.
Collabora + Nextcloud + Docker = Failure by @flkiwi
Collabora from snap install does not work via HTTPS by @michimartini
Also, Iâve seen other Docker configurations that maybe can work.
Mixed content error with Collabora CODE / Nextcloud / Traefik reverse proxy via docker-compose
My operating system uses Ubuntu 22.04.
This article uses the following settings and modifies them to suit your needs.
IP addressďź192.168.0.200
admin accountďźnextcloud
admin passwordďźnextcloud
MySQL databaseďźnextcloud
MySQL accountďźnextcloud
MySQL passwordďźnextcloud
Collabora admin accountďźadmin
Collabora admin passwordďźadmin
I wonât go into details.
Install Nextcloud and Collabora steps.
update and upgrade packages.
sudo apt -y update
sudo apt -y upgrade
Install Apache, MySQL, and Docker.
sudo apt -y install apache2 mysql-server docker docker.io
Install other packages
sudo apt -y install php zip libapache2-mod-php php-gd php-json php-mysql php-curl php-mbstring php-intl php-imagick php-xml php-zip php-bcmath php-gmp php-bz2 php-ldap php-smbclient php-apcu libmagickcore-6.q16-6-extra
Collabora Server by Docker(Please modify the account password by yourself)
sudo docker pull collabora/code
sudo docker run -t -d -p 127.0.0.1:9980:9980 --restart always -e âextra_params=âo:ssl.enable=false --o:ssl.termination=trueâ -e âusername=adminâ -e âpassword=adminâ --cap-add MKNOD collabora/code
Start and set the bootup to run
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
sudo systemctl start docker.service
sudo systemctl enable docker.service
Set MySQL database, account, and password
sudo mysql -u root -p
CREATE DATABASE nextcloud;
CREATE USER ânextcloudâ@âlocalhostâ IDENTIFIED BY ânextcloudâ;
GRANT ALL PRIVILEGES ON nextcloud.* TO ânextcloudâ@âlocalhostâ;
FLUSH PRIVILEGES;
exit
Install Nextcloud
wget
https://download.nextcloud.com/server/releases/latest-24.zip
unzip -q latest-24.zip
sudo mv nextcloud /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud
sudo mkdir -p /var/log/apache2/nextcloud/
sudo sed -i â/^memory_limit =/s/=.*/= 512M/â /etc/php/8.1/apache2/php.ini
Enable Apache modules.
sudo a2enmod rewrite headers env dir mime ssl proxy_http
Set Apache config for Nextcloud and Collabora.
sudo nano /etc/apache2/sites-available/nextcloud.conf
Alias / "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
<VirtualHost *:80>
ServerName 192.168.0.200
Redirect permanent / https://192.168.0.200/
</VirtualHost>
<VirtualHost *:443>
ServerName 192.168.0.200
DocumentRoot /var/www/html/nextcloud
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav [R=301,L]
RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav [R=301,L]
RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/index.php/.well-known/webfinger [R=301,L]
RewriteRule ^/\.well-known/nodeinfo https://%{SERVER_NAME}/index.php/.well-known/nodeinfo [R=301,L]
</IfModule>
Options -Indexes
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from coolwsd
# loleaflet/browser is the client part of Collabora Online
ProxyPass /loleaflet http://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet http://127.0.0.1:9980/loleaflet
ProxyPass /browser http://127.0.0.1:9980/browser retry=0
ProxyPassReverse /browser http://127.0.0.1:9980/browser
# WOPI discovery URL
ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/cool/(.*)/ws$" ws://127.0.0.1:9980/cool/$1/ws nocanon
# Admin Console websocket
ProxyPass /cool/adminws ws://127.0.0.1:9980/cool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /cool http://127.0.0.1:9980/cool
ProxyPassReverse /cool http://127.0.0.1:9980/cool
</VirtualHost>
ErrorLog ${APACHE_LOG_DIR}/nextcloud/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud/nextcloud_access.log combined
Enable Apache sites.
sudo a2ensite default-ssl nextcloud
Reload and restart Apache.
sudo systemctl reload apache2.service
sudo systemctl restart apache2.service
Try to connect Collabora admin console.
https://192.168.0.200/browser/dist/admin/adminSettings.html
input account and password.
I will not write other basic installations.
Set Nextcloud admin, data folders, and MySQL by connecting to https://192.168.0.200/
.
I donât have the recommended apps installed.
If you donât have Nextcloud Office installed, please install it.
Install and enable Nextcloud Office via Apps.
Set Nextcloud Office configuration on Office in Administration on Settings.
URL (and Port) of Collabora Online-serverďź
https://192.168.0.200
#If you see âSaved with error: Collabora Online should use the same protocol as the server installation.â
#Donât worry this will not affect Nextcloud Office.
If configured correctly, it will open successfully.
You can create or open a document, spreadsheet, or presentation.