Introduction
Introduction to this Self Hosting iniative.
Foreword
I started this project because I noticed that many people are currently trying to get away from Big Tech corporations like Google, Meta, X, etc. Many of these people lack the expertise to host their own systems.
After musing my idea about a self hosting project on the Fediverse ("Mastodon") I got an overwhelming amount of positive reactions.
So here we are, with the SelfHosting4All project.
I have my roots in the data security business. If you Google SearX on my name you might find some more info about this.
I have self hosted some large volume systems myself for two decades, so I have some experience.
At this moment, we are still in the brainstorming stage. Not much is set in stone.
A VPS can run a variety of things, of which not all of them are of interest to everyone. Therefor I want to present the installation of independent services in individual "books". Setting up an email server would be such a book, that can be skipped if you don't want to run your own email server.
This selfhosted "wiki" environment looks great to present my books, it has the additional benefit that we can allow guest writers later on, and/or allow knowledgeable people to update and/or enhance the existing "books".
Goals
My goal is to help as many people as possible to get away from Big Tech and assist them in self hosting their own stuff, and showing them that it is not so hard as they think.
A proven recipi
If you follow one of the many "howto's" on the internet, it often requires some fiddling, because in the nowto they use a different provider, a different operating system (version), differeent software versions, and so on. Often these "howto's" are made on an already existing system with a lot of software already installed and running that the author forgets to tell about.
My idea is that with a bunch of people we all hire a VPS at the same provider, use the same software, the same versions, etc. For this goal I will hire myself a new VPS, setup a new domain name, and record every single step and command. If one follows this exactly, you will end up with the same system and the same reliable functionality.
Educational
You could just copy all the steps I take during the installation, but I will also explain every step so that you might understand why and what it does, so along the line you will learn a few things. Hopefully it will give you enough background to later self host a few more things than I cover.
Low maintenance
Some people who once ventured into self hosting compain that it was so much work to keep everything working. I don't have that experience, but that is maybe because I follow a different approach than most of them.
You see, if you look into my biography, that I live on a sailing boat. I earn my money via the internet, but I can't afford any down time when I'm somewhere on a multi-day ocean passage or at some uninhabited island without internet connection. This made me very conservative in the software I use and how I set it up. I don't want any suprises at unwelcoming moments. Typically, I run my services without any intervention for years on an end.
So I always aim to set everything up with low maintenance requirements in mind. It also means that I'm not updating stuff everytime there is a new update. If things work to satisfaction, why try to fix something that ain't broken? I typically run my servers for years without any updates (with the exception of security updates, which only very rarely break stuff). Software doesn't stop working by itself. Once you have setup a stable system, if you don't mess with it, it will function for a long time to come.
If, in a couple of years, you feel you are getting behind and/or really want to make use of some new features, it is always better to hire a new VPS besides the old one, install everything from scratch (while peeking into your old setup to keep as many settings that proved to work), and only once you are satisfied with the new VPS, you cancel the hire of the old one.
Low Cost
The system is going to run on a VPS of 5 Euro's per month, which you can cancel any time. You also need a domain registration, but these run typically for a year. We are only going to use free software.
Software
I will focus on software I used myself, which has proven to be stable and providing functionality that makes it worth installing and using it. I'm open for suggestions though.
Books
Books 1 and 2 will be mandatory, the rest is optional. Just a rough scetch of the books I have in mind:
Book 1: Infrastructure
In this book we will setup the infrastructure. We need to hire a VPS, register a domain name, and to get it all working together and accessible from your home system.
- SSH keypair, so we can access our VPS in a safe way without the need of a password.
- Domain registration.
- DNS setup at a free host.
- SSH drive, so we can edit setup files from our home system.
- Honeypot. It is fun to catch some offenders and make our new system less attractive to bots right from the beginning.
- Homepage. A simple one page homepage to lew the world know who is the owner.
Book 2: Essential software
- MySQL. This is going to be our main database that will be used by various services.
- Docker. We are going to run some Dockerized services for ease of installation.
- Vaultwarden. Time for a reward. This is going to be your first self hosted piece of software. By now you have to remember a lot of passwords for all the stuff we just have installed. But not anymore with this very secure password management system.
- S3. Let's add some external storage so we will have enough for our cloud and backups.
- Backup. We will setup an automatic backup system and use the external storage as a target.
Book 3: Cloud
- NextCloud. This is a great system that enables you to use your VPS as a backup system, a "dropbox" system, a file sharing system, a photo management system, a calendar and contacts synchronizer (byebye Google), etc. It also comes with an app to synchronize your photos and videos from your mobile phone or laptop. This is going to be a great tool to achieve independence from Big Tech.
Book 4: VPN
In this book we are going to setup our own multi-user VPN.
Book 5: Joplin
In this book we are going to setup our own notes system (evernote replacement)
Book 6: E-mail
This might be the holy grail for some of you. Your own email server on your own domain name.
- Postfix. This is the mail interface to the outside world
- Dovecot. This will organize your mail into mailboxes and allow you to read your mail with external clients.
- Mailadmin. Adding new mailboxes will be a piece of cake with this Web-GUI.
- Roundcube. To read your email on the web.
And of course we will setup all the stuff that is required today to get your mail working reliable, such as DMARC, DKIM, etc. and we will also take some very effective measures against spam.
Other books
Many other books will follow. Pixelfed? Friendica? Lemmy? Pleroma? Mastodon? Let me know which of those would be your favorites.
Community
I can use some help
In the long run I can't do this alone. This is why I have chosen for this BookStack Wiki. Some knowledgeable people can contribute this way and publish their own "books" and/or provide updates on existing ones.
Graphics, anyone?
Also, I'm bad with graphics. It is nice if someone can design a few icons for the books we're putting together.
Matrix
To communicate with each other, I would like to give everyone a matrix account on my (self hosted) Matrix instance. You don't have to install any software yourself, you can just participate via my Element web interface although it might give a more satisfying user experience if you also install the mobile phone apps and/or desktop clients.
Why Matrix? Because I think it is most suitable for a project like this. It is like Whatsapp/Signal but it also allows "threads" so we can get things a little more organized. And last but not least, it is more secure because it is decentralized.
Donation
Everyone can read the books without any obligation to me. But I kindly request a donation for the following purposes:
- For this project I'm going to hire a new VPS and a new domain name that I don't need for anything else than to have a platform to recreate everything from scratch, so you can copy each single command. So it is going to cost me some bucks.
- I'm happy to invest some time in this, but only if I know that people are actually using and enjoying my efforts. My idea got quite some "boosts" but I have yet to see how many people are going to really participate. By donating to me you show me that you are really intending to participate in this project and my efforts aren't going to end up into a black hole.
Except for encouraging me to run this project, I can give some technical support in return. People who have contributed will get access to my Matrix Support Group. And if you don't already have a Matrix account, you can get one for free on my Matrix instance.
You can find my banking info (and Paypal donation link) on my Contact page.