In the beginning..
We are all beginners at some point. Whether it is riding a bike or building a space shuttle. So when I decided to build an Internet server I found myself in an ocean of recommendations from different websites on the Internet. Sometimes the advice was too old, sometimes it was not well enough described and often the advice was too simplified. I have tried to research man pages and other resources to dig out the most overall complex and flexible configuration and describe it in this book. I have also tried to motivate the decision so that anyone can decide if it fits their situation. Often there are many ways to set up the server, and I have picked one that suits my server needs. One also has to note that reading is required. At the end there are no shortcuts. Reading application documentation is an art that is hard to learn, but can be very rewarding. You are learning the application yourself, and are not depending on any person to help you get your server running.
But enough about the ideas and reason behind this book. Let's dig in and get started, because that is how one learns what decisions are good or bad. Time to start making mistakes to learn from.
This guide assumes that you know your way around a UNIX/Linux like operating system. It also helps to be familiar with Debian. You also need patience and a large coffeepot. Reading abilities is a must even if the writing abilities of the author might be inadequate. To use the guide you must have a computer with Debian installed. In my case I started with a machine from scratch, installed Debian with only one system user and slowly built from that. Once the ssh deamon is installed this guide should also work remotely.
So if you do not have UNIX/Linux or Debian experience you can still give it a try. You will have to fill in a lot of blanks on your own, but Internet is full of guides to explain different aspects. If you do not have Debian you can try to adapt the steps for your distribution, or follow the Debian installation guide for your platform in your language.