Skip to content

Overview

The Kuala Lumpur Hash House Harriettes are a Hash club managed by a group of volunteers and with a rather limited budget. As such they are standing somewhere in the middle between a private person and a company. This imposes certain challenges to the setup and implementation especially on the choice of components.

A number of (architectural) principles were applied throughout this project:

  1. All components should as much as possible be open-source (software) or offer a free-tier (hardware, services). The prominent exception is the main Webserver because (1) there was an existing long-term contract with the hosting provider and (2) the author could not manage to create a further free-tier Oracle account as there is already one registered under his name.

    TIP

    Migrate the Webserver to Oracle free-tier (alongside the Piwigo Server), should the situation change.

  2. Servers will always be setup using the latest stable version of Ubuntu and components will be installed as much as possible within docker containers, which allows a much easier maintenance.

  3. Manual installation on Test-/Production servers will be as much as possible prohibited. All installation procedures will be implemented as ansible scripts which allows for an easy restore in case of server loss

  4. Backups will be kept on external/network storage - Google Drive is used as a service. Additionally, the main server is backed up fully on a daily basis for rolling 14-days as part of the service subscription

  5. Wherever possible the Don't repeat yourself (DRY) principle shall be applied, reusable components/functions/modules shall be implemented wherever possible

  6. User experience is the main guiding principle for the design and setup of any frontend element - the backend has to follow suite.

The IT-Architecture is depicted in Figure 1. The following chapters will outline the building blocks in more detail.


IT-Architecture Diagram

Figure 1: Overview of the IT Architecture of the website, depicting the server scope and the respective Components. An online version can be found here


Released under the MIT License.