So, about two months ago, I had a very eye opening experience. As the result of a single misconfigured security setting on my Android, I was locked out of my Google Account on my phone AND all of my PCs. I had no access whatsoever to Google, or any of the literally hundreds of services that I get through Google.
This is when I realized that I relied entirely on Google/Android because those two days were actually very difficult, being cut off from media, services, passwords, everything, from the past almost twenty years of my life, could be taken away from me in an instant. The decades of my life that were locked away in my Google Account included hundreds of thousands of pictures, almost a hundred thousand audio tracks, several hundred books, several hundred apps, thousands of videos, etc. ad infinitum. Unfortunately, very little of this material was backed up at that point. That is my fault. Also, the misconfigured security setting was my fault as well.
The amount of data, media, memories, services, etc. that would have been lost is actually endless and it would have affected my life in several ridiculously negative ways.
Luckily, in the end, I was able to get my access back and then basically immediately grabbed all of the several terabytes of information and media of mine that they had, and that I was almost locked out of. I have it all in my house now on a drive in my computer, with a backup made on another disconnected disk.
I then decided that no corporation was ever going to have such an insanely high level of influence on and control over my entire life and my media ever again. That experience was actually very scary.
I’ve been trying to get into SelfHosting, but am finding it quite daunting and difficult.
There is a LOT of stuff that I have to learn, and I am mostly unsure of where to even begin. I know basically nothing about networking.
I need to learn the very basic stuff and work my way up from there, but everything that I’ve seen on the Internet assumes that the reader already has a basic to intermediate understanding of networking and the subjects that surround it. I do not, but I am going to learn.
I just need someone to show me where to start.
Thanks in advance for any assistance!
As the result of a single misconfigured security setting on my Android, I was locked out of my Google Account on my phone AND all of my PCs.
Just a heads up on what you are getting yourself into, if you fuck up your self hosted setup badly enough there is no recovery.
That isn’t necessarily intended to scare you off from self hosting, just that the first and most important lesson to learn is to have a good system of backups that are backed up automatically, are easy to recover from, and are separated enough from other copies of the data that if something goes terribly wrong one copy will survive.
Thanks for the advice. Currently, I have a backup of all of my important data on a high capacity HDD that is completely disconnected from any devices. There is no real way to automate backups with that setup, but it’s what I am working with at the moment.
To piggy back off of Arcayne’s comment
I’d recommend setting your sights on the 3-2-1 rule. 3 copies of your data, 2 different mediums, 1 off-site. Hetzner Storage Box is a good cheap offsite option.
I don’t backup everything to a 3-2-1. I at least have everything on a 2-1 backup scheme. Two copies, one offline. My personal photos and videos are on a proper 3-2-1. I can redownload my movies and music. I can’t retake pictures from my childhood. It saves a lot of money doing it that way. My personal media is less than 1 TB, whereas my whole collection is many TB and would be prohibitively expensive to 3-2-1.
I’d recommend setting your sights on the 3-2-1 rule. 3 copies of your data, 2 different mediums, 1 off-site. Hetzner Storage Box is a good cheap offsite option.
Yunohost should be the software you’re looking for. Install stuff by clicking. Much less terminal stuff
+1 for YunoHost from the POV of a total self-hosting newbie (I’m now self-hosting my own GoToSocial, Pixelfed, PeerTube and NextCloud thanks to it… upgrades and backups are super easy, too)
Sevral people have mentioned Yuno and I’m going to look into it shortly. Thanks for the input!
As someone who went through this after trumps 2nd term and power grabs i can give you my process:
- angrily unsubscribe all big tech subscriptions
- make a protonmail and tutamail account, realize I like proton suote more and decide to subscribe
- transfer all passwords to proton suite
- download all photos and other from cloud to an external drive. TURNS OUT THIS TAKES SEVERAL DAYS WTF
- angrily order a rasp-pi and an external SSD
- use step by step tutorials from pimylifeup to install docker and immich. Fall in love
- gradually (via help of google and GPTs) become confident enough with command line to start managing the server headless over SSH
Fast forward 6 months: My router is now running OpenWRT. With a few necessary exceptions my network access is always through ProtonVPN. My external devices are connected via wireguard to the router when not on home wifi and only after that reach the www. I have 24/7 access to my services from everywhere. My main server is now an old office mini pc running about 10 services. Im using borg for nightly snapshots(its a bit like apple time machine) and after that everything is backed up to another server at a friends house via rsync and ssh. I have a third mini computer whose purpose is to be my tv’s UI with access to services like the national broadcasts web ui and my own jellyfin and invidious (adless youtube client) The tv does not have an internet connection anymore. I even made a custom land page that automatically opens full screen in a browser when open my tv.
The point is: this builds gradually and you have fun doing it. …until it breaks :D The most painful parts involved networking so you can settle for LAN only at first to keep things simple
how well does invidious work on the TV? how easy are the controls?
When you’re connecting to your local network, say from outside your home, you connect through proton vpn? I’m wanting to self host, but I thought I would have to switch between proton and whatever VPN the local machine is using? Say immich for instance
My phone is on a wireguard tunnel into my router which puts my wireguard vpn in the same forewall zone as my home LAN. Internet access is routed through the tunnel and then through another tunnel to protonvpn and from there to the www. It was a bit elaborate to set up but it works. Wouldnt really recommend the setup for everyone, it was a bit of a pain in the ass to get working. I used Openwrt and policy based routimg plus wireguard for the tunnels into and put of the router.
Re-investing in a new platform full of tools (Proton suite) isn’t in my opinion a rational answer. My answer is self host vaultwarden, self host your file storage, and choose between Proton and Tuta for mail, and use your own domain name so you can take your email address with you should you move.
In my opinion No-one should ever store any form of personal data implicitly on someone else’s computer.
Oh i have vaultwarden as well nowadays
If you have systems or services you’re dependant so strongly, always have an backup / emergency access. 3rd party or self hosted.
My 5c but I think you agree.
Point being as a decades old it professional I see design more important as the detail implementation.
Goddamned inflation. It used to be just 2 cents worth!
I don’t believe inflation is a serious problem. But that is just my 9 cents.
Ah crap that’s what I get for not being native English. But still, correct somehow.
Indeed, I do agree but I’ve never done anything close to this magnitude so it is kind of intimidating for me. It is a learning process though!
I’d recommend not to go containerized but that can start a flame war. I would think it easier. But best to stick to the recommended beginner tutorial that someone else posted and go along from there.
Then ask questions on the way.
I hard agree with this. I would NEVER have wanted to start with containerized setups. I know how I am, I would have given up before I made it past the second LXC. Starting as a generalized 1 server does everything and then learning as you go is so much better for beginnings. Worst case scenario is they can run docker as the later on containerized setup and migrate to it. Or they can do what I did, start with a single server setup, moved everything onto a few drives a few years later once I was comfortable with how it is, nuked the main server and installed proxmox, and hate life learning how it works for 2 or 3 weeks.
Do i regret that change? No way in hell, but theres also no way I would recommend a fully compartmentalized or containerized setup to someone just starting out. It adds so many layers of complexity.
Native vs containerized really depends on what it is going to be doing tbh. If it’s just downloading and/or moving files around, containerized is fine. And having your docker-compose.yml files saved somewhere external will make future hardware upgrades/recovery much easier.
There is certainly some learning curve to figure out the quirks of a compose file, but the nice part is that most services will post an example compose file for you to edit as needed. And that means learning it is basically just a matter of reading the example files and figuring out what the different fields mean; yaml is extremely easy to read, even for someone who has never looked at it before. You may have some fringe cases that need a deeper dive, but the vast majority of setups are basically just a matter of “copy the example compose, edit the volumes as needed, and fuckin send it.”
Yes indeed. However as a beginner I think it’s far easier just to install and run a daemon. But maybe that’s just me. And of course if the intended way of running it is only container by default.
You seem to imply you also want to selfhost some email service. But that’s sadly one of the few things that will always be better at a trusted third party email provider.
Besides that it seems the most important thing you want is pure data storage, and that kind of selfhosting is not hard. In many cases one would not even consider it as part of “selfhosting” as it can be as simple as a local NAS or external HDD.
So my question is what do you actually want to accomplish? Because I think for a lot of your concerns you don’t even need to go and host something.
I don’t want to replace email, per se. More so, the services that come along with it. Stuff like photo storage and sync, notes and reminder sync, calendar sync, and a lot of the hundreds of other small things that I have just been leaving up to Google that would cause a huge problem for me if I lost access.
I have the password situation handled with KeePassXC on my PCs and KeePassDX on my phone, but that’s about as far as I have come as of yet.
Keepass is a great way of password management, I use keepass as well. I also use syncthing to sync my password database across all devices and then I have the server acting as the “always on” device so I have access to all passwords at all times. Works amazing because syncthing can also be setup so when a file is modified by another device, it makes a backup of the original file and moves it to a dedicated folder (with retention settings so you can have them cleaned every so often). Life is so much easier.
For photo access you can look into immich, its a little more of an advanced setup but, I have immich looking at my photos folder in syncthing on the server, and using that location as the source. This allows me to use one directory for both photo hosting and backup/sync
Note taking? Joplin. It’s been amazing for me and replaced Evernote after they started with their BS.
Photo storage. Been using Photo prism but I’m open to a better one.
If you want to start cheap, I can recommend you to use an old notebook. In my opinion it’s the perfect home server for beginners.
- It’s cheap (most people have an unused laying around anyway)
- If it’s old enough to still have a dvd drive, you can replace it with a second sata ssd. There are cheap frames for this available.
- it has a battery, so it can shutdown if there is a power outage
- It’s slim. You can just throw it on your closet and forget about it
Most services don’t need much. So it’s just fine if your “server” is like 10 years old. My first notebook server had 2 cores and 4 GB ram and it run Proxmox with like 10 lxc containers just fine.
Awesome suggestion! Thank you.
since you’re so new to self hosting, don’t open anything up to the internet. You’re in for a world of pain if you do.
Instead of self hosting, why not try better offerings?
Most anything you probably use Google for, you can do with a disroot account. Riseup is a great group, with many similar services (not all). The tildeverse also has myriad replacement services.
Just try to support them, financially.
I have no idea what Riseup, Tildeverse, or Disroot are but I will certainly look into it.
Amazing, thanks for sharing. I understand Riseup and Disroot and the missions of each, but I’m having a bit of trouble with Tildeverse , likely because I am not well versed in *nix operating systems as of yet. I’m going to commence to reading up on all of these!
Oh, yeah, I guess I kinda tossed that out there, as they do host a ton of servives. However, its very welcoming as an onboard ramp to learn about *nix stuff. Just ease yourself into that, while exploring Disroot and RiseUp :)
The FUTO guide is meant for total beginners.
They use OpenVPN for some reason. Wireguard is superior in every way. In case you set up a VPN.
Thank you! I will begin to look over it tomorrow!
I am a sysadmin with over 30 years of experience managing servers and networks for businesses of all sizes as well as for myself, friends, and family.
The FUTO guide is extremely detailed, accurate, and accessible. It does not always follow best practices, and it’s not a comprehensive guide to all of the possibilities for self-hosting. It’s not trying to be. It is a guide for someone with no technical expertise (but with basic technical ability) to degoogle/deapple themselves at a reasonable level of cost and effort.
You do not have to do everything in the list, you can pick and choose the parts you’re interested in. That said, I would recommend reading through the whole article as you have time, because it does a very good job of explaining the concepts involved in building a self-hosted setup, and understanding how everything works is the biggest step toward being able to effectively troubleshoot problems when they inevitably crop up.
If you have specific questions about things that aren’t answered in the guide or via a quick web search, post them here.
Thanks for the detailed explanation! I will definitely begin studying the document tomorrow!
Love the explanation. I’ve had a homelab for 20 years now and have never heard of FUTO. You’re explainer has made me bookmark the site now for future skimming.
This, so much. I remember when Louis told everyone about it, people (mostly Reddit) were so nitpicky over every minor detail.
I’d be curious seeing the discussion. Its healthy to have respectful competing opinions and see what rises to the top
It was a while ago, I don’t remember much of it unfortunately. Only the idiots.
I didn’t know I needed this. Thanks!
deleted by creator
Write things down
You will break something - and that’s good, it’s the best way to learn - but you’ll want to make a note of what you did / went wrong / how you fixed it.
Future you will still break things and be grateful that you wrote that thing down
You’ll buy something and find next year it was the wrong thing (too small, too large, too old, too new), so just get second hand stuff until you know what you need.
Cabled networks are so much better than wireless, but then you’ll need switches and cables and shelves and stuff… so using today’s wifi is fine, but know where you’re heading.
You need to store you stuff - that’ll be in a NAS
You need something to run services on - that’ll be your server
These might be the same physical metal lump (your 2nd laptop?), they might be separate… play around, break something and work out what feels right for you… and then put your data on there
… and that’ll break too.
Just be aware… if sync files between devices. That’s not a backup. (Consider you’ve deleted / corrupted something - it’s now replicated everywhere)
Having a NAS with 10 drives in a RAID6 array, is not a backup. It’s just really robust against a drive failure, but a deleted file is still a deleted file.
Take a full copy of your data off your system - then restore it somewhere else.
Did it work? If so, that’s a backup.
@MTZ saving this for later! I aim to go the same path soon :)
Good luck on your journey!
At first, you have to decide what do you need. You can selfhost almost everything, but in my opinion there is no need to do so.
Second thing is hardware to host it. I saw a few comments recommending NAS. It is of course good thing, but my suggestion is just building your own NAS. You need only decent computer to do it.
The easiest way is just installing TrueNAS on it - with that you can setup file sharing and your apps via docker.
But what apps would you need/want? I can recommend a few from my stack:
- vaultwarden - for storing passwords, 2FA codes
- immich - for storing photos, videos, autoupload from phone
- adguard - for getting rid of ads, tracking They are really easy to deploy.
As an alternative to file shares via SMB, nextcloud is really good option. It’s google drive on steroids. Also includes photo gallery with great app on android/ios with autoupload option.
Nice! Yes, photo storage and backup as well as note sync, reminder sync, calendar, etc. are all very important micro services to me.
I think Nextcloud is a really good option for you. It includes everything you mentioned.
A single misconfigured thing can suck real bad as you’ve seen.
Selfhosting involves lots of things that can be misconfigured or go bad.That’s not to scare you out of it out anything, merely to congratulate you in seeking knowledge first.
Disclaimer: I’m biased towards networks because I’m a network engineer, opinions may differ.
I would say… having at least a vague grasp of layers 1-4 of the traditional network model is a decent start.
You don’t need to understand everything, but knowing a minimum will help a lot imho.It’s hard to point you in the right direction without knowing what you already know or not.
Plus, if you end up accidentally locking yourself out of your own system: boot access means root access (Secure your IPMI/iDRAC, folks!)
Yeah. I guess that is true. The part about not being able to point me in the right direction. I have a shaky grasp of several network protocols and things of that nature. Nothing deeper than surface level at this point.
Use DietPi, it’s a great OS
Honestly? Don’t do the whole switch, or even a big switch from a few services to another.
Start small. Very small. Try doing just one service you rely on, like your images or music. Immich just announced their first stable release. I use navidrome for my music. Make sure to test these on a copy of your data, not your actual data.
Once you’ve got one service working as you want it to do, then you can try your hand at another service. This way, you don’t get stuck trying to do everything all at once.
It may be worth considering how much (if any) you want to spend at the start, too. That’ll inform your next immediate task; setting up basic backups for your data. A spare drive is a good start, but it may be worth keeping another one at your parents house, or similar.
That is exactly my plan, to have this set as a long term goal with several incremental micro-goals, as opposed to attempting to do it all in a weekend. I figure making it a long term thing gives me much more of a chance to actually learn what it is that I am doing. Plus, at my level (no real networking knowledge to speak of) trying to do this in a weekend sounds like a nightmare, lol.
An “I Wish I Had …” addition to this: maybe start something like Wiki.js or Joplin that you will then use to document what you do as you go. Keep a record of your process so that you can work your way back if you need.
Great suggestion! I will definitely implement something like that.