The wish for my own private server I could do all kinds of things with has been there ever since my second year as apprentice. I first played with the thought of building my own, but considering my not even 10 MBit/s internet connection I overthrew that idea rather quickly.
Some time later I played a rather demanding online game called Planetary Annhililation with my friends and we were so annoyed by all the lags that I looked into hosting the game server online. I first tried it with Amazon AWS and ran with it rather successuflly, but the handeling, cost management and configuration was rather convoluted for only wanting to run a single instance.
So after some looking and asking around a collegue of mine suggested that I look into netcup.de. They offer VPS as well as root servers for great conditions and so I began to look into hosting my own server there and it was decided.
Now for the interesting part
Step 001: Installing an OS
After creating an account and choosing the VPS 2000 G8 plan (of course the beefiest of them all) I started by just tossing a Debian 9 image into the virtual drive of the server and going from there. The netcup website with control of everything hardware and an virtual console makes all that a breeze.
I went with a very very basic setup, only with the storage I went with LVM on a LUKS encrypted disk, because I don’t want to have my data floating around unencrypted on some stranger’s disks.
Step 010: Static IP addresses
Netcup provides both a single IPv4 and a /64 IPv6 address for the server and at first they are configured by DHCP, but they suggest to statically configure the provided addresses. So I’ve done exactly that and you all know how to do that!
Step 011: Set up SSH access
Always having to log into the netcup control panel to do anything on the server would be annoying so of course the first thing I set up on my server was a SSH access with encrypted public key authentication and most of the other various best practices. For addition security I added the Google authenticator PAM module so I also always have to have my phone with me to log into the command line. All of these are documented widely all over the internet, so I wont’ do the work right here, because I didn’t do anything special.
Step 100: Setting up my environment
As this was my first real GNU/Linux Server I actually intended to keep longer than a few weeks at most so I put in some work to set up my own environment. I worked on the configs for Bash, Screen (and after some consideration TMUX), git and most importantly VIM.
To figure out how I want things to look and feel was the hardest part and took me by far the longest, but I’m happy with how it works right now. You can see my default environment in this git repo: https://git.jo-e.de/josef/linux_environment