Having a home server has many benefits:
And you might find this useful, when you have:
And I did. And I had an unused Raspberry Pi I could use as a home server. But I kept procrastinating on setting it up.
Because I knew that not only did I have to do a lot of initial configuration, I'd have to repeat the entire process if my server's storage failed. And Paspberry Pis use SD cards, which have a reputation for higher failure rates.
Of course, there are software solutions to this. They're all some form of configuration and deployment, and I'd loosely categorize them into three areas:
Each has their merits, and these are just a subset of the tools that exist.
For my home setup, I opted for Ansible. I did this because I:
This solved my problems, and even though though it took a bit of extra time to set things up with Ansible, it was maybe 2-3x the time it'd take me to run the plain bash commands. And setting up my second Raspberry Pi was much faster as a result.
My config sets up the following:
And I've made it open source. Here it is on Github, feel free to fork it for your personal setup.