A Raspberry Pi computer attached to an external hard drive and a pair of speakers on the floor.

Tinderbox is a Raspberry Pi 4 computer that I configured to be a personal file server and media player (among other things) in late 2020.

I had actually been sitting on this pi for about a year -- I got the newest model, and didn't realize that it used micro HDMI ports instead of the regular HDMI ones. And I didn't have any micro HDMI cables.

But then I saw that you can flash an OS onto the Raspberry Pi's SD card with SSH support already enabled, and then control the whole thing without plugging in a display...so I decided to start playing around with it.

Tinderbox runs NextCloud for general media storage and apps (replacing...a lot of Google things), and Syncthing to act as a file syncing service between my other computers (replacing Dropbox).

I didn't want to do all the setup manually, so I started off by using a NextCloudPi image, which has NextCloud and a set of tools and security features already preconfigured.

I followed the steps in documentation to setup NextCloudPi:

  • https://docs.nextcloudpi.com/en/how-to-install-nextcloudpi/
  • https://docs.nextcloudpi.com/en/how-to-access-nextcloudpi/

For now, I'm keeping the system on the SD card (including NextCloudPi's database), and storing the data in an external hard disk. It's a pretty old Hitachi model disk, since my family wasn't using it for anything. NextCloudPi came with the tools to format it for Linux, which was nice.

Ideally, I wanted to use the SD card + Hard disk boot option to avoid wearing out the SD card, but this really requires a powered hard disk. The Hitachi disk I had wouldn't start up until after the Pi did, so NextCloudPi would error out as it tried to read the database from a non-existent directory. Alas.

Formatting the hard disk

The raspberry pi uses Raspbian, which is a Linux distribution, so the hard disk is formatted via ext4. Windows won't like that (supports NTSF or exFAT for the most part), so retrieving the data in case the server disappears would probably involve creating another Linux server.

Mounting the hard disk

The hard disk is traditionally mounted at /media/USBdrive, as per the NextCloudPi installation. This is actually an alias into the myCloudDrive folder for whatever reason.

I did some perhaps horribly janky setup to add other folders to this USB drive, in order to get Syncthing up and running.

Setting up Syncthing

I followed this setup guide. I'd already been able to point a web browser at Tinderbox from the NextCloudPi install, and Syncthing wasn't any different. (I changed the machine's hostname to tinderbox, so it became tinderbox.local:8384.)

Changing the folder to be on the usb drive

On NextCloudPi, the USB drive is mounted at /media/myCloudDrive. I was able to create a folder in there, but Syncthing didn't have the permission to modify it for actual syncing. So I needed to change the owner of that folder from root to pi, the user that runs Syncthing.

This was done using chown:

# ssh'd onto the tinderbox
sudo chown -R pi:pi /media/myCloudDrive/sync

...well, it was pretty janky, but it worked, and with that I was able to sync up my folders from my laptop and desktop to Tinderbox, with the files stored on the external hard drive.

Connecting it to the internet?

It's 2020. There's still a pandemic going on. I chose this time to create this because I knew I'd be at home a lot, and could thus access this computer on the local network. Exposing it to the internet would mean having to deal with a lot more security concerns, and that wasn't something I was interested in tackling at the time.

In the future, once I am out and about more often, I might consider getting a URL for it so I can access it when I'm not at home. But right now, that's entirely unnecessary.