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
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
- 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:
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.
Home Assistant, despite the name, isn’t an Assistant like Alexa or Google Home, it is actually a home automation integrator. It connects to practically everything, and then workflows can be triggered off the states of your IOT stuff. In my house, I use it to, among other things, turn down/off the light when grid power goes down and I’m running on battery power, as well as send me a notification that I’ve lost grid power.
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 !
- 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.
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.
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…
From the things I use:
- Uptime Kuna, for monitoring the availability of websites/services
- Gitea, for hosting code
- PicoShare, for sharing files
- Maddy, for email
Ok I may have to set up uptime Kuma. I have some services that I don’t realize are down until I need them, and it gets frustrating
How has your experience hosting your own email been? I often hear that the big providers (Google, Microsoft, etc.) will simply drop your sent mails.
I also host my own mail and there’s been little issues.
Microsoft is a pain in the ass if you’re in an IP space they don’t like like DigitalOcean. Which is ironic because they have the worst spam filter by far in the industry.
If you want to get through to everyone you will have to:
- Use a “good” TLD ( not .to, not .xyz, …)
- Don’t use cloud platforms that are regularily used for spam (mostly DigitalOcean)
- Use SPF
- Use DMARC
- Use DKIM
- Use a PTR record
- Don’t make an open relay by accident
- Use proper ports and certificates
- Register an abuse account at the big players (Google, Microsoft, …)
- Don’t use an dynamic IP
- Keep it up to date
- Minimize downtime
I can’t recommend mailcow enough, it makes setting up a mail server a breeze.
https://github.com/mailcow/mailcow-dockerized
Use the MXToolbox to verify your server(s).
I have had issues with it over the years. Many will blacklist entire cidr nets for a single bad actor. I get this on my linodes frequently if I proxy traffic through them. Ie: tons of captchas on google/YouTube.
When I ran my own mail it was similar. Often having to spend time getting IPs off rbls and the like because some other node on my subnet was malicious.
In the end, I just moved my email over to workspace. Not ideal. But it works.
One thing I did notice was that as soon as I registered my domain in workspace (but hadn’t even setup mx records or began moving mail) a lot of issues with google immediately stopped, and thus, same with Office.com. I actually ran this way for a while but then google axed freed accounts and I just moved my stuff to them and pay.
Maybe because I use a gTLD? I dunno. But it was a headache.
I set up my own email on a bsd.amterdam VPS and have had no problems whatsoever. No one drops my mail. I don’t know what slash_nick is talking about regarding maintenance. The only maintenance I have is rotating Let’s Encrypt SSL certificates, and that’s only because I haven’t automated it yet. Domi has good points that can be summarized as “actually do it right”. I got my setup working in about 100 lines of config. Granted, that’s OpenBSD rather than Linux, which is significantly more terse, but it’s still not hard and I wish more people would realize that. That 100 lines includes firewall and network config, to give an idea of how little work there actually is.
Nextcloud, Bitwarden (vaultwarden is the name of the OSS server), Adguard Home / Pihole and Paperless-NGX might be some things which can have a pretty big impact in your daily life.
Personally, as well as NextCloud, I’d host instances of LibreX, CloudTube, PiHole, Gitea, XMPP, and CryptPad.
If it’s fun you’re after, though, why not try hosting a Minecraft server? And how about XMPP or Matrix, to keep in touch with friends?
What’s your xmpp server of choice?
I haven’t really looked into it much, as I don’t currently have enough time or money to self-host anything, but I’d probably go with Prosody to start with.
Jellyfin with Sonarr, Radarr, Prowlarr and some torrent client makes a great automated media server. Just don’t forget a VPN!
Here are some I find really useful:
- Jellyfin (media interface)
- paperless-ng (document store with OCR, tagging, search, etc.)
- Miniflux (RSS reader)
First time hearing of Paperless. That’s super cool!
I use all of these and can confirm they’re really good! I can’t believe I used to just search through multiple email accounts instead of using Paperless.
What benefit does Paperless provide over searching your email? If you’re searching your email, then you can search by message metadata associated with the document (e.g. when it was sent, who sent it, keywords in the email). How does Paperless improve upon this experience? It seems inelegant to just duplicate all that in Paperless.
Granted, that said, I like my email searching tools and email client, so maybe that’s part of it?
One of the main things is that Paperless applies OCR to each uploaded document, so you’re not just searching for the message content and metadata, but also the whole content of the document. Maybe some email clients will do this too. It also has a tagging system which can automatically add tags based on document content. Mostly I just like having everything that’s relevant in one place, and only what what is relevant. So if I’m looking for concert tickets I don’t find the “order confirmed” and other related emails that do not actually contain the tickets.
Thanks, paperless will be really useful at uni
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.
pihole/adblock monero node/support monero network p2pool/mining pool for monero wireguard/vpn Tor relay, i have thought of using an old pc to support Tor
!selfhost@lemmy.ml
https://lemmy.ml/c/selfhost(still don’t know how to link communitys here)
- 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.
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/Caddyfile
file - 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
- Open the
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.
Nginx proxy manager is simple, but I can’t manage to make it work with https on porkbun. Nginx-proxy works just fine and it’s probably the simplest i’ve seen.
That is pretty cool :) I have a domain on porbunk too but even up putting DNS on cloudflare because porkbum uses cloudflare anyway but doesn’t expose most of the features. Kind of a loss loss. Cloudflare works with pretty much everything.
I’ll check out nginx-proxy. Have heard good things about swag too. How is the setup on nginx-proxy compared to other options?
I didn’t know that about porkbun.
Basically you run the container and then put a couple environment variables in the containers you want to proxy and it handles all of it for you, including certs. Just works.
Thanks. Seems pretty much identical to traefik which makes sense because I think most of reverse proxies just use LetsEncrypt underneath.
Please do! I have been trying to set up remote access to a server I have, and there seems to be so many solutions and all seem very complex.
Have linked one :) For remote access, I wouldn’t necessarily use traefik at the edge. The safest solution would probably installing zerotier/tailscale on the remote server and accessing traefik through that. That way you don’t have to expose unnecessary parts or worry about robustness of authentication etc.
If it is a single computer you can easily make a two computer network using the instructions from wireguard archwiki page and you’re all set :)
Ooh. I signed up for tailscale, but havent gotten the configuration right I think. Also signed up for NextDNS. Got some work to do but no longer have the time.
What I actually want to do is make it so I can give out accounts to services to my family and girlfriend so they can watch movies and whatever.
Tailscale is one step to many. I think I will need to purchase a domain name or set up a VPN, which seems a little scary to me.
I’m using the following:
Plex for music/anime/tv/movies, calibre webserver for ebooks/manga, qbittorrent web+Prowlarr to search for and download content, SyncThing to keep things in sync between my server and desktop, and I’m also file sharing with nicotine++