Recently, I became interested in self-hosted alternatives to some of the services I use. This came from privacy concerns and also because I wanted to back up all my data and files in one place — but with full access and control over both the files and the server they’re hosted on.
So I decided to set up a self-hosted server.
I chose to use Runtipi for this. Runtipi is an open-source solution for easily managing self-hosted apps and services. You can install apps from their built-in app store, configure them right there, and run them on your server. Installing Runtipi is also very simple — just run one command in the terminal on your server, and you're good to go:
curl -L https://setup.runtipi.io | bash
The Machine
I used one of my old laptops to run the server. It’s a Dell Latitude E6330 with an Intel i5-3320M CPU, 8GB of RAM, and a 1TB hard drive. That’s more than enough for my needs. I connected the laptop to my router via a LAN cable and placed it in the corner near the router. For the OS, I chose Ubuntu Server 24.04. It has everything I need, and since the server version doesn’t come with a GUI, it saves system resources.
Jellyfin
To host my movies and TV shows, I chose Jellyfin. It's a simple, open-source media system that allows you to stream to all your devices. It even has a nice Android app, so I can watch my movies directly on my phone.
Immich
To host and back up my photos, I use Immich. I always had the problem of not storing my photos anywhere — they were just sitting randomly in my phone’s gallery without order or backup. Immich solves that perfectly. Now I can organize my photos by albums and years, and easily back them up to my server.
What Else I Plan to Set Up
- File server – Right now, I back up my files by just storing them in folders on the server’s hard drive. It works, but it’s not very convenient. I’m thinking of installing Nextcloud later.
- eBook server – I read on my Kindle from time to time, and I already have quite a few books. Storing all of them directly on the Kindle isn’t the best solution.
Security
So, how do I secure all this? Each app has its own login system, but I'm not sure that's enough. I’m a bit nervous about port forwarding and exposing my server to the whole internet. So for now, it’s only accessible from my local network. I set up an OpenVPN server on my router, so if I need remote access, I can connect to my home network through VPN and then reach the server safely.
Conclusion
In conclusion, I can say that self-hosting is a really interesting experience, and I learned a lot while setting everything up. I’ll definitely keep improving my setup, since there are still many great self-hosted apps I haven’t tried yet. Looking forward to exploring more!