Nextcloud bundle

I’ve put together a bundle that deploys a “Nextcloud, together with Collabora Online”. I got it up and running some time ago which I had some hopes to be able to refine … but time hasn’t been on my side so I decided to throw it up here now anyway.

Nextcloud + Collabora Online gives you a completely private cloud with:

  • File sharing and file synchronization. (Your phone can sync your images and data to it.)
  • A document editing suite where data never leaves your server.
  • Support for many different storage solutions.
  • A rich plugin ecosystem.

The private philosophy of the Nextcloud community is truly amazing and I hope to be able to improve this bundle over time as I’m running it myself today.

Any feedback welcome and I’ll try get a tutorial up here on how to deploy it (if the bundle docs doesn’t cover it well enough). Hopefully I would get some help develop it further.

Enjoy your private cloud!

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.

7 Likes

Just want to say that looks awesome! :clap::clap:

1 Like

Thanx alot! It’s a start but it needs more love.

@erik-lonroth thanks very much for this. With a little bit of work, I’ve been able to get things working. Very impresssive!

Like you mention, the bundle doesn’t yet work out of the box. I ended up deploying the charms and adding relations manually. Here are a few things that needed tweaking:

The ssl-termination-proxy charm does not have support for bionic. Pinging @merlijn-sebrechts :slight_smile:

The ssl-termination-proxy requires terms to be agreed to:

juju agree isrg-lets-encrypt/2

Within the nextcloud application, I was having difficulty accessing the login page from my custom domain. When someone adds the fqdn config, it should update config.php. I did this manually:

juju ssh nextcloud/0
sudo nano /www/nextcloud/config/config.php

I added storage to the postgresql unit. By default it only has a very small allowance.

GCE does not expose public IP addresses by default. I needed to expose the applications for Let’s Encrypt to work.

This isn’t something that you recommend, but I did trip over it. The collabora and nextcloud charms do not play nicely on the same machine. I originally tried to deploy them together.


I believe that the following should work out of the box for anyone who doesn’t trust bundles for some reason:

juju agree isrg-lets-encrypt/2
juju deploy cs:~erik-lonroth/nextcloud
juju deploy cs:~erik-lonroth/collabora
juju deploy postgresql --storage pgdata=100G
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
3 Likes

Wow!

The list of fixes you provide here is great to cover in making it better.

There are more to it, such as allowing larger uploads from nginx and php.

Thanx alot for trying it out, I’ll definetly get cycles into fixing these items.

1 Like

@timClicks I’ve made an effort this weekend and updated the bundle/charms… This is added

The ssl-termination-proxy charm does not have support for bionic. Pinging @merlijn-sebrechts

I hope this could be fixed soon. =)

The ssl-termination-proxy requires terms to be agreed to:

This has been added to the documentation in how to deploy the bundle.

This isn’t something that you recommend, but I did trip over it. The collabora and nextcloud charms do not play nicely on the same machine. I originally tried to deploy them together.

Also added some documentation to emphasize this. Could this be enforced somehow?

Within the nextcloud application, I was having difficulty accessing the login page from my custom domain. When someone adds the fqdn config, it should update config.php. I did this manually:

There was/is actually already a juju action that helps with that (its in the documentation for the charm). But I added some information about it in the bundle documentation now also.

With the latest release of the nextcloud charm configuration options are added that allows for larger file uploads through php. Earlier versions borked as soon as you started uploading “larger” images and movies from your smartphone etc. However, I would need again the great Tengu Team to update the ssl-termination-proxy charm since the nginx configuration prevents larger file-uploads in that end, another one at @merlijn-sebrechts ?

I’ve posted an issue for layer-ssl-termination-proxy The nextcloud instances will have problems until this is fixed actually… I’m not sure how to mitigate/workaround this except manual edit of configuration files for nginx.

Fantastic!

Would you mind looking over a tutorial if I do the bulk of the work to get one together?

Definetly! I’m running it at home and would love to share this suite of software. I really think the private cloud solution that Nextcloud brings to the table is quite unique in the field and also cover use-cases otherwise very difficult to reach with public or hybrid clouds.

I’ll try to improve it over time as its still very rudimentary…

But a tutorial - for sure!

Hey @erik-lonroth, I’m part of the Tengu team. I’ll look into updating the ssl-termination charm, hopefully I can get to it this or next week.

3 Likes

This is great news for me!

I’ll test it immediately as you have something going. Thanx for the great work you do!