curious builders

Selfhost

|

Over the last two months I have experimented with my home technology. And one of the most enjoyable learnings has been the many wonderful self-hosted apps available for free.

Now, before you leave: you do not need any new hardware to get into self-hosting. A normal computer is more than enough.

The basic idea is this: many open source projects have self-host options. Often the setup is as easy as running a docker command and you are good to go. You simply host the web app inside a docker container on your own computer and access it on localhost.

Why should you want to do this? I have a couple of reasons:

  • Tech independence

This is originally how I started experimenting with self-hosting. I read Tech Independence by Derek Sivers and decided I wanted to be less dependent on companies that may pivot their business (or completely shut down).

  • Support open source

Why not support open source projects if they are building what I need?

  • Privacy

The less data you share with vendors online the less attack surface you have.

  • Customizable and open

Because of the ethos of open source, many self-hosted apps have strong communities developing plugins for them. And if there is not a plugin for you, you can simply write one yourself.

  • It’s easy!

You don’t need to install software on your computer. If you use Docker you’ll run it inside an isolated container. So if you mess something up or want to remove an app, easy — just remove the container.

  • It’s fun!

You can try out different solutions for free. No need to register accounts or share your credit card information for a 14 day trial.

  • It’s free!

Isn’t that amazing?

Get started

Now that I have convinced you to try self-hosting some of your apps, how do you get started?

Simple. Head over to selfh.st/apps and find something you are interested in. Follow the project documentation and you’ll be set up in no time!

I suggest you use Docker to host your apps. Most projects have that as an easy option and it is a great way to experiment.

My setup

I have listed my self-hosted apps here.

My apps are all configured using docker compose YAML files. I have checked these files into git. The apps I use daily (RSS, links, AI) are running automatically on startup.

One of the things you’ll have to figure out is how you keep track of what ports your services are running on. For easy access I use Raycast “quick links”. This means I just type “RSS” in the search bar and it takes me to the localhost port I have hosted that service on.

Another element is backup and storage in general. I don’t keep anything super critical inside any of my apps, which means I have not had to create a solid solution for this yet. For now I’m simply using my file system with a path mounted inside docker.

Downsides

Overall it has been a wonderful experience and I highly recommend trying it out. That said, there are some downsides to self-hosting your own apps.

  • You will have to get your hands dirty

Open source and self hosted solutions are often less polished than paid solutions. Sometimes things just work — and sometimes they just don’t. This is part of the experience. You’ll have to do a bit of tinkering to get things working as you want them. If you just want a full-fledged solution that always works with no issues, this is not for you. In that case paying for a subscription at a company is probably better.

  • Self hosting on your main computer limits you a bit

My apps only work on my main computer. I can’t access them on my phone or when I am away. I’m fine with that for now. The only exception is Home Assistant which is running on a separate Raspberry Pi.

The obvious improvement here is to host my apps on another computer. One that can be running all the time. And then setup access from outside my local network as well. But for now I’m not really interested in spending money on that.

  • Reliability

A bit related to my first point. But reliability has been one of the bigger downsides for me during this experiment. Companies invest a lot of money making their services reliable and always on. It’s hard to replicate that.

One example has been my experiment with private AI. I still strongly believe in it. But the privacy focused provider I have been using has been less reliable than other big AI labs. I have also experienced minor issues with the tools I have tried using together with the private AI model.

Another example is my experiment with metube. It’s an offline youtube downloader. I really like it. But I only use it once in a while and when I do I often find it is not currently working because of updates to YouTube.