From b885ccac0bff5e3b231585bf4e34c0cdc9636f97 Mon Sep 17 00:00:00 2001 From: Jens True Date: Thu, 27 Feb 2020 22:42:33 +0100 Subject: [PATCH] Added post on architecture --- .drone.yml | 4 +- content/authors/admin/_index.md | 2 +- content/home/posts.md | 4 +- content/post/architectural-overview/index.md | 67 ++++++++++++++++++++ 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 content/post/architectural-overview/index.md diff --git a/.drone.yml b/.drone.yml index 12e722e..a709942 100644 --- a/.drone.yml +++ b/.drone.yml @@ -5,11 +5,11 @@ steps: - name: requirements image: alpine/git commands: - - git submodule update --recursive --remote --init + - git submodule update --recursive --init - name: build image: klakegg/hugo:ext-alpine commands: - - hugo-official --minify + - hugo-official - name: deploy image: appleboy/drone-scp settings: diff --git a/content/authors/admin/_index.md b/content/authors/admin/_index.md index 7ce4f92..a7c9085 100644 --- a/content/authors/admin/_index.md +++ b/content/authors/admin/_index.md @@ -1,6 +1,6 @@ --- # Display name -name: Jens Christian True +name: Jens True # Username (this should match the folder name) authors: diff --git a/content/home/posts.md b/content/home/posts.md index 4afc303..e7bc37a 100644 --- a/content/home/posts.md +++ b/content/home/posts.md @@ -4,8 +4,8 @@ widget = "pages" # See https://sourcethemes.com/academic/docs/page-builder/ headless = true # This file represents a page section. -active = false # Activate this widget? true/false -weight = 60 # Order that this section will appear. +active = true # Activate this widget? true/false +weight = 40 # Order that this section will appear. title = "Recent Posts" subtitle = "" diff --git a/content/post/architectural-overview/index.md b/content/post/architectural-overview/index.md new file mode 100644 index 0000000..898629d --- /dev/null +++ b/content/post/architectural-overview/index.md @@ -0,0 +1,67 @@ +--- +# Documentation: https://sourcethemes.com/academic/docs/managing-content/ + +title: "Architectural Overview" +subtitle: "Overview of the architecture behind this website." +summary: "Overview of the architecture behind this website." +authors: ["admin"] +tags: [] +categories: [] +date: 2020-02-27T22:10:31+01:00 +lastmod: 2020-02-27T22:10:31+01:00 +featured: false +draft: false + +# Featured image +# To use, add an image named `featured.jpg/png` to your page's folder. +# Focal points: Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight. +image: + caption: "" + focal_point: "" + preview_only: false + +# Projects (optional). +# Associate this post with one or more of your projects. +# Simply enter your project's folder or file name without extension. +# E.g. `projects = ["internal-project"]` references `content/project/deep-learning/index.md`. +# Otherwise, set `projects = []`. +projects: [] +--- + +# Introduction + +I self host this site. I consider it a learning experience into hosting and managing a full linux server stack. The purpose of this post is to describe my current setup as notes to myself should I ever need to redo a similar setup. + +My setup attempts to achieve the following goals + +- Require no or little maintenance + - I do not wish to daily check the status of the server +- High data integrity + - Loosing data is not acceptable. Downtime while data is being recovered is however okay. +- Employ best practices + - TLS, Git and containers are all considered best practices in modern software development. + +# Hardware + +The websever is hosted on an HP MicroServer Gen8. The OS runs off a 120GB SSD driver and 2x3TB HDD running RAID1 on the btrfs filesystem. This provides a suitable balance between storage capacity, and performance. + +# Network + +The server is connected via Gigabit Ethernet to an ASUS router. The router supports both IPv4 and IPv6 and does port forwarding for port 80 and port 443 to the statically configured IP address. + +On the WAN side a 150/150Mb/sec fiber connection provides internet connection. + +The domain is registered via gandi.net providing both registration and name servers. + +# Software + +The software stack is built on containers. A reverse-proxy is employed to provide SSL certificates through LetsEncrypt. The webserver itself is Nginx running on an internal virtual network. + +All containers are automatically updated as is the host system. + +# Build + +The site uses the hugo static site generator. The content of the site are maintained in a git repository. On each update to the repository a dedicated build server generates the HTML and pushes it to the webserver. This allows the site to be updated from any machine with access to git. + + +