I just recently started playing around with an old pc as my homeserver and am curious of any recommendations for lesser known self hostable foss software that you would recommend
The piece of string is very long!
https://github.com/awesome-selfhosted/awesome-selfhosted
You may need to work backwards, identify a service as a need and then figure out which software to run.
This is an awesome resource! I already have what i need (file, torrent, gitea server), but im looking for software to try out just for fun.
Yeah, I get ya but when you scroll that list you can see why it’s a hard topic to reply to. There is a lot of fun to be had!
- Caddy - Reverse proxy
- Owncast - Twitch alternative
- Jellyfin - Home video streaming application
- Joplin - Note taking app that syncs
- Syncthing - syncs files from my LineageOS (Android) phones to PC
- PiHole - AD blocker
- Minetest - open source voxel game engine (basically Minecraft)
- Veloren - open source adventure game
- Invidious - frontend for Youtube
- Libreddit - frontend for Reddit (about to stop working)
- Proxitok - frontend for TikTok
- Nitter - frontend for Twitter
- Rimgo - frontend for Imgur
- Libremdb - frontend for IMDB
Edit: Fixed PiHole from saying “VPN” blocker to “AD” :-D
Are we sure Libreddit will stop working? The latest post from Reddit states that less than 100 api calls per second will remain free if you’re logged in. I’m not exactly sure how Libreddit works (I use a self-hosted Troddit instance) but it’s my understanding that API calls tied to your own user should be fine as long as you stick under than 100/sec limit.
Just going off what they said:
- dokuwiki
- draw.io
- gitea
- woodpecker (ci/cd)
- minio
- postgres
- freshrss (rss server and reader)
- firefly3 (finance / budgets / expenses)
- calibre
- Pi-hole (primary on a pi, secondary on docker host)
Have you looked at Adguard Home instead of pi-hole? I had been on pi-hole for years and just recently switched to AGH. My primary is in docker and secondary on pi but I think I like your idea better so I’ll probably switch that around. I like AGH better so far.
I haven’t looked into it yet. What do you like better about it?
(I put my primary pi-hole on a pi because it’s practically the only thing on it - I can reboot it quickly if needed and not have a lengthy downtime on my DNS - the was before I had the second one running)
I find the user interface to be more intuitive and it seems like it’s a bit more effective than pi-hole at ad blocking. It also has built in adult content filter lists if you want that which includes forcing safe search on multiple search engines, which is interesting. One thing I’ll miss about pi-hole is the local dns config. I had stuff set like “pi.local” and “unRAID.local” so I didn’t have to type IPs over and over. Afaik, AGH does not have that feature.
Thank you for the review. I’m using the dns config pretty heavily with my pi-hole at the moment, but perhaps I can find another approach to name my home lab services.
Jumping back on to correct myself: AGH does have local DNS ability. It’s under ‘DNS rewrites’ and behaves like a host file. Works perfectly!
Edit: well sort of. Doesn’t want to accept IP:port format. Damn. I’ll have to keep looking…
Thanks! I’m running caddy server on a raspberry pi (same machine as pi-hole). I use it for the reverse proxy mostly. It maps the domain to the specific machine. My pi-hole maps all the domains to the IP of the caddy server. Probably there’s a more efficient way to do this but I haven’t tried yet.
I currently have a server running dnsmasq just for DHCP/local DNS, and have it set with Adguard Home as its upstream servers. That way I can set up custom blocklists, and have local resolution as well.
- Portainer server and agent for monitoring all docker hosts in one place
- Traefik as reverse proxy
- Dashy (complex) and Homarr (simpler) as dashboards
- Gluetun for VPN access for containers and proxy for everyone on the network
- Radarr/Sonarr for managing Movies and TV shows
- Navidrome for music
- Audiobookshelf for audiobooks
- Transmission/qbittorrent/rtorrent/deluge as torrent clients
- Pinhole for DNS
- Technitium for more advanced DNS and DHCP (might replace all piholes with this or blocky in the future)
- Plex/Jellyfin for media streaming
- JellyfinVue - awesome frontend to jellyfin
- Bazarr - for subtitles
Caddy is simpler for the reverse proxy. Just sharing for people that get scared when they try to set up Traefik.
Ngnix-proxy-manager is even simpler :) But along with the automatic router creation using labels, I’ve found traefik to be the most robust of all three.
The traefik syntax and configuration using yaml is really initutive. I can link a good guide here if someone wants it. The official documentation isn’t that good.
One of my favourite guides explaining the configuration files for traefik.
Honestly I started using traefik first and I agree, the learning curve is steep. I’m only just now starting to understand what my labels are doing. But now, I’ve tried caddy and literally cannot get it to work, or find how to port what I have on traefik over to caddy lol.
Here are all the steps after installing Caddy to create a reverse proxy with SSL:
- Open the
/etc/caddy/Caddyfilefile - Add the following, replacing the domain and port with those that you want to use.
reverse_proxy localhost:8080}
- Restart Caddy with
systemctl restart caddy
Super interesting. I’ll have to experiment with this, the guides I found were not this straight forward. Thanks!
- Open the
Here are a few I like:
- Jellyfin - a media server software that allows you to organize and stream your personal media collection.
- NextCloud - a self-hosted file sync and sharing platform. Not as good as Google Drive (of course), but it can do the job.
- Bitwarden (with a Rust-written alternative named vaultwarden) - a password manager for storing and autofilling login credentials.
- Matrix - an open network for secure, decentralized communication. WhatsApp, but in the Fediverse.
- PiHole - a DNS sinkhole that blocks ads and other unwanted content.
- Mycroft - an open-source voice assistant. You can make your own Google Home with it.
- OctoPrint - web interface that allows you to control 3D printers. Pretty handy if you have one!
- Gitea - a lightweight self-hostable GitHub
- Home Assistant - an open-source home automation platform. Can integrate a lot of other things in your house, including some of the things I mentioned above.
- The X-arr initiative - a collection of tools for managing and organizing media libraries. Pretty good if you deploy your own media server:
- Sonarr - Select TV shows and it will automatically download episodes for you.
- Radarr -> movies
- Lidarr -> music
Miniflux as an RSS reader
I actually was looking around for rss readers, but havent found one that can save entire articles and serves them offline. Does this support that?
I suppose so, but I’m not sure since it’s a web app
I really like Memos. It’s a micro blogging site that is minimal, but has a lot of neat features. I’m using it as a replacement for DayOne’s journal app.
And I’ll second Veloren. My kids and I are having a blast playing.
Jellyfin is a great FOSS alternative to Plex for TV/Movie playback.
One of my most used softwares on my server is calibre and calibre-web. It allows me to self host my own book server with a very nice looking front end
Thanks, i think this will be my next project. By the way it migt interest you that you can self host the entire gutenberg project using kiwix
Ohh that is very interesting. I really like hosting media like that. I feel it’s very important to share knowledge with people in what ways you can, especially literature
How is the workflow with this? Also what kind of frontend client can be used for reading? I’m curious to try but haven’t got the time to set this up so far.
So I use calibre as my backend client essentially. My library is managed through there, and I load my books in there as I get new books. It’s a bit clunky, but it’s reliable for what it does, and can even be set to auto tag your books and grab new covers for them
Calibre-web is what I mainly use to interact with it in my day to day uses. It’s a very clean front end that connects to my calibre server, and even has account management if that’s your thing. It’s hosted as a website, so I can access it from anywhere in the world. When I click on a book, I can either read it in the browser, or I can download it. Usually I just download them to my tablet and read them there as you would any other pdf/ebook. It’s a super clean way to manage a ton of books
For a real hands off approach take a look at Yunohost or CapRover. Both are very easy installs and will give you a gui to manage your applications and other self-hosted services. It’s a great way to dip your toes in. The only difference is that with yunohost, they bundle most of the self-hosted services with their own local-sso implementation, so you only need one login for all your services. This is nice if you want a set it and forget it solution. With CapRover, you basically just have a nice gui to manipulate docker installs, so if you find it a bit too restricting, you could just manipulate the docker installs yourself via command line.
Both are great entry points!
EDIT: Honorable mention of DietPi !
Home Assistant! You can host it inside a VM.
I attempted to use different home assistant softwares, but i always ended up deciding that i will wait till offline voice recognition is a bit more usable (not being a native englis speaker its a rougher experience). I will pobably try it again soon though.
These are the ones I use most actively, on my FreedomBox:
- bepasty for moving around or sharing temporary files
- Quassel for staying connected to IRC servers
- Radicale for synchronizing my calendar and tasks.
- Syncthing for files I want to have available between my laptop, desktop, phone.
- Tiny Tiny RSS for following blogs.
I’ve got a pretty booring setup compared to most 🤣. Ubuntu Server running the following in docker,
- Plex
- Audiobookshelf
- Komga
Audiobookshelf has come a really long way. The version out now is heaps and bounds better than what it was 1 year ago.
I have two instances of BookStack. A public-facing one for bird stuff, and one for home stuff. I also self-host an instance of Plausible Analytics as a privacy-respecting alternative to Google Analytics.
conduit is a lightweight Matrix homeserver. If you tried running synapse and found it to be an utter mess, conduit is much better!
mpd is a music server daemon with many clients. It scans your music (either stored locally or on a network) and creates a database (either stored locally or accessed from another mpd server on the network).
minidlna is a
DLNAReadyMedia server which is a plug and play media server. Many hardware devices (e.g. AVRs) which don’t support anything else do support DLNA, so you can e.g. serve music or video directly to your AVR instead of needing a set top box like an Apple TV or Roku.If you have a problem with collecting machines like I do, set up DNS with dnsmasq. It’s pretty easy to get started, all you need to do is write your /etc/hosts file (and, likely, disable the DHCP server). Additionally, if you have a problem with collecting machines like I do, invest in some kind of config management so it’s easy to handle all the different things you’re running.
Also, if you want to actually learn, I would strongly recommend against using Docker containers for everything. Besides being stuck with what the developers prefer, all the work of installing things is already done. Build things from source (optional), configure all the pieces yourself, work out all the dependencies and actually learn how things work. That’s the fun, at least in my opinion. That’s why I have yet another SBC with no OS to fiddle with this weekend: I’m looking to migrate from OpenWRT to real Linux so I can do everything myself instead of relying on OpenWRT’s scripts.
Also, if you want to actually learn, I would strongly recommend against using Docker containers for everything. Besides being stuck with what the developers prefer, all the work of installing things is already done.
I really disagree on this point. You should use docker or podman (preferably Podman) to containerize your applications on your server to keep them ephemeral and separated from the host OS wherever possible. This improves security, makes setups reproducible, and eases backup and restore procedure. If you want to build from source do so with a containerfile/docker file to keep your build environment fresh and clean.










