The reverse proxy server

With the proliferation of cloud computing and single board computers, the term – reverse proxy server, becomes a frequent mention in technical specifications that we may encounter as a developer or system implementation consultant.

Finding myself having to reiterate my understanding of the reverse proxy server, I reckoned that I should document what I know about the reverse proxy server so that I have a place where people can reference when they are lost with the topic of reverse proxy server.

How to setup Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications

The Raspbian operating system is the Raspberry Pi Foundation’s official supported operating system. As of this writing, Raspbian comes in two flavours – one with a graphical user interface for us to build a low cost desktop computer and the other without the graphical user interface.

If you intend to use your Raspberry Pi 3 with sensors and build a web interface for you to manage those sensors, Raspbian Jessie Lite is one operating system which you may want to install on your Raspberry Pi 3.

And with the versatility of Python 3, setting up Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications will be one of the first task that you will perform before you embark on your next sensor based project with the Raspberry Pi 3.

This post documents the steps that I took to setup Raspbian Jessie Lite on Raspberry Pi 3 to run Python 3 applications.

How to host your Python 3 Flask MVP with Supervisor on Ubuntu Server 16.04

Due to its minimalistic design, the Python Flask framework is ideal for building the web server layer of minimal viable products (MVP) to validate customers’ needs. However, development work is just one part of the user validation efforts. To ensure that our customer can access our Flask MVP and provide feedback as and when they are available, we will need to get it running with as a server daemon.

Supervisor is a convenient tool for running applications as a server daemon.

This post documents the steps that I took to host a Python 3 Flask MVP with Supervisor on an Ubuntu Server 16.04 instance.

How to setup Ubuntu Classic Server 16.04 on Raspberry Pi 3 for running Python 3 applications

Most of the customers who wanted to try out my minimal viable products (MVP) would provide me with an instance of Ubuntu Classic Server 16.0x these days. As such, it makes sense for me to trial my MVPs on the Ubuntu Classic Server 16.0x to ensure that I spend minimal time in deploying my MVPs to validate my customers’ needs. Since I have a few Raspberry Pi 3s lying around in the house, I can install a version of Ubuntu Classic Server 16.0x to serve as the development server for me to trial my MVPs.

Fortunately, the good folks at ubuntu-pi-flavour-maker.org had put up an optimised Ubuntu Classic Server 16.04 image for Raspberry Pi 3.

This post documents the steps that I took to run Ubuntu Classic Server 16.04 on my Raspberry Pi 3 for running Python 3 applications.

How to connect the Raspberry Pi Camera Module to Raspberry Pi 2 or Raspberry Pi 3

Since the Raspberry Pi camera module connects to most of the recent Raspberry Pi boards via the camera serial interface (CSI), the Raspberry Pi camera module is an ideal peripheral for implementing Raspberry Pi based projects that require image capturing.

This post documents how to connect a Raspberry Pi camera module to a Raspberry Pi 3.

Setting up a low cost desktop computer with Raspberry Pi 3

With the advent of single-board computers like Raspberry Pi, we do not have to spend too much money on a computer that can fulfil our basic computing needs. The launch of Raspberry Pi 3 was like icing on the cake; it came with WiFi connectivity. Since WiFi is ubiquitous, the WiFi connectivity of the Raspberry Pi 3 made it a suitable candidate to be used as a low cost desktop computer in the house, office or school.

This post documents how you can setup a low cost desktop computer with Raspberry Pi 3.

How to serve static files with Python 3 + Flask

Python Flask is a good microframework for building a minimal viable product to validate our ideas on the Internet. A modern web application encompasses documents that tell the web browser how to build the visuals of our web application and communicate with our server backend. Such documents are usually static in nature and are served as they are to the web browser without any processing from the server end.

Comparing setting up an instance of the Nginx server with adding code in our Flask application, the latter can be a more convenient way for us to realise our minimal viable product. This post documents the proof of concept that I did to serve static files with Python 3 and Flask.