Andy Gock

Just some bloke in Australia makin' stuff.

Latest Articles

NGINX conditional logging and responses

01 November, 2020 - 2 min read

Here are some examples on how to configure NGINX to conditionally log requests based on certain conditions like remote IP address, URI etc by using the map module and variables. Conditional logging Create a variable using ngx_http_map_module. This is placed in the HTTP block. Regexes can also be… Read more

LUKS Encryption Cheat Sheet

27 October, 2020 - 2 min read

Install and create partition Install on a Debian based system Install on a Red Hat based system Creating a new LUKS partition Key management Generate 4096-bit random key file Add a key file to next free key slot. This will prompt for a passphrase. You can have up to 8 slots. Add a key file to… Read more

Raspberry Pi Kiosk HOW-TO

13 September, 2020 - 5 min read

Tested with Raspberry Pi 3 and 4, but should work on some older models too. For Ethernet connected kiosk machines. Download and install Raspberry Pi OS Download img file and image to micro SD card. Raspberry Pi OS (32-bit) with desktop, Image with desktop based on Debian Buster. Warning: This is not… Read more

GPG Cheat Sheet

25 July, 2020 - 5 min read

For GPG versions 2.x only. List keys List public keys List all secret keys List public or secret keys, but show subkey fingerprints as well The key ring location is normally shown on the first line on stdout. Use different key ring List keys but use a different home directory for one command only… Read more

Using Let's Encrypt with internal web servers (without DNS challenge)

05 July, 2020 - 6 min read

TL;DR Use internet facing domain on an internal network, I normally use subdomains for this. Domain must have a DNS A record pointing to a public facing web server so Let's Encrypt can find it for the HTTP-01 challenge. This can be served as an empty site or just as a 404 response. Remote VPS uses… Read more

Protecting web sites with NGINX subrequest authentication

30 June, 2020 - 4 min read

TL;DR Protecting a web site with NGINX by using authentication server via a subrequest. Use in NGINX conf. When user requests protected area, NGINX makes an internal request to . If 201 is returned, protected contents are served. Anything else, NGINX responds with 401. is reverse proxied to… Read more

Netlify vs Vultr VPS hosting speed from Australia

28 April, 2020 - 2 min read

I've been comparing some load speeds from a variety of different web hosting companies. I started out by trying out the free tier of Netlify to compare how the performance is compared with my usual Vultr VPS service. After seeing that the Netlify load times was almost 10x longer than from the VPS… Read more

Convert multiple images to searchable PDF (OCR) with free command line tools

26 April, 2020 - 2 min read

In this example, we'll show how to convert multiple PNG images to a multi page searchable PDF file. We'll use the following command line tools: ImageMagick for converting PNGs into multi page TIFF and PDF files. Tesseract OCR, an open source OCR engine. PDFtk Free for overlay joining of PDF files… Read more

Start a simple React JS app with Parcel bundler

11 August, 2019 - 3 min read

Here's how to get started with a simple hello world React Javascript app using Parcel. We're going to be using a global install of Parcel here. Install Parcel Install parcel globally The advantage if you install it globally is that is only 4MB and 100 or so files. on the other hand will download… Read more

Loading icon fonts locally when using Ant Design React framework (instead of AliCDN)

05 August, 2018 - 1 min read

Don’t use Alibaba’s CDN! By default, when using the Ant Design ReactJS UI framework, icon fonts are loaded from China’s Alibaba Cloud CDN. This may be undesirable behaviour. You might prefer to have a web site that does not call home when you load a page, or leak IP addresses to a third party. You… Read more

View all articles

© Andy Gock 2009−2021