Serverinrichting

Deze website wordt in z’n geheel vanaf een Raspberry Pi 3 geserveerd. Deze Pi is voorzien van een 32GB micro-sd kaartje met hierop een Raspbian/Debian distro, mySQL, PHP, Apache webserver en WordPress.

Technische constructie

De Pi is met een ethernetkabel verbonden met het internet. De server bestaat uit de volgende onderdelen:

  • Raspberry Pi 3 Model B+
  • Raspberry Pi 3 behuizing
  • Raspberry Pi netvoeding
  • Samsung 32 GB micro-SD geheugenkaartje

WordPress

Er wordt gebruik gemaakt van een standaard Nederlandstalige WordPress installatie, met hierop de volgende uitbreidingen en wijzigingen:

  • Template Chronos
  • Custom field year toegevoegd, die voor ieder bericht met een vier-cijferig jaartal wordt gevuld
  • Aanpassing aan de get_the_title() in post-template.php, zodat het jaar aan de titel van iedere post wordt toegevoegd
  • Plugin Featured Image Pro

Aanpassing aan de get_the_title()

De aanpassing in get_the_title() zorgt ervoor dat op iedere plaats waar de titel van een bericht wordt getoond, het jaartal uit de custom field year aan de titel wordt vastgeplakt:

	/**
	 * Added by Rudi Niemeijer for the Retro-Lab.nl website
	 * Shows the value of custom field 'year' after the title, if not empty
	*/
	$post_year = get_post_meta($id, 'year', true);
	if ($post_year) {
		$title = $title . ' (' . $post_year . ')';
	} 

De aanpassing wordt in de functie get_the_title(), te vinden in ./wp-includes/post-template.php, gelijk na de initialisatie van $post, $title en $id ingevoegd.

Backupscript

Het backupscript maakt gebruik van het dropbox_uploader.sh shellscript van Andrea Fabriz. Download dit script eerst. Het onderstaande shellscript gebruik ik om dagelijks de database en WordPress bestanden te comprimeren en vervolgens op Dropbox veilig te stellen:

#!/usr/bin/env bash
BACKUP_SRC="/home /var/www /etc /root /tmp/databases.sql"
BACKUP_EXCLUDE="~/Downloads"
BACKUP_DST="/var/backups/$(date +"%Y")"
DROPBOX_DST="/Backup/$(date +"%Y")"
MYSQL_SERVER="127.0.0.1"
MYSQL_USER="mijn mySQL gebruiker"
MYSQL_PASS="mijn mySQL wachtwoord"

NOW=$(date +"%Y.%m.%d")
DESTFILE="$BACKUP_DST/$NOW.tgz"

echo -e "Backing up MySQL databases"
mysqldump -u $MYSQL_USER -h $MYSQL_SERVER -p$MYSQL_PASS --all-databases > "/tmp/databases.sql"

echo -e "Archiving folders"
sudo mkdir -p $BACKUP_DST
sudo tar -zcf "$DESTFILE" --exclude="$BACKUP_EXCLUDE" $BACKUP_SRC

echo -e "Uploading archive to DropBox"
~/dropbox_uploader.sh upload "$DESTFILE" "$DROPBOX_DST/$NOW.tgz"

echo -e "Cleaning up"
sudo rm -f /tmp/databases.sql
sudo rm -f $DESTFILE