nextcloud collabora tls #15

Supports: None
Add to new model

´╗┐This bundle deploys nextcloud + collabora behind an ssl-termination-proxy with letsencrypt certificates.

This works great in a scenario where you have a home router with a single external IP and want a Nextcloud in your private network.

  • Sync files, music and pictures on all your devices.

  • Sync images from all your family mobile phones as they are taken.

  • Edit LibreOffice documents online with Collabora.

  • Sync password-databases with keepass2.

  • ... and much more with Nextcloud.

Your own private cloud for office or home.

The Nextcloud instance will be accessed over SSL from internet at your DNS domain: https://nextcloud.mydomain.com

Prepare your DNS

To have letsencrypt setup your SSL certificates properly:

  • NOTE! This bundle requires Nextcloud + Collabora to deploy to separate servers. Its a limitation currently of the nextcloud and collabora charms that might change in the future.

  • Create DNS records for collabora.mydomain.com & nextcloud.mydomain.com. Have them point to your external IP.

  • Setup your router port forwarding for TCP/443 towards the IP of the unit/server which the "ssl-termination-proxy" instance will be deployed to.

Deployment + configuration

Start deployment of the bundle:

juju deploy cs~erik-lonroth/bundle/nextcloud-collabora-tls

Configure the ssl-termination-proxy which require some terms to be accepted:

juju agree isrg-lets-encrypt/2

Configure ssl-termination-fqdn according to your DNS-domains for collabora + nextcloud:

juju config nextcloud-fqdn="nextcloud.mydomain.com"
juju config collabora-fqdn="collabora.mydomain.com"

Configure collabora to know about your nextcloud domain:

juju config nextcloud_domain="nextcloud.mydomain.com"

Configure nextcloud as described by the charm online documentation. Most commonly, you would set/add trusted_domain and change the default admin password.

That should be it.

Login to your nextcloud

Login is now available at https://nextcloud.mydomain.com with

username: admin
password: mypassword 

You should change the password for admin.

Adding & configure the collabora plugin for online editing

After installation, you should be logging in to nextcloud and add the "Collabora Online" plugin.

Configure the Collabora URL and port as: "https://collabora.mydomain.com:443"

After configuring collabora, try create a "ods" document from your browser and it should work. (Its known to fail the first time for some reason, but try a few times if it fails.)

Attributions

Thanx to the Nextcloud project for the incredible software allowing users to pertain privacy.

Thanx to LibreOffice, for maintaining a truly open document standard and office tools for everyone to use.

Thanx to Collabora for making online editing possible for open document formats.

Thanx to LetsEncrypt that helps us create a secure internet!

Thanx to Tengu Team for providing excellent ssl-termination-proxy juju charms!

Thanx to PostgreSQL for providing a state of tha art and open source database engine!

Thanx to Canonical for maintaining the Juju open source community.

Thanx to Omnivector Solutions for making this madness possible.

Manual deploy

If you dont like to deploy bundles, this is how you would do it manually:

juju agree isrg-lets-encrypt/2
juju deploy cs:~erik-lonroth/nextcloud
juju deploy cs:~erik-lonroth/collabora
juju deploy cs:~tengu-team/ssl-termination-fqdn collabora-fqdn
juju deploy cs:~tengu-team/ssl-termination-fqdn nextcloud-fqdn
juju deploy cs:~tengu-team/ssl-termination-proxy
juju relate postgresql:db nextcloud:postgres
juju relate nextcloud:website nextcloud-fqdn:website
juju relate nextcloud-fqdn:ssl-termination ssl-termination-proxy:ssl-termination
juju relate collabora:website collabora-fqdn:website
juju relate collabora-fqdn:ssl-termination ssl-termination-proxy:ssl-termination
juju config collabora-fqdn fqdns=<collabora-domain-name>
juju config nextcloud-fqdn fqdns=<nextcloud-domain-name>
juju config nextcloud fqdn=<nextcloud-domain-name>
juju config collabora nextcloud_domain=<nextcloud-domain-name>
juju expose ssl-termination-fqdn
juju expose nextcloud
juju expose collabora

Bundle configuration

Embed this bundle

Add this card to your website by copying the code below. Learn more.

Preview