Harness the power of Raspberry PI and Linux
What are the basics of having a simple website up and running? Can a micro computer do this? Add another 10-20 questions and a small hobby project can start.
To have a website up and running one would need: 1. A Working web-server 2. A valid html file in the root directory of the web server. 3. A nice extra would be a public IP.
That is the bare minimum to see a hyper text markup language file outside the text editor served as a website.
Covering a minimum should be sweet but it’s not enough. Websites feel so much fancier when coupled with domain names – grabbing a domain name these days is a trivial task (unlike 20 years ago).
Setting A (for address) records , maybe MX (for email) , maybe an additional TXT record (verify domain ownership with search engines) is a nice start.
Once the domain name is correctly pointed to the public IP of the web server hosting the site everything is good. If the hosting hardware (pc , micro pc, potatoe, tomato etc.) is behind a firewall/router ports 80 and 443 should be forwarded properly.
Raspberry Pi 3 (a.k.a. rpi3) setup:
Tiny micro computer (advertised as credit card sized board) , 4 core arm cpu, 1gb ram , poor usb 2.0 implementation, 100mbit ethernet, to avoid coarse language I will not go into details about its wifi or bluetooth.
Rpi3 is best known to work with Raspbian – debian linux based distribution designed for that board by the Foundation – cool. Haven’t used that for ages. Instead, I bootstrap a debian server armhf distro from https://github.com/drtyhlpr/rpi23-gen-image
It works fine, especially when used with the rpi-update tool to get latest rpi3 kernel.
Add nginx php mariadb (yes, it is 2019, in Debian world mysql = mariaDB , apt-get = apt) and a wordpress installation (basically placing files and permission in the right folder).
Deglazing the setup:
NGINX: a web server software which I (and maybe others) prefer to apache and lighttpd (lighty).
Optimize its config for speed, cpu & ram usage with respect to the hardware it’s running on (rpi3), make it use ssl, redirect non ssl requests to ssl, handle www and non-www requests properly, let is properly use the php-fpm software etc.
PHP7 is the preporcessor we need to… maybe preprocess php code in websites. Its php.ini config file should be modified according to the needs of the task – higher limits, enabled compression etc.
MARIADB is the database server that will store boring things in boring format to make the world a funnier place to live, basically run the securing module first, create db & user for wordpress , let it be.
WORDPRESS: enter database details from previous step, run initial config and you have your brand new wp install up & running. Now hold on for a sec, Do all the security hardening tweaks you know from linux level, via nginx, via php to mariadb and install a security module in wp too – won’t hurt. WP is exploitable (as many other things) so you know you’ve done your best to avoid accidents. Install a theme , import demo content, edit things and you will have a website, hobbyst level, far from professional but still a website.
This website is pretty much a result of all the above mentioned + some secret ingredients.