John Siu Blog

Tech - Business Tool, Personal Toys

Alpine KVM


Setup libvirt/KVM on a remote Alpine Linux server and connect virsh/virt-manager from remote.

Alpine Linux


Random notes from a long time Ubuntu / Red Hat user whose Alpine installation count is going up.

Kubernetes RBAC


Kubernetes user setup (certification-based authentication) and RBAC setup of the same user.

Some Kubernetes commands.

This serve as a starting point for installing Kubernetes on multiple Ubuntu Servers.

This serve as a starting point for installing Chef server on local machines.

H2Ghost is a http2/https front end for Ghost Blog

I moved my blog to Ghost a few months ago. Like many other self hosting Ghost users, I keep asking why Ghost does not fully support https out of the box.

In an earlier post I talk about running Ghost Blog with https using nodejs only.

Though I move my blog to Ghost in last month, I am not satisfy with the default Casper theme come with Ghost.

TED Talk 2017 is hosted in Vancouver, Canada. But you can see it live in cinema this year on 4/24, 4/25 and 4/30.

Found this photo in my photo stream. It was taken more than a year ago behind my computer desk. Networking guys, look familiar?

Want to do this for awhile, and finally get it done.

As of today, the official way for self-hosted Ghost Blog to use HTTPS is to use Nginx as a front end proxy server. The official guide is here.

In my earlier post Lighttpd url.redirect and changing WordPress permalink structure, I talk about the issue when permalink structure is changed.

Last October I moved my git server from GitLab CE to GoGs. I also planned to move my blog from WordPress to Ghost Blog at the same time, but was delayed by the heavy load at work, until now.

GitLab CE and Gogs in VPS.

I used to use the Date and Name permalink structure for my blog:

The latest WordPress Jetpack (4.3.1) is using <your-site>/wp-json/whatever/ for its api callback to the web server. It is an issue for web server not supporting .htaccess, and Lighttpd is one of them.

This one is actually simple, online examples are correct and only need to touch one configuration file.

Step by Step.

This is Part 3 of PHP-AMQP RPC implementation.

This is Part 2 of PHP-AMQP RPC implementation.