an ultra budget, low mem self-hosted everything server
!Check out dash.keehar.net!
What's the best option when you never really have a place you permanently live, but you have libraries of every type of media you and your partner constantly utilize?My previously solution: using Syncthing to sync media to all of my respective devices; books to ereaders, music to DAPs, etc. all syncing from parent folders on my 500gb laptop. Obviously, this isn't a very good long-term solution.
I had a Raspberry Pi 4 2gb sitting around from a previous project, and two 1tb 2.5" SSDs from old computers. Naturally, I thought I should use this as a remote media server, for all of my
- Pi's sip power, and are great with being on 24/7, but I had a few limitations with only 2gb of RAM, and the pi relying on volatile microsd's for booting. So, I thought it best to stick to a 32bit OS for less RAM consumption, and learned to copy boot files to an SSD partition, set boot priority, and mount with fstab.
I copied my media libraries to the appropriate SSD partitions using SFTP with key authetication, and now needed to find out how to remotely serve them.
At first, I was running applications like Plex natively, but seeing as I wanted this server to be set-and-forget (besides media uploads); I learned to use Docker containers.
Docker containers offered multiple advantages:
- security of only mounting certain directories to each container
- not having to worry about package changes breaking things
- being able to lock images to a specific version
- and more probably...
My stack of applications became:
- Audiobookshelf (audiobooks, podcasts)
- Calibre-Web (eBooks, pdfs)
- Calibre (for metadata correction before pushing to calibre-web)
- Dufs (files, sharing)
- Docker-ddns (dynamic ip updater, which updates my digitalocean A record)
- Homepage (dashboard of all applications)
- Plex (music, photos)
All containers are able to be maintained through Dockge (a docker manager web application hosted natively on the system). So far, the setup has been working great.
Audiobookshelf can be connected to from multiple apps to stream from; such as it's native android app, or Plappa (ios). Plex has plexamp, and now plexphotos for remote streaming. Calibre-web has opds capibilties meaning I can download my ebooks directly from my ereaders.
What about security?:
Right now, each portal is exposed but use Authelia for strong security. And as an extra security measures, services like Dockge are only accessible if vpn'd into my home network (the vpn is also hosted on the pi), and uploading/deleting is not allowed through remote portals.
SSH and SFTP are allowed remotely (eek!), but require a key to do so.
Overall, I'm very satisfied with this setup, and I learned a lot.
×