The year of self hosting
Over the last month or so, I’ve come to embrace my home server setup and how powerful it can be. Here I have this small little Intel NUC Server, for which I promised myself I would do lots of cool and interesting things with.
The first thing I’ve hosted is Plex. I’ve used Docker Compose to bring up a Plex Docker container, with:
- Filebot (to tag video files)
- Beets (to tag audio files)
- Transmission (to download files)
- Webhook (receives incoming web requests)
The way it works is this:
- From my phone or tablet, I send a web request to webhook container with details of the download (using Workflow)
- Webhook then calls Transmission, and Transmission starts downloading
- When the download is finished, it is put in a folder so either Beets or Filebot can access it. They then tag the download and move it to the correct folder for Plex.
- I get sent a notification and I’ll manually update the Plex library. (File system notifications are a bit funny with docker )
This system has worked well over the past year and a bit. So well, I’m actively researching other things I could self host. Over the last week, I’ve added three more services:
- Miniflux (hosts RSS, like the old Google Reader)
- Wallabag (hosts a Read-It-Later service like Instapaper / Pocket)
- Apache Guacamole (lets you remotely access a computer via SSH / RDP / VNC )
To complement these, I’ve added a nginx reverse proxy. This means I only need two ports, 80 (normal http) & 443 (secure https by letsencrypt) open and I can access different services by using the hostname. So my Miniflux container will be at rss.example.com, whereas my Transmission container will be at trans.example.com. Nice and easy to remember!
I’m still actively researching other cool things to host. my biggest problem is backing it all up. At the moment I’m just keeping everything in a private git repository - which isn’t the most desirable backup strategy. Other things which I’ve thought of:
- E-mail (this is more difficult to host, as ISPs block this and it’s very easy to end up on blacklists)
- IRC bouncer (I had one before, didn’t use it too much)
- Databases (I’ve started using TapForms and one of the backends for sync can be Apache CouchDB)
If you’ve got any suggestions, hit me up on Twitter, I’m @dueyfinster