In summary Raspberry Pi as:
1. Cloud server (this post)
2. VPN server
3. NAS
4. Music server
5. Media Player
To be able to do all of the above, I think it is better to keep the original Raspbian distribution.
I have used Nextcloud:
I have used an external hard drive to the Raspberry Pi (rp). Since there is a chance that when you restart your rp it automatically mount external hard drive to different place it is a good idea to configure fstab to make sure that it always mounted on the right place. I also set static ip for rp (192.168.0.101)
Installing Nextcloud:
sudo apt install snapd
sudo snap install nextcloud
Setting up the external hard drive:
sudo mkdir /media/pi/cloud
select UUID of your external hard drive:
sudo blkid
sudo emacs /etc/fstab
Use tab for each column when you add the following:
UUID=YOURS /media/pi/cloud auto nosuid,nodev,nofail 0 0
Now reboot to see it mounts the external drive properly at the right place.
Now edit the configuration file:
sudo emacs /var/snap/nextcloud/current/nextcloud/config/autoconfig.php
change the data directory as:
'directory' => '/media/pi/cloud'
Start nextcloud:
sudo snap restart nextcloud.php-fpm
To install a Let's Encrypt SSL certificate, type:
cd /snap/bin
sudo ./nextcloud.enable-https lets-encrypt
or
sudo ./nextcloud.enable-https self-signed
sudo ./nextcloud.enable-https lets-encrypt
or
sudo ./nextcloud.enable-https self-signed
If you use public dynamic dns services like noip remember to add it to config:
sudo emacs /var/snap/nextcloud/current/nextcloud/config/config.php
'trusted_domains' =>
array (
0 => '192.168.0.101',
1 => '192.168.0.*',
2 => 'YOURS.ddns.net',
),
check the directory file in the config if it is set to the right place
'datadirectory' => '/media/pi/cloud',