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()
inpost-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