There are many benefits to self-hosting software services, such as learning about networking, software infrastructure, security as well as increased privacy and cost saving. However, it's not an all-or-nothing proposal. There are degrees of difficulty that depend on the exact service you're trying to host. The best approach is usually a middle-ground where you self-host low-to-medium effort services and use third-party solutions for the rest.
As a long-time computer hobbyist, I've been self-hosting various services since my high school days. This continued when I started at the university, because our student union was granted a small server room (or rather, a closet, with questionable cooling solutions) with enough spare rack space to cover personal servers.
A key to self-hosting is choosing low-maintenance solutions. In recent years, the popularization of Linux containers have made self-hosting most software even less complicated.
Below is a table of some services you can self-host, the approximate effort required and some software recommendations:
|High||you're probably better off not doing it|
|File server||Low||SFTP served by OpenSSH or good old Samba|
|Git forge||Medium||cgit, Gitea|
|Advanced home router||Medium-high||Mikrotik router with RouterOS, OpenBSD|
|Metrics monitoring||Medium||Grafana and Prometheus|
|Webserver with HTTPS||Low||Nginx and Lets Encrypt|
|Ad-filtering DNS server||Medium||Unbound with custom filters, Pi-hole|