Photo by U. Storsberg on Unsplash
What is self hosting and how your software engineer career can benefit from it?
This might not be the most popular topic during your coffee breaks, but it’s something every engineer should try at least once. Here’s why...
What is Self-Hosting and How Does It Work?
When people hear "self-hosting," they often imagine server racks filled with expensive equipment that offer little to no real benefits. But that’s not the case.
Self-hosting means you host cloud applications yourself on your own (or rented) hardware. This can be as affordable as a DigitalOcean droplet or another VPS provider. Only you and the people you grant access to can use the software. With cloud providers, everything is straightforward—you pay a monthly subscription of $5-10 and get the hardware. True self-hosting, however, means you manage everything on your own hardware.
To get started, you don't need anything beyond your own computer. If you want more stability, consider a Raspberry Pi. This inexpensive microcomputer can run Linux distributions (like Raspbian) and has enough computing power to run multiple apps with no problems. It’s energy-efficient and portable, perfect for taking your self-hosted software wherever you go.
There are plenty of different software you can self-host. To start, check out this awesome GitHub curated list of apps.
My Self-Hosting Journey
When I started, I went with Pi-hole, an app that blocks ads across your entire network. Later, I added several Servarr apps to help manage my music collection, which I’ve been building since the mid-2000s. To play my music, I also installed Jellyfin. Nowadays, I’ve developed a client app for Jellyfin called JellyBox, which is also open source.
As of now I run about 20 different apps, which handles content playing and managing, backups, content creation and various networking tools. I managed to get myself used HP DL 380G9 Server which has enough bays for storage and enough computing power to run everything I have with no issues, but be careful - this route can be a rabbit hole, and you end up with 32U rack cabinet with a bunch of hardware.
Why Should You, as a Software Engineer, Care?
Hands-on Docker Experience: Most self-hosted apps have Docker images, so you can install them quickly without needing additional OS packages.
Command Line Proficiency: You’ll get more comfortable with the command line, reading logs, and troubleshooting.
Networking Knowledge: Learn about networking, reverse proxies (like Traefik, which I discovered through self-hosting), and security by securing your services.
Problem-Solving Skills: Discover various solutions for different problems, potentially saving you money.
Open Source Contributions: Many self-hosted apps are open source. Contributing to these projects can enhance your CV and help you land better job opportunities.
The Business Benefits
Self-hosting isn’t just for personal use. At my company, ProdigyTech, I’ve installed several apps that save us significant money:
Mattermost: A Slack alternative that’s been working perfectly for almost 1.5 years.
Plausible: A website analytics service.
Gitea: For git repository management and CI runners.
Plane: A Jira-like project management tool.
These tools run on a $20 DigitalOcean droplet and save us about $700 monthly in subscription fees.