Please bear with me as I don’t know where else to ask.
I want to start to self host but do not know where to start. I would like to start small. Just something that might not be beneficial but to get my feet wet. It does not even have to be practical.
I am not tech illiterate and have my fair share of technology around me hut self hosting has always been a daunting task.
I am scared to start.
I am already using a PiHole at home but that was kind of plug and play and just worked.
I would be incredibly grateful if someone could guide me to some resource or tell me what an easy first step would be.
An FAQ or self hosting for dummies.
Most resources I found assumed some previous knowledge.
The easiest way to get started is using Docker. You can self-host most software using Docker straight from their Github with one command or copy-paste config.
Do NOT expose (Port forward/NAT) your services to the internet if you don’t know what you’re doing. Use it locally using IP:port. If you want to use your services remotely, use a VPN tunnel like Wireguard (Available on Android and iOS too). Modern routers already support it out of the box. Tailscale is also an option.
Later down the road when you start exposing services, I can recommend NPM as your proxy for easy host and certificate management. Expose as little as possible! For added security when exposing applications to the internet, expose your port using a VPS or Cloudflare and tunnel to your home using Tailscale or Wireguard.
To not get overwhelmed you should start small and improve as you go. You don’t need to start with a datacenter in your garage right away. The most important thing is that you have fun along the way :)
Great projects to get started:
To add to that, to effectively use docker and basically anything important for self-hosting is to learn the basics of Linux.
A good resource for that is https://learnlinux.tv/
This is really helpful. I’ve been wanting to get started, like OP, but knowing how to do it feels overwhelming.
Thanks!
Docker seems the way to go for me now! Thank you for the nice write up.
I definitely do not now what I am doing so the word of caution is greatly appreciated!
The whole thing about remotely accessing is probably something I put on my ToDo list as soon as I get a service up and running. Nevertheless reading it and just knowing about Wireguard and Tailscale is a huge benefit to me.
Is there a personal recommendation which of your listed projects to get started with?
Here are a few of my favorites, some of which are exposed, some are not:
- Mealie - Recipe management. Import recipes by URL is my favorite feature, then I tweak and try it out (I have to be gluten free, so this makes it easy to track what worked for us).
- Homepage - a homepage to put quick links to all of my stuff, neat and clean.
- Grafana - for visualization of current data of my systems, paired with Prometheus.
- Technitium DNS - for all of my DNS needs.
- Jellyfin - for all my media, let’s me pick out what my kids can see/watch without me having to look over their shoulder, along with being a great looking solution for me.
- Immich - photo and video management
All of these (and more, this is just a dsmple of favorites) run on Proxmox. I mostly use LXC over docker, personal preference.
Home Assistant is probably the single most useful for me, already mentioned, just about everything at home is automated/controlled through there.
KitchenOwl and Pastes are probably the easiest to setup. Paperless is the most useful for me. Nextcloud can be a bitch to setup once you want to include Office functionality. I recommend the Nextcloud All-In-One to make it a bit easier.
In addition to the ones listed above, I can also recommend Home Assistant if you don’t know it yet. If you like home automation you’re in for a treat.
A lot of people recommend Docker, but I will go further and say to specifically use Docker compose.
That way all the configuration is in a file that you can backup/restore. Updating is really easy, and you will never forget one of the random flags you need to set.
- PiHole - you can use the custom DNS to route domain names to you npm
- npm (Nginx proxy manager) - allows easy access to all your services hosted on one box
I agree, but want to add Portainer. Compose in Portainer takes away the scary SLI/Terminal part.
At least for me, hosting stuff went from «I have no idea what I’m doing» to «This sort of makes sense».
Learn how to use Docker. That’s gonna be a big help.
Louis Rossman, a strong advocate for the right to self-repair, has an extensive, bottom to top guide on self hosting your own services. It starts from introducing what a modem is and what role it plays, and it ends with an entirely self hosted cloud. It comes in article as well as 13 hour video form. I would highly recommend this to anyone looking to get started self hosting - it doesn’t just introduce software you should learn, but it also shows you how to configure it.
I feel like a lot of the answers in this thread are throwing a lot of things with a lot of moving parts: Unraid, Docker, YunoHost, all that stuff. Those all still require generally knowing what the hell a Docker container is, how to use them and such.
I wouldn’t worry about any of that and start much simpler than that: just grab any old computer you want to be your home server or rent a VPS and start messing with it. Just pick something you think would be cool to run at home. Anything you run on your personal computer you wish was up 24/7? Start with that.
Ultimately there’s no right or wrong way to do things. It’s all about that learning experience and building up that experience over time. You get good by trying out things, failing and learning. Don’t want to learn Linux? Put Windows on it. You’ll get a lot of flack for it maybe, but at the very least over time you’ll probably learn why people don’t use Windows for server stuff generally. Or maybe you’ll like it, that happens too.
Just pick a project and see it to completion. Although if you start with NextCloud and expose it publicly, maybe wait to be more comfortable with the security aspect before you start putting copies of your taxes and personal documents on it just in case.
What would you like to self host to get started?
That takes away a lot of stress. Knowing to just get started and ignore the best approach instead of just a getting started approach and learn as you go.
For the longest time I wanted to get rid if my google drive or google calendar and host one myself.
Email as I have read is something more advanced but I would like to self host my email as well.
Photos eventually too.
As a lot of people have recommended nextcloud that seems like where my interest might be heading.
As a starting point. Are there any hardware recommendations for a toy home server?
As a starting point. Are there any hardware recommendations for a toy home server?
Whatever you already have. Old desktop, even old laptop (those come with a built-in battery backup!). Failing what, Raspberry Pis are pretty popular and cheap and low power consumption, which makes it great if you’re not sure how much you want to spend.
Otherwise, ideally enough to run everything you need based on rough napkin math. Literally the only requirement is that the stuff you intend to run fits on it. For reference, my primary server which hosts my Lemmy instance (and emails and NextCloud and IRC and Matrix and Minecraft) is an old Xeon processor close to a third gen Intel i7 with 32GB of DDR3 memory, there’s 5 virtual machines on it (one of which is the Lemmy one), and it feels perfectly sufficient for my needs. I could make it work with half of that no problem. My home lab machine is my wife’s old Dell OptiPlex.
Speaking of virtual machines, you can test the waters on your regular PC by just loading whatever OS you choose in a virtual machine (libvirt if you’re on Linux, VirtualBox or VMware otherwise). Then play with it. When it works makes a snapshot. Continue playing with it, break it, revert to the last good snapshot. A real home server will basically be the same but as a real machine that’s on 24/7. It’s also useful to test things out as a practice run before putting them on your real server machine. It’s also give you a rough idea how much resources it uses, and you can always grow your VM until it fits and then know how much you need for the real thing.
Don’t worry too much about getting it right (except the backups, get those right, verify and test those regularly). You will get it wrong and eventually tear it down and rebuild it better what what you learn (or want to learn). Once you gain more experience it’ll start looking more and more like a real server setup, out of your own desire and needs.
Email is often impossible. you can run your own server but you won’t be able to send email to many people because gmail and other larre providers will ignore everything from any ip address you can get. you endeup with email for only people on you server and the what is the point.
just a warning there. Some do self host email but it is the most difficult to host. My life is much better now that I pay fastmail to handle my email.
It’s not impossible, been running my own email server for about 10 years and I inbox pretty much everywhere. I even emailed my work address and straight to inbox. I do have the full SPF, DKIM and DMARC stuff set up, for which I get notices from several email provides of failed spoof attempts.
Takes a while and effort to gain that reputation, but it’s doable. And OVH’s IPs don’t exactly have a great reputation either. Once you’re delisted from most spam databases / old spam reputation is expired, it’s not that bad.
Although I do agree it’s possibly one of the hardest services to self host. The software to run email servers is ancient and weird, and takes a lot to set up right. If you get it wrong you relay spam and start over, it’s rough.