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
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.)
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.
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