Quick References

As a constant learner, I get to touch upon many ideas in different areas. This category is for me to capture those ideas which I felt people may reference to get ahead of their tasks. Most of the time, I do come back to this section of my blog to remember what I had learnt in the past.

How to setup Raspbian Stretch Lite on Raspberry Pi Zero W to run Python 3 applications

With Wi-Fi included, the Raspberry Pi Zero W is very useful for implementing embedded projects that require Internet connection.

Apart from using the Raspberry Pi Zero W for CCTV surveillance, we can run customized Python 3 applications on a Raspberry Pi Zero W for various use cases.

Pairing the official operating system for Raspberry Pi with Python 3, we will be able to get a versatile computer to do our bidding.

Anticipating the need to setup a version of Raspbian Lite on Raspberry Pi Zero W for future Python 3 projects, I created this post to document the steps of how to do so with Raspbian Stretch Lite.

How to host multiple websites from home

A website is a collection of related web pages, including multimedia content, that people can access anytime from anywhere of the Internet.

A website facilities the exchange of information between multiple parties. For instance, when you read the content of this page, I would have, hopefully, share the information of how to host multiple websites from home.

With the proliferation of single-board computers, it is now inexpensive to deploy computing devices to serve web applications from home. If you do not switch off your Internet modem at home, you may want the option of accessing some of these devices when you are away from home.

For example, here are some web applications / websites that you may host from home:

This post documents some procedures that we can follow in order to host multiple websites from home.

How to host a SSH server behind Linksys EA7500 Max-Stream AC1900 router

After I had set up WordPress on Raspberry Pi 3 and configured my Linksys EA7500 Max-Stream AC1900 router to enable outside access to the web server, I found that there were times that I needed to SSH into the Raspbian operating system to try things out when I was away from home.

To ensure I have a quick reference on hosting a SSH server behind Linksys EA7500 Max-Stream AC1900 router, if I needed to, I documented the steps to do so in this blog.

How to get Jetpack to resync your self-hosted WordPress contents with WordPress.com

For some reason, the content on my self-hosted WordPress website did not tally with the site stats on WordPress.com. The number of drafts and published posts were wrong and the insights page does not reflect my published posts for the past two months.

Tinkering with the WordPress.com interface, I was able to find a way to get Jetpack to resync my self-hosted WordPress contents with WordPress.com. This post documents how I managed to do so.

Setting up WordPress on Raspberry Pi 3 with Raspbian Stretch Lite, Nginx, MariaDB and PHP 7 as the LEMP stack

Raspbian Stretch was released on 17th August 2017 and this will mean that we will be able to get a variant of Debian 9 on our Raspberry Pi. With Raspbian Stretch, we will be able to run WordPress or any PHP framework with PHP 7.0 which Zend had indicated a performance boost of up to two folds as compared to PHP 5.6.

Just like the benefits that blogging brings to a programmer, the performance boost that PHP 7 brings about is a good reason for me to port my blog over to PHP 7.

Before porting my blog over to PHP 7, it will make sense for me to perform a little proof of concept on my Raspberry Pi 3 first. With Raspbian Stretch Lite, I can see for myself that my blog runs well with PHP 7.0 before spawning a new Digital Ocean instance for Techcoil.

This post documents how I setup an instance of WordPress on Raspberry Pi 3 with Raspbian Stretch Lite, nginx, MariaDB and PHP 7 as the LEMP stack.

How to host a web server behind Linksys EA7500 Max-Stream AC1900 router

My 2 year broadband contract ended with StarHub a few months ago and I signed up for a dual broadband (Cable + Fibre) contract for the Linksys EA7500 Max-Stream AC1900 MU-MIMO gigabit router.

With the new broadband subscription, the D-Link DIR-868L router from my earlier contract sits behind the cable modem while the new Linksys EA7500 Max-Stream AC1900 MU-MIMO gigabit router sits behind my fibre optic modem.

Since I want my reverse proxy server to serve HTTP traffic via the fibre optic network, I had to configure my Linksys router so that my Raspbian Jessie Lite reverse proxy server can serve HTTP traffic from the Internet.

To have a reference on how to do that again when need be, this post documents the steps that I took to host a web server, which serves as a reverse proxy server, behind the Linksys EA7500 Max-Stream AC1900 router.

Setting up ProjectSend on your Raspberry Pi 3 for sharing files – the LEMP way

Do you have large files that you want to share with your friends or clients? Do you keep your Internet connection on 24-7?

Compared to using Google Drive, Dropbox or other on-the-cloud file sharing software, hosting your own file sharing software when you never switch off your Internet has a few advantages.

Provided that your friends don’t share your files with others, your files stay at home and on your friends’ machines. Furthermore, you are only limited by the amount of storage that you have on your machine.

If you have a Raspberry Pi 3 in your house, you may want to consider setting up ProjectSend on your Raspberry Pi 3 for sharing files with others. This post shows how to do it with a LEMP stack.

How to enable secured remote management of D-Link DIR series router with Certbot, nginx, Raspbian Jessie Lite and Raspberry Pi 3

If you have a Internet subscription at home, chances are you will have a router that helps to enable computers, big and small, to access the Internet concurrently. To enable my computers to access the Internet concurrently, my Internet service provider gave me a D-Link DIR-868L router which had been serving me well over 2 years.

One way for me to access the router when I was not at home is to enable remote management by checking the Enable Remote Management in the ADMINISTRATION section of the TOOLS tab.

However, this feature activate remote management through HTTP through a designated port. Since HTTP communication is not encrypted, it is not safe for me to use this remote management feature from an unfamiliar network.

Since I had created a reverse proxy server with nginx, Raspbian Jessie Lite and Raspberry Pi 3 and installed Certbot on it, I reckoned that I can enable remote management of my D-Link DIR series router to be performed in a secured manner.

This post documents how to enable secured remote management of D-Link DIR series router with Certbot, nginx, Raspbian Jessie Lite and Raspberry Pi 3.

Installing Certbot on Raspbian Jessie Lite for deploying Let’s Encrypt certificates

Let’s Encrypt is an awesome open certificate authority that give digital certificates for free. The introduction of Let’s Encrypt had given ordinary folks like me the ability to host their own website that browsers will mark as secured – without paying hefty fees. Matching Let’s Encrypt with Raspberry Pi, we can easily deploy secure applications at home to serve clients anytime, anywhere.

The issuance of digital certificates is automated by software using the ACME protocol. We will need to run such a software on the devices which are going to serve as web hosts which speak HTTPS. Let’s Encrypt recommends that people with shell access use the Certbot ACME client to request for Let’s Encrypt certificates.

Since I had recently setup a reverse proxy server with nginx, Raspbian Jessie Lite and Raspberry Pi 3 with the shell terminal, I continue on to install Certbot on the Raspbian Jessie Lite operating system for deploying Let’s Encrypt certificates for my reverse proxy server to serve HTTPS traffic on behalf of future upstream servers.