Home Server Setup - Basics
last edited: Wed, 09 Jan 2019 17:43:40 +0100
The beauty of decentralized social media is that everybody can, in theory, set up an instance in their own home. There are a few basic requirements, though.
Your Own Domain
The first and foremost of those is your own domain or sub-domain. You'll have to pay for one of those; how much depends on where you live or plan to register it. If you only need the domain, though, and no complete package with web space and all kinds of fancy services, it's usually not that expensive. My provider in Germany, for example, offers them for around a Euro a month. (Not naming any names since I don't want to make this article an ad 😉)
The other thing you need is a way to make your home server reachable under your domain. Since IP addresses of home lines, as a rule, change all the time, this is done through a service called "dynamic DNS" or DynDNS. That means your computer or, more commonly these days, your router constantly reports your ever-changing public IP address to the Domain Name System so that your domain always points to your home line.
So there are two things you need to make sure of before you go out there and buy some hardware:
1.) You need to be sure that the provider where you register your domain supports using domains with DynDNS
2.) You need a router that allows you to configure DynDNS. You may have to get in touch with your ISP as well.
In the rare event that your computer is plugged in directly into the DSL modem with no router (not very common anymore, at least as far as I know) you need a piece of software called a "DynDNS client".
There are free DynDNS services, or at least there used to be, which offer free sub-domains in combination with dynamic DNS, but I'd approach those with caution. For one thing, you usually get a pretty lame domain, for another, you will always have to worry about reliability: if the service shuts down, you're out of luck, whereas a domain registered in your name can always be moved to another provider. Also, remember, those companies have to make money, too, and these days, if you're not the customer, you're the product. I'm not saying they're all horrible or anything, just giving you something to keep in mind. If you can, pay for your own domain. It is, after all, how you present yourself (and possibly friends and family, if you choose to share your instance) to the world, since your handle is gonna be email@example.com, much like an e-mail address.
Since there are too many options and too many possible combinations, I can't go into any detail on this topic. I'm afraid you'll have to do your own research. Sorry about that. The above information should get you started, though.
Also, make sure your router supports port forwarding. It's how you make sure that all connection requests from the outside to your web server go to the computer that's running it instead of being blocked at the point of entry.
The most inexpensive way to get started is no doubt with a single-board computer. A Raspberry Pi, for example, which is how I started and on which I'm basing my home server tutorials, since it's the only one I have any experience with. You can either buy a starter kit or individual parts. Which ever way you go, I strongly recommend you get a case with a built-in fan in addition to the heat sinks. I didn't, originally, and it caused me a lot of problems - it would overheat all the time, especially in the summer, and then it would crash. It took me quite a bit of time and a series of headaches to figure that out.
The operating system on a Raspberry Pi runs off a micro SD card by default, although on some models USB booting is possible. Both options have limited storage compared to traditional hard disks, even if you were willing to spend next month's rent on one of the larger cards / thumb drives. I'd recommend using a traditional external hard disk for the data, or, if you want to spend the money, an SSD. You're gonna want to share pictures and possibly other files, and databases also can get quite large. The OS itself doesn't take up much room, a 16 GB memory card or USB drive should do. If you buy a kit, you might find a memory card containing NOOBS, which is basically an installer for different Linux distributions, including Raspbian , which is the default system for the Raspberry Pi and based on Debian Linux. My personal preference is Ubuntu Server; however, it's not officially supported, so I'm basing my tutorials on Raspbian.
I also learned the hard way that neither SD cards nor USB sticks are entirely reliable for running an always-on operating system, so I strongly recommend regular backups and keeping a couple of spare ones around.
You should plug it into the router with a cable, if possible, since wifi eats up too much bandwidth. Which brings me to the...
Last not least, don't try this unless you're on a halfway decent internet connection. I waited until DSL 50 became available in my area. I'm now on a line with 50 Mbits download and 10 Mbits upload - which is, of course, not the fastest available, but it beats the 16 / 1 I had before and with which I didn't even try. What is needed depends on how many people you're letting join your instance and how many people you (or they) connect with. You can mitigate the server load a little by reducing image size before you upload, but try to explain that to your parents or your teenage kids 😉.
Book List - Read
An overview of my favorite books, in no particular order.
J.R.R. Tolkien - The Lord of the Rings
Stephen King - The Dark Tower series
Marion Zimmer Bradley - Avalon series
Marion Zimmer Bradley - The Firebrand
Trudi Canavan - The Black Magician Trilogy
J. K. Rowling - Harry Potter series
J. R. R. Tolkien - The Silmarilion
J. R. R. Tolkien - The Hobbit
James Rollins - Sigma series
Robert Jordan - The Wheel of Time series
Stephen King - It
Stephen King - The Stand
Stephen King & Peter Straub - The Talisman
John Connolly - The Book of Lost Things
Terry Pratchett - Discworld series
Tad Williams - Memory, Sorrow and Thorn
Tad Williams - Otherland
John Twelve Hawks - Fourth Realm Trilogy
J. G. Hertzler - The Left Hand of Destiny (Star Trek DS9)
James Rollins & Rebecca Cantrell - Order of the Sanguines series
Jim Butcher - The Dresden Files
Seanan McGuire - October Daye series
Ursula K. Le Guin - Earthsea
Philip Pullman - His Dark Materials Trilogy
Michael Scott - The Secrets of the Immortal Nicolas Flamel series
Some in German / Hier noch ein paar auf deutsch:
Michael Ende - Die Unendliche Geschichte
Michael Ende - Momo
Ralf Isau - Neschan-Triologie
Ralf Isau - Das Museum der gestohlenen Erinnerungen
W. & H. Hohlbein - Spiegelzeit
W. & H. Hohlbein - Das Buch
W. & H. Hohlbein - Dreizehn
(I read very little German these days 😉.)