Nextcloud for bands

Playing in a band generates all sorts of files that you want to share with your band mates, from live show recordings, videos, promo materials, charts, etc. Some of us were getting tired of shelling out the money to Dropbox to accommodate this sharing. So, this past weekend I spun up a self hosted Nextcloud for sharing audio with the guys in Kül d’Sack. No reason for us collectively as a band to be spending $400+/yr to share files.

In no particular order, here are some tips or lessons from my experience building up Nextcloud:

  • I first tried to do this on a Raspberry Pi 3 B+. I’m pretty handy with the platform but even so, as I started getting into the weeds, i realized it would be much easier to execute some of the install on an old Mac mini that I had laying around.
  • Note to self: I’m sure the Mac Mini is probably drawing more power than the rpi. I’d love to know what the difference is on operating costs.
  • This past year I’ve gotten much better with understanding Docker, so I knew I wanted to do this with Docker, behind an nginx reverse proxy (as I already have that set up as a reverse proxy for a few other self-hosted services.) After futzing around a bit with various docker-config files, I opted for the Nextcloud All in One (AIO) installer. Compared to other methods for getting Nextcloud running in Docker, this is hands-down the easiest, most user-friendly way. I’ve yet to see any disadvantages to using the AOI.
  • Hint: If you’ve got a big old drive that you want to dedicate to your Nextcloud for file storage, set your Nextcloud data directory before running the AIO installer. The AIO instance is arguably more secure because it can’t hit anything on the filesystem outside of the Docker container by default, but I had a very tough time trying to give it access to other volumes on my Mac after I clicked install. In the end, I just reinstalled and specified a large drive as the Nextcloud data dir.
  • To help with network performance while transfering data locally, I setup https://github.com/pi-hole/docker-pi-hole and created a local DNS entry so that traffic isn’t going out and back.

The steps are to get the AIO installer running in Docker and then the AIO installer kicks off a bunch of new containers once you configure the install preferences through a web browser. Like I said, much easier than other methods. Here’s the command I used to spin up the AIO installer:

For Mac, running behind a reverse proxy

sudo docker run \
–init \
–sig-proxy=false \
–name nextcloud-aio-mastercontainer \
–restart always \
–publish 8080:8080 \
–env APACHE_PORT=11000 \
–env APACHE_IP_BINDING=0.0.0.0 \
–env NEXTCLOUD_DATADIR=”/Volumes/Mini1TBStorage/nextcloud_data” \
–volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
–volume /var/run/docker.sock.raw:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Another important note, when you’re first installing Nextcloud from the AIO installer, you can’t refer to it by the hostname assigned for reverse proxying, instead you need to refer to it by the local IP address. Meaning, I kicked off the installer Docker and tried to hit the URL of the reverse proxy that was sending traffic to the Mac Mini and it failed. I had to address the Mac Mini directly with its local IP address. During the install, the install process runs some tests to make sure your reverse proxy is set up correctly, which is pretty cool.

So far I’ve just added the guys in the band to a group and shared out a folder to that group and am currently syncing our Dropbox data down to my Nextcloud folder on my desktop using rsync. Once we all get comfortable with the new system, I may send that rsync in both directions or something similar if/when we decide to fully transistion off of Dropbox.

We had a few 2GB+ files in Dropbox that took a long time to sync to Nextcloud but smaller files (anything under a GB) went through very quickly.

Another advantage about self-hosting is that I should be able to mount my Nextcloud backup in such a way that it will get backed up to my Backblaze backup.

Nextcloud also has some contact and calendar tools built in to it. We haven’t talked about leveraging those yet but anyone who’s played in a band knows what a pain in the ass it is to track everyone’s availability for gigs, contacts at local bars, etc. So Nextcloud seems purpose-built for some of this stuff.

I am curious to see what the hit is on my network performance if we’re regularly sending stems back and forth my home network. Will see. I plan on reporting back in a few weeks.

Posted

in

, ,