Top 5 Self-Hosted Open Source Projects to Start Off as a Beginner

Top 5 Self-Hosted Open Source Projects to Start Off as a Beginner

ยท

4 min read

Starting with open source software/systems can be challenging as a beginner, especially when you are just embarking on your journey with self-hosting. Today, I will try to take some of the confusion away and assist you in just starting.

1) Get the Right Hardware

Starting any self-hosting journey requires you to have the right hardware to match your expectations. While you can run PiHole on an old Raspberry Pi, if your expectations are to run more systems and software, I'd suggest something a bit more potent.

Start off by using an old laptop. Anything with 2 cores, 4GB of RAM, and 250GB of storage should be enough. If you are planning on running a large media collection, a bigger drive might be worth investing in. An old laptop also provides the flexibility of being able to upgrade the RAM if needed in the future.

2) CasaOS

Now, let's get into where you actually want to start. CasaOS is the best system for self-hosting as a beginner. With an easy installation method, a great and simple UI, and a great list of available starting templates, it is the ideal starting point for a beginner.

Using CasaOS will be your baseline. This will help you in your journey when you are starting off not yet knowing or understanding docker or docker-compose as the system is built to manage these systems for you. I would highly suggest installing Portainer as an additional container management platform, as Portainer is a great system to learn and understand. In the future, you will be able to deploy containers without using CasaOS to hold your hand, and Portainer will be a great management tool.

To start using CasaOS, install your favourite Linux distro on your old laptop (I would suggest Ubuntu Server) and run the below command after you set up the distro:

sudo curl -fsSL https://get.casaos.io | sudo bash

3) Home Assistant

Now, this might be a question of "Why do I need to learn an OpenSource Smart home system when I am trying to learn about self-hosting?" Well, the simple answer is it is a self-hosted system. Home Assistant is a great next step in your self-hosting journey. Not only does it also provide templates in the form of Add-ons (just like CasaOS), but learning to build your own dashboards, connect your local devices, and controlling it from a central platform is a great way to set off the spark in your brain. This will help teach you how to problem solve, implement solutions/automations for problems, and making things work and connect together. As a bonus, you will end up learning some networking as well (just the basics).

Home Assistant is available as a template on CasaOS, but I would highly suggest following the guide below to get it set up on your Linux server: Home Assistant Installation Guide for Linux

4) NGINX Proxy Manager & A Domain

To take it to the next step, you need to set up a proxy manager and a domain in order to connect to your new cool applications and systems. The easiest system to use is NGINX Proxy Manager. A great UI makes it simple to use. If you're looking for a more advanced system with more features, have a look at Traefik.

Once you have NGINX Proxy Manager set up, you will need a domain and a way to point your traffic from that domain to your router and then port forward that to your Proxy Manager (yes, now it becomes a bit complex). I'd suggest using Cloudflare as your DNS and you can also obtain a domain from them.

I would suggest following along with this great video from "DB Tech" as he will guide you with setting this up with CasaOS:

5) Self-Hosted Password Manager

At this point, you have played around with a few applications and systems, and you're probably familiar with using docker-compose (If not, do some research).

Importantly, set up a self-hosted password manager. Not only is this a useful tool to set up and use to securely save and manage your passwords, but it's also a great setup to do as a beginner. This will help teach you the basics of connecting to your applications via your domain/proxy manager and some challenges you might face. This is also a great project to show you how self-hosting your own systems can be beneficial and more secure.

For this example, I would suggest a video by "Awesome Open Source" as he provides a bit more detailed information and configuration options. Also, he is not using CasaOS, so it's time to level up and learn new ways of deploying containers:

With the above-mentioned projects, you should be geared and ready to start your self-hosting journey and no longer be a beginner.

def engage_with_blog(reaction):
    if reaction == 'happy':
        leave_comment()
    elif reaction == 'loved':
        share_with_friends()
    elif reaction == 'amazed':
        react_with_emoji('๐Ÿ˜ฒ')
    else:
        print('Thanks for reading!')
ย