1
0

Clean up language
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Jens True 2021-05-01 19:16:57 +02:00
parent 54c659947e
commit 3da3dc4259
5 changed files with 19 additions and 89 deletions

@ -23,7 +23,6 @@ removePathAccents: true
module: module:
imports: imports:
- path: github.com/wowchemy/wowchemy-hugo-modules/wowchemy - path: github.com/wowchemy/wowchemy-hugo-modules/wowchemy
############################ ############################
## ADVANCED ## ADVANCED
############################ ############################

@ -1,71 +1,46 @@
--- ---
# Documentation: https://sourcethemes.com/academic/docs/managing-content/
title: "Architectural Overview" title: "Architectural Overview"
subtitle: "Overview of the architecture behind this website." subtitle: "Overview of the architecture behind this website."
summary: "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 date: 2020-02-27T22:10:31+01:00
lastmod: 2020-02-27T22:10:31+01:00 lastmod: 2020-02-27T22:10:31+01:00
featured: false
draft: false
math: false
diagram: true diagram: true
highlight: 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 ## 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. 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: My setup attempts to achieve the following goals:
- Require no or little maintenance - Require no or little maintenance
- I do not wish to daily check the status of the server - I do not wish to daily check the status of the server
- High data integrity - High data integrity
- Loosing data is not acceptable. Downtime while data is being recovered is however okay. - Losing data is not acceptable. Downtime, while data is being recovered, is however okay.
- Employ best practices - Employ best practices
- TLS, Git and containers are all considered best practices in modern software development. - TLS, Git, and containers are all considered best practices in modern software development.
Out of scope: Out of scope:
- Uptime and reliability - Uptime and reliability
- I self host and do not host any critical services. - I self-host and do not host any critical services.
- Performance and scaling - Performance and scaling
- The server is purely for personal use and hardware is cheap. - The server is purely for personal use and hardware is cheap.
## Hardware ## Hardware
The websever is hosted on an HP MicroServer Gen8. The OS runs off a 120GB SSD drive and 2x3TB HDD running RAID1 using the btrfs filesystem. This provides a suitable balance between storage capacity, and performance. Offsite backup is done weekly through https://wasabi.com/ and their S3 compatible service. The webserver is hosted on an HP MicroServer Gen8. The OS runs off a 120GB SSD drive and 2x3TB HDD running RAID1 using the Btrfs filesystem. This provides a suitable balance between storage capacity, and performance. Offsite backup is done weekly through https://wasabi.com/ and their S3 compatible service.
## Network ## 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. 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 line from Altibox provides internet connection, while the IP address is not static it changes rarely enough for this not to be an issue. On the WAN side, a 150/150Mb/sec fiber line from Altibox provides the internet connection, and while the IP address is not static it changes rarely enough for this not to be an issue.
The domain is registered via gandi.net providing both registration and name servers. The domain is registered via gandi.net providing both registration and name servers.
## Software ## 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. 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. All containers are automatically updated as is the host system.
@ -83,4 +58,5 @@ graph LR;
## Build ## 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. The site uses the Hugo static site generator. The content of the site is 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.

@ -1,31 +1,9 @@
--- ---
# Documentation: https://sourcethemes.com/academic/docs/managing-content/
title: "Bit magic in C (and C++)" title: "Bit magic in C (and C++)"
subtitle: "Tips and trick for embedded C/C++" subtitle: "Tips and trick for embedded C/C++"
summary: "Tips and trick for embedded C/C++" summary: "Tips and trick for embedded C/C++"
authors: []
tags: []
categories: []
date: 2020-06-13T19:01:19+02:00 date: 2020-06-13T19:01:19+02:00
lastmod: 2020-06-13T19:01:19+02:00 lastmod: 2020-06-13T19:01:19+02: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: []
--- ---
# Set a bit # Set a bit

