I’ve just finished setting up my demo environment for Nextcloud consisting of independent NC 9, NC 10 and NC 11 installations on a single dedicated server.
They currently reset back to stock on the hour, every hour so offer up to 60 minutes of testing.
All three installations are cached with Redis, SSL-enabled and have pretty URLs too, as described in my guide.
Both the user and password are admin, have fun!
The installations run in LXD containers, each container is a full Ubuntu 16.04 LTS deployment with Apache, PHP 7 and a shared MariaDB container running separately.
Utilising ZFS and snapshots, the containers accessible via the links above are replicas of snapshots created from master containers. On the hour, the containers are destroyed, re-cloned, have some network configurations pushed back to them and restarted. This process takes about 30 seconds and is done in series, meaning only one server is down for about 10-15 seconds at a time.
The dedicated server only uses a single IP (it’s not an expensive server, you get what you pay for) and the LXD host therefore runs an Apache proxy to direct traffic to the private IPs of each container. The benefit of this is enabling SSL for three unique operating systems can be done by excluding the
.well-known directory from being proxied, ensuring when LetsEncrypt tries to perform verification, it creates all verification entries on the LXD host and traffic - being excluded from the proxy - terminates on the host where the verification files sit. It’s immensely convenient.
Currently nothing is optimised, and performance can be improved, but I’ll get to that later.
I’ll also make LXD images available for all three versions at some point to allow simple, direct launching of a full Nextcloud LXD OS container, save having to install it manually; a little like the official VMs but on a much, much lighter hypervisor.