Openmediavault & Nextcloud on Armbian Server Helios64

Quick write-up of my parallel installation of openmediavaut (OMV) and Nextcloud on Armbian.

The hardware for this setup is Helios64, an ARM-powered NAS from Kobol.

Unfortunately the Kobol team had to pull the plug and shut-down operations in 2021—which is unfortunate considering what great piece of hardware and software the Helios64 represents.

Hardware

  • SOC: Rockchip RK3399 (Hexacore 2x Cortex-A72 + 4x Cortex-A53; ARMv8-A 64-bit)
  • RAM: 4GB (LPDDR4)
  • a 5-Bay 3,5" SATA 3.0—I'm rocking 5x Seagate IronWolf 4TB ST4000VN008
  • aluminum case
  • hot-plug tray system
  • 2x LAN Port (1.0Gb, 2.5Gb Ethernet)
  • 1x USB Type-C port (supporting DisplayPort Mode, DAS Mode, Host Mode, Serial Console)
  • 3x USB 3.0 ports
  • Built-in UPS
  • custom Armbian builds —› Armbian Buster Debian 10
  • further details on hardware featuresm, schematics, etc. to be found in Kobol Wiki

Software

I've first installed OMV via the System and 3rd party software install option of armbian-config.

In order to avoid collesion with Nextcloud, I've manually reconfigured the port for the OMV web ui from 80 to 90 (later learned that this can be also done via omv-firstaid).

For the installation of Nextcloud I first went with also installing from the armbian-config software menu—BUT ultimately settled with installing Nextcloud via the nextcloud/nextcloudpi setup script.

As the latest custom Armbian build for Helios64 is based on Debian 10 (Buster) I had to install PHP 7.4 from Sury PHP PPA Repository:

sudo apt -y install lsb-release apt-transport-https ca-certificates 
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt -y install php7.4

I had to tweak the PHP memory settings for both, OMV and Nextcloud (php_value[memory_limit] = -1 in respective php-fpm config files, i.e. for OMV in /etc/php/7.3/fpm/pool.d/openmediavault-webgui.conf and for Nextcloud in /etc/php/7.4/fpm/pool.d/www.conf).

For Nextcloud I also had to manually fix a few post-install issues that where pointed out to me by Nextcloud's Settings / Overview / Security & setup warnings. Besides manually installing a few dependencies that somehow haven't been installed during setup (e.g. imagemagick) I also had to change the binary in www-data user's crontab from php to php7.4 (sudo crontab -u www-data -e).

After the itial installation/ setup I've changed the datadirectory in /var/www/nextcloud/config/config.php from the default location /var/www/nextcloud/data to my custom OMV share/ mount point /export/nextcloud/data by following this how-to.

In order to i) painlessly sync from my devices (Linux, iOS) to Nextcloud's calendar and contacts as well as use the native mobile and desktop (sync) applications and ii) still NOT have to expose the Nextcloud installtion to the public internet for retrieving/ using Let's Encrypt SSL certificats I opted for the Tailscale feature of provisioning TLS certificates for your internal Tailscale services (i.e. the Apache Web Server of OMV and Nextcloud).

Tailscale initself is an UBER AWESOME service, developed by a great team with lot's of passion. Enabling HTTPS along w/ setting up MagicDNS was super straight-forward and quick. This setup now gives me a custom subdomain for my Armbian server and a script to generate a SSL certificate for the server, which is then configured to be used by the Apache web server's vhosts.