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!
No worries. Enjoy!
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?
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.
Learn how to use Docker. That’s gonna be a big help.
Hello, I am also new at self hosting semi recently. There is a bit of a learning curve, but once your over the hump, it gets a lot better.
First, 100% use docker desktop if your using windows. Most github projects have a docker file you can use. This will take out 90% of the setup required and you don’t have to worry about applications not working on your computer. Thats the point of docker, to remove the “doesn’t work on my computer” problem.
Here are some independent github projects that I found useful for me and were simple to setup.
- excalidraw - digital whiteboard. You don’t need to self host this, but its a fun little project. You can just go to excalidraw.com and have 100% of the same features (it is all saved in your browser’s cache).
- mealie - I cook a lot so this is a nice ‘permanent’ cook book to have.
- warracker - I always forget what I have warranties on, so this will be helpful for me.
- Arr projects like sonarr, radarr, Jellyfin - sonarr and radarr is a good project to sink your teeth into (do not recommend using docker for this, I had issues with my docker container connecting to my external drives because I have Windows Home edition). This ecosystem is usually everyone’s first project along with pihole since its so useful. Sonarr and radarr will probably take you a week or weekend, Jellyfin will take like 5 min.
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.
As a homelabber and systems admin, I would start with learning how to use Linux on the command line.
It’s all well and good looking at docker, but if you don’t know how to move about or edit on the command line. Your going to get stuck real quick.
Once your happy doing simple tasks on the command line, I would actually look at running something like wordpress on a pi or VPS. That will help you understand how to connect services together, and cement your basic command line knowledge.
I am not unfamiliar with Linux.
Kind of lucky/unlucky as a broke student I did not have money to buy a new Windows machine.
Now I am kind of glad about it.
Docker on the other hand I have had barely any contact with it so far. So I definitely check that out.
My adventure into self-hosting started with a Synology NAS maybe 5 years (?) ago.
With just the built-in software, I was able to replace Google Photos, Evernote, Dropbox, Google Calendar, Google contacts, and Google Play Music and Movies.
Then as I learned how to use docker, I was able to replace more services.
There may be “better” options out there beyond what Synology offers, but it’s been such a “set and forget” experience, that it’s easy for me to recommend them as an option.
The biggest barrier, IMO, isn’t the learning curve, but the initial investment for the NAS + HDDs and the upgrade path as your storage needs grow.
This is where I’m at: a Synology running a few services like Plex for my family and friends. I’m hoping to learn more and help us all move from walled gardens even further. Some of Synology’s software can feel a little clunky to use but generally I’ve found it to work great despite my limited knowledge.
Some of Synology’s software can feel a little clunky to use but generally I’ve found it to work great despite my limited knowledge.
Yeah, I make regular use of some of their built-in apps (Note Station, Drive, Photos).
But they aren’t perfect.
For example, Note Station has no good way to export the data for use outside of Note Station (poor data portability) and Synology Audio just feels so outdated. Photos is their best software, IMO.
The beauty of self-hosting this stuff is that you can use any third-party software that reads the files, and you’re good to go. Your music, videos, photos, and documents are available as you see fit.
Jim’s Garage just did a video on this. He made a docker stack for beginners with directions to his actual videos containing the more in-depth about each service being deployed.
Thank you for sharing!
I will give it try it seems like a great starting point.
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.
Start with a VM on your computer and see what you want to do/need from there.
Leaving a laptop on is (almost) free.
If you want an easy way to host, yunohost can be a good place to start.
To start small setup a static website behind nginx. This requires you to create a basic website or copy a template, it goes somewhere in your filesystem, in linux /var/www is common. Once you have that, setup the nginx service and point it to that location. You can do this locally then expose it to the net or put on a VPS. Here is a dead simple guide presuming you have a remote server: https://dev.to/starcc/how-to-deploy-a-simple-website-with-nginx-a-comically-easy-guide-202g
Once you have that covered, ensure you know how to setup ssh keys and such, then install, configure, and run services. From there, most things are easy outside of overly complicated configurations.
Watch some YouTube channels like Jeff Geerling or Hardware Haven. They along with others, made the daunting task or self hosting manageable for me. Great tips with helpful pointers, and they lay things out fairly well, on their videos and their websites.
Thank you! I will definitely give them a read/watch.
I will go even ONE step further than others - if you are scared to start a software like Truenas scale that has a GUI has helped me. A lot of the options offered by others are great but can require a lot of command line stuff. There are a few OS’s out there that are more point and click that I had a lot of success with. Truenas scale runs the docker containers that others are recommending.
If you look up “Dr. Frankenstein Discord” you’ll find the community that helped me get familiar with Docker. As in, several people held my hands for about 2 weeks non-stop. I can’t tell you enough how much I love that group. But containers aren’t the only way to go.
I hear people talking about Proxmox a lot, and it seems (as far as I can tell) to be one of the easiest platforms for hosting many services one a machine. Next computer I set up, I’ll be going that route.
Regardless of how you do it, the knowledge base and skills mostly transfer like a Venn diagram. The most important pieces to get started are hardware and patience. Everything else can be solved with online teamwork
I will check out that community. Seems incredibly friendly and supporting!
Proxmox is something in my distant future but regardless. I will hopefully get there eventually
Having an environment like proxmox is very handy for learning and testing. When you find something to test, spin up a clean machine and you have a safe environment to learn that can be removed after. You can also try out different distros that way.
I’d recommend setting up Incus instead however, it works fine on a desktop/laptop if you’re running a linux distro they support and don’t have a dedicated machine to use.
They also have a very good tutorial/demo that shows the basics: https://linuxcontainers.org/incus/try-it/
You can set up Bookstack and then use it to document everything you’re going to set up later!
Hosting Bookstack seems a bit much for someone who’s just getting started.
Do you think so? I thought it’s comparedly straightforward