My first server dated back at the time I started programming in PHP.
For which the purpose was to run all my PHP projects.
I always went deeper into the technology, so I started playing with linux and I began to do more than just writing PHP websites or scripts.
I don't know exactly when I started with my own server, but it could be around 2005 that my first server in a shoe-box saw some daylight. Well ironically it was just laying on a shelf in my basement!
I used pieces from old computers I had, which was basically a Pention II. It was my first linux experiance, and guess what, I even didn't knew anything about linux. It was only a year or 2 later that I started to use linux on my desktop that I knew what it realy was all about. Someone proposed to use Debian, so that was actually the really first distribution I used.
In the beginning of february 2012, right after my exams, I had 1 week of free time, so I descided to buy new hardware to make my new server from scratch. I chose Gentoo for the system as it was the system I was already using for a few years at that moment. On 1 week time I've put together a custom server with a linux-vserver kernel. I chosed linux-vserver as it was the technology which I did found to be the best virtualization I could chose at that moment. It ran a few KVM's guests and multiple linux-vservers to containerize my workload.
Over time I replaced my root drive with a software RAID1, adding a backup partition on that same drive as it was just used to run the base system. I added 6 other drives which are configured in a ZFS filesystem as raid-z2 where everything (except root) is running on. My backups as stated before are on my root disk, which are also configured as a pool to benefit from the native compression ZFS is providing.
Due to the fact that linux-vserver wasn't maintained anymore, I needed to search for something new, something which was fitting my needs and flexebility. Docker didn't felt good enough to use and to play with the system or the application, so I found lxc which I used. Since I like to install and configure the system myself to be as flexible as possible, it was a good replacement, but still not good enough... I tried to create my own layer on top of docker (a tool called dtool), even that wasn't the thing I feld good with after some months, especially the way to maintain it, to do security patches etc... Although it ran for multiple containers for 2 years bescides my lxc containers. In the end of 2017, I started with ansible in a test KVM environment to write out multiple containers to be provisioned automatically. Even the host is deployed with ansible which was done as live as possible with almost no downtime. (sometime you need to reboot, or do things where you need to reboot the server for, eg: going from MBR to GPT on the raid1, adding UEFI,...) And this was all done with the original setup that I did in 2012. The current state of this writing (05/2019) was cleaning up the dockers which where replaced by the LXD containers. Even now I still have some old containers still running in LXC, eg, my old last.fm project. Bescides that, I have a dev environment in KVM, the same virtualization technology I use for running my zimbra server for more than 5 years now :-). Although at the end of December 2019, I moved zimbra to the LXD container as my ansible role was already ready for a few months.
I could tell you a lot about the full setup, but it will probably bore you... ;-)
.. Well, if it didn't you will probably want to know more. In that case you can always check my Gitea where I will put all my projects from now. (some are still hidden though, and I hope to make them public as fast as I can ;-))