@ -1,21 +1,20 @@
--- ---
title: "Btrfs - Helpful commands" title: "Btrfs - Helpful commands"
date: 2020-09-03T00:00:00 date: 2020-09-03T00:00:00
subtitle: "Useful commands for the btrfs file system" subtitle: "Useful commands for the Btrfs file system"
summary: "Useful commands for the btrfs file system" summary: "Useful commands for the Btrfs file system"
--- ---
Quick collection of useful commands for maintaining a Btrfs filesystem.
Quick collection of useful commands for maintaining a btrfs filesystem. Btrfs allows for easy management of software raids in RAID0, RAID1, and RAID10. RAID5 and RAID6 are implemented but not suggested for use.
Btrfs allows for easy management of software raids in RAID0, RAID1 and RAID10. RAID5 and RAID6 are implemented but not suggested for use.
{{% callout note %}} {{% callout note %}}
Btrfs (pronounced as "butter fuss", "better F S", "butter F S", "b-tree F S", or simply by spelling it out) is a file system based on the copy-on-write (COW) principle, initially designed at Oracle Corporation for use in Linux. The development of Btrfs began in 2007, and since August 2014 the file system's on-disk format has been marked as stable.[13] Btrfs (pronounced as "butter fuss", "better F S", "butter F S", "b-tree F S", or simply by spelling it out) is a file system based on the copy-on-write (COW) principle, initially designed at Oracle Corporation for use in Linux. The development of Btrfs began in 2007, and since August 2014 the file system's on-disk format has been marked as stable.[13]
{{% /callout %}} {{% /callout %}}
## btrfs device statistics ## Btrfs device statistics
The btrfs device commands are used to check the status of the device, such as read / write errors and disk usage. The Btrfs device commands are used to check the status of the device, such as read / write errors and disk usage.
See the current statistic. See the current statistic.
```shell ```shell
sudo btrfs device stats /path/to/fs sudo btrfs device stats /path/to/fs
@ -27,7 +26,7 @@ sudo btrfs device usage /path/to/fs
``` ```
## btrfs scrub ## btrfs scrub
btrfs scrub is used to scrub a btrfs filesystem, which will read all data and metadata blocks from all devices and verify checksums. Automatically repair corrupted blocks if theres a correct copy available. btrfs scrub is used to scrub a Btrfs filesystem, which will read all data and metadata blocks from all devices and verify checksums. Automatically repair corrupted blocks if theres a correct copy available.
```shell ```shell
sudo btrfs scrub start /path/to/fs/ sudo btrfs scrub start /path/to/fs/
@ -40,7 +39,7 @@ sudo btrfs scrub status /path/to/fs/
``` ```
## btrfs balance ## btrfs balance
The primary purpose of the balance feature is to spread block groups across all devices so they match constraints defined by the respective profiles. See mkfs.btrfs(8) section PROFILES for more details. The scope of the balancing process can be further tuned by use of filters that can select the block groups to process. Balance works only on a mounted filesystem. The primary purpose of the balance feature is to spread block groups across all devices so they match constraints defined by the respective profiles. See mkfs.btrfs(8) section PROFILES for more details. The scope of the balancing process can be further tuned by the use of filters that can select the block groups to process. Balance works only on a mounted filesystem.
```shell ```shell
sudo btrfs balance start /path/to/fs/ sudo btrfs balance start /path/to/fs/
@ -50,4 +49,4 @@ To see the status of an ongoing (or last run) balance use
```shell ```shell
sudo btrfs balance status /path/to/fs/ sudo btrfs balance status /path/to/fs/
``` ```

@ -1,35 +1,13 @@
--- ---
# Documentation: https://sourcethemes.com/academic/docs/managing-content/
title: "Online Tools" title: "Online Tools"
subtitle: "A range of high quality tools you can use from your browser on any system." subtitle: "A range of high quality tools you can use from your browser on any system."
summary: "A range of high quality tools you can use from your browser on any system." summary: "A range of high quality tools you can use from your browser on any system."
authors: []
tags: []
categories: []
date: 2020-04-08T22:09:37+02:00 date: 2020-04-08T22:09:37+02:00
lastmod: 2020-04-08T22:09:37+02:00 lastmod: 2020-04-08T22:09:37+02: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: []
--- ---
# Why # Why
Sometimes you are simply stuck on a system where you can not install your own prefered tools. This is where online browser based tools comes to the assistance. Sometimes you are simply stuck on a system where you can not install your own preferred tools. This is where online browser-based tools come to the rescue.
- [urlscan.io](https://urlscan.io/) - [urlscan.io](https://urlscan.io/)
- Scan a url and provide a detailed report. Great for checking suspicious links without opening them in your own browser. - Scan a url and provide a detailed report. Great for checking suspicious links without opening them in your own browser.