Self-Hosted Main
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
For Example
- Service: Dropbox - Alternative: Nextcloud
- Service: Google Reader - Alternative: Tiny Tiny RSS
- Service: Blogger - Alternative: WordPress
We welcome posts that include suggestions for good self-hosted alternatives to popular online services, how they are better, or how they give back control of your data. Also include hints and tips for less technical readers.
Useful Lists
- Awesome-Selfhosted List of Software
- Awesome-Sysadmin List of Software
In my opinion, cloud storage for (zero knowledge) backup. Your backup strategy should include a diversity of physical locations. I had a house fire a few years ago. Luckily, my data drives survived, but if they hadn't, my cloud backup would've been invaluable.
Don't host your own email server.
Just trust me.
Meh, been doing it for 5 years now with minimal issues. Had one issue come up where my domain was flagged as malicious, but was solved in a few days and some emails to security vendors.
I think it's important that those who can, and are educated enough to keep it running properly do host their own. Hosting your own email should be encouraged if capable because it helps reduce the monopoly, and keep a little bit of power for those who want to retain email privacy.
I agree with KN4MKB. I've been hosting my own mail server for decades. Not one issue. I use that in lieu of a mail service provider (Google immediately comes to mind), as their EULA service agreement will tell you that - since you're using their service, on their servers - anything goes. Read the fine print on Gmail, and you'll see. π
Okay I understand that email hosting is bad for SENDING email , but what about only RECEIVING email , isnβt it a good idea to keep my stuff private ? I rarely send personal emails, and like to avoid my data being used for marketing purposes Is that bad to have smtp imap open on dynamic ip address ? Just asking your opinion
A password manager because if anything goes wrong, you'll be completely screwed.
What you SHOULD absolutely self host though is a password manager, so you can be in control of your most sensitive data.
Regarding email, I think everyone should absolutely self host it, but it's less and less viable in this google/Microsoft duopoly world. But ideally everyone would self host it. The reason why people advise against it really comes down to lack of real competition, and the two tech giants dictating how we violate every RFC possible.
A password manager because if anything goes wrong, you'll be completely screwed.
What you SHOULD absolutely self host though is a password manager, so you can be in control of your most sensitive data.
Wot?
Passwords:
-> You want to have immediat access to them, even if your house burns down
Notes:
-> You want to be able to read the documentation how to fix your selfhosted service, even when your selfhosted services are down
Public Reverse proxy:
-> A reverse proxy is only as safe as the applications behind. And NO, most selfhosted-applications are not hardened or had security audits
(reverse proxy with a forward authentication proxy is something different)
People saying email, look into using external SMTP servers as relays. Your domain most likely comes with at least one email account with SMTP access. You can use that as a relay to send personal/business emails from your server using the provider's reputable IP addresses.
Primary backups
Don't self-host email SMTP or public DNS. They're hard to set up properly, hard to maintain, easy to compromise and end up used in internet attacks.
Don't expose anything directly to the internet if you're not willing to constantly monitor the vulnerability announcements, update to new releases as soon as they come out, monitor the container for intrusions and shenanigans, take the risk that the constant updates will break something etc. If you must expose a service use a VPN (Tailscale is very easy to set up and use.)
Don't self-host anything with important data that takes uber-geek skills to maintain and access. Ask yourself, if you were to die suddenly, how screwed would your non-tech-savvy family be, who can't tell a Linux server from a hot plate? Would they be able to keep functioning (calendar, photos, documents etc.) without constant maintenance? Can they still retrieve their files (docs, pics) with only basic computing skills? Can they migrate somewhere else when the server runs down?
I'd say backups. At least it shouldn't be only local. I follow the rule of threes: two local copies and one off site with backblaze. Yeah, it ties up a not insignificant amount of disk space I could use for other things, but dammit, I'm not loosing my wedding photos, important system configurations, etc.
Personally I don't think it's worth hosting recursive dns resolvers. Most of the options with ad blocking are single points of failure and when it breaks the household acceptance factor is just too low.
Just....set up two RPIs with Pihole instead of one? Chances are your router can have a fallback DNS. Sure, you have to update the rules in both places, but honestly it's not a big deal, and you now have redudancy.
I'm running 2 powerdns recursors and authoritative servers, and 2 piholes (long story why so many), and none of them have failed on me so far, and when I took one of them offline, I didn't notice anything because the other took over. And if anything REALLY fails, I'll just switch my router back to using cloudflare or Google or quad9 temporarily, and at least Internet access will be restored so people can at least browse the internet.
Pihole also has an API and a home Assistant integration, so you can create an AdBlock toggle switch for others, in case it blocks something and they need immediate access. Not ideal, but it's a doable workaround.
This is really something that's super easy to self host, and mitigate if something goes wrong. Especially since that commercial router is already a single point of failure for most households.
E-Mail.
And maybe unpopular opinion:
-
Any service that you use with port-forwarding, besides WireGuard.
I would never access any self-hosted application without VPN. -
Password manager. I want to minimize complexity with my most important data (that's why I'm using KeePass instead of Self-Hosted Bitwarden).
Mail is a waste of time, and it's take the risk to don't receive important mail in time.
Push notifications.
It is fine hosting a service that gets requests then talks to FCM or the iOS version. But a service that one's phone stays connected to 24/7 is really hard, and not kill one's battery.
I don't self host anything where it would impact me unduly if it went down while I was on holiday to the point where I'd have to break state and go fix stuff.
I don't want to have to leave my beer or beach and head off to fix things like an email server, restore a password manager db etc. so anything like that which is critical to the point where an outage would prob have me do so means I pay someone else.
If self hosting from home.. email servers
At home, your IP is likely blacklisted and/or your provider has blocked the necessary ports. Not to mention the layers of potential headaches dealing with potential spam block dbs, especially if you don't own your IP.
You can of course do custom setups allowing you to skirt these restrictions, but can sometimes be a bit complicated and typically involve non-traditional customizations.
email service
I'm doing it on a bm I rent for 10 years now without issues with spf, dmarc, dkim and everything from scratch (no docker bloat)
Docker is the antithesis of βbloatβ.
Docker is horrid for duplication. Unless you use a filesystem with good deduplication, docker can hurt a lot on your storage. and even then it still can just not work often due to due to already deduplicated extent stuff
I think there's a hangup on the term "self-host" where some people are assuming it's going to be exposed to the Internet.
I self-host a ton of stuff that is only available inside my home network or through my VPN, which is not publicly discoverable. I would never open a TCP port to the world from my home network. That's how you end up on shodan.
So yeah, if it has to accept inbound connections from arbitrary other systems on the dirty internet (email, mastodon, etc), it's not happening on my network, and probably not at all because it's a pain in the ass to stay patched.
6 u6
Choosing a service to NOT selfhost is a subjective descision.
I host 18 Proxmox VMs and 20 Docker containers at home. I also was selfhosting a WebDAV server for synchronizing my Joplin notes between devices and Vaultwarden for managing my Bitwarden vault, but decided to push the Joplin synchronization target to Dropbox [free] and to use Bitwarden's free cloud solution for my passwords and secure notes. I did this because I will need immediate access to these two critical sources of information should my house burn down, or get blown over by a tornado. I have extremely strong passcodes for these and trust the hosts.
This was strictly a personal decision. YMMV.
Mail server or anything using RDP.
Email. I always recommend AWS SES. Use it at as an SMTP relay and any internal services gets restricted access through IAM.
The login page to your NAS.
If your NAS is properly updated, and SSL is used, then the login screen it just as safe as any other web app with regular updates. I would ask why someone would want that.
Not really an option when I'm providing file hosting services to a bunch of my friends.
Password manager. While some may cache on your client devices, by and large if your server goes down, no passwords.
Vaultwarden with SyncThing is a robust combo from what I hear. Everything is local.
Not necesarily. If you self host SyncThing and use it to synchronise your password database across devices (for example KeePassXC's .kdbx file) only the synchronisation goes down with your server.
Same with Bit/vaultwarden, all clients grab a copy of the vault from the server when they sync so if the server is offline all clients still "just work".
Child porn, obviously
I know this might be a bit controversial, but IMO a beginner should not self host passwords, and at least not the sole backup for photos and videos. I think self hosting them in general is good, but until you know for sure, "Ok, my back-up system is working fine, even if my stuff goes down, I have little downtime for bringing it back up".
If you can't say for sure this is you, Don't self host your passwords, bitwarden is great and encrypted so I highly doubt issues will be had there. Also make sure to use a different/seperate hosting service for pictures. I personally recommend using google drive + rsync since rsync can encrypt all your pictures.
I've seen more then a couple people fail the backup part, even when they thought they were fine before hand.
Plex. Despite everything be supposedly self hosted, they are spying on what you're watching and sharing that info with 3rd parties, your friends and your family.
Use Kodi instead or if you're old school like me, an old fashioned smb share running on a pi.
I agree with the sentiment but Kodi isn't really a direct replacement for a plex server, it's a client replacement. You want Jellyfin or at least a mysql backend for Kodi to get the shared watched status and such.
Clearly opening RDP port on internet. NEVER.
What do you mean by "clearly". Open RDP without password protection?
I often use RDP to access my desktop Windows 10.
What is wrong with that? Don't they still need correct credentials to connect?