As you may have gathered, this site is running on a Raspberry Pi. I have been using the Pi to run my Web site and email servers for a number of years now. Initially on a Pi 2, then upgraded to a 3 and now the model 4. The O/S is a standard Rasperian Buster distro, with Apache2, MySql, PHP providing the Web Service and Citadel the Email service. And you know what, it is almost brilliant. I will come on to the ‘Almost’ part in a moment, but first lets concentrate on the Brilliant.
The Rapsberry Pi 4 is a doddle to set-up. There is massive support for this little device out there, with active forums, and lots of good open-source applications to get your teeth into. The solution to most problems is usually just a DuckDuckGo query away, and when that doesn’t work a quick sojourn to StackOverflow will usually result in a response within a few minutes.
I have my Raspberry Pi running headless (VNC to log-on and WinSCP for file transfer) with storage provided by a 256GByte SD card. Result is an acceptable (at least for me) Web and Email server running 24/7 and consuming almost no power. I can back up in a matter of minutes, and whilst I do try to minimise the risk of the site being hacked, should the worst happen, all I have to is re-write the SD card from back-up.
The Almost bit. Well I had been a little bit too ambious. I originally constructed the Web Site myself. I implemented a simple, but reasonably effective CMS (Content Management System) which provided for injecting HTML for headers, footers, sidebars, background etc. i.e segregating layout from content. However I then decided that I would like to start a Blog, and rather than try to re-invent all the functionality that goes with good blogging software, I would use WordPress. My first implementation worked, ( I created directory called ‘Blog’ under my Web-Site and installed WordPress in ‘Blog’) , but it looked, as you would expect, like two disparate systems.
I then fully integrate my Web Site with the WordPress site. In addition, being a good citizen, I switched to HTTPS (not that there is anything that needs encrypting on this site) . The result: A fully integrated WordPress web-site that looks and feels like a single site. It is much easier to manage than it would have been had I perservered with my own system, and it does look and feel like coherent web site. But, being served up on the Pi 3, it was painfully slow. I was pushing the poor old Raspberry Pi 3 to its CPU limits.
I am keeping faith with my little Raspberry Pi.
Reliability as a Server
I have been using the Raspberry Pi for my server now since around 2015. (Basically since the release of the Pi 2). Initially there were reliability issues, in that the system (Raspian, Apache, MySql) would need restarting on a fairly regular basis (at least once every three weeks). These days however it is far more reliable. In the last eighteen months I have only experienced two none scheduled down times. Admittedly, I have been doing more work with the sever, which means I have been executing restarts and reconfigurations, but even so it does seem a pretty stable set-up. (At least for less than Â£100 it does.)
Immediately that the server went live, it was attacked. It is behind a fiewwall, but, of course, as a Web and Email Server it has a number of open ports. I have taken all the usual precautions re: usernames and passwords, removed remote Login access for root and pi, and I have also configured Fail2Ban to monitor and annoy anyone trying to get into the system. A big thank you to the Fail2Ban guys, and I would highly recommend anyone who is exposing their Pi to the internet to install this piece of software.
The server is also running on its own internal network (basically a DMZ), so should some one succeed in breaking through, they would not be able to (immediately) access any of my other PCs.