Add Grafana to Traefik

Files Make sure to check out the basic config for traefik before you continue here. /opt/docker/proxy/ ├── -rw-r--r-- docker-compose.yml ├── secrets │ ├── -rw------- acme.json │ └── -rw------- hetzner_key └── traefik ├── -rw------- dynamic.yaml └── -rw------- static.yaml docker-compose.yaml The docker-compose file will be changed to include grafana and prometheus. version: "3.9" networks: proxy: external: true metrics: external: false secrets: hetzner: file: ./secrets/hetzner_key services: traefik: image: traefik:2.9 container_name: traefik restart: always secrets: - hetzner environment: - TZ=Europe/Berlin - HETZNER_API_KEY_FILE=/run/secrets/hetzner volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker....

January 18, 2023 · 1 min · 189 words · Florian Hoss

Ready-to-use Traefik

Files To use traefik in your own setup please create all files and place them in a folder on your server. Here an example for /opt/docker/proxy/: /opt/docker/proxy/ ├── -rw-r--r-- docker-compose.yml ├── secrets │ ├── -rw------- acme.json │ └── -rw------- hetzner_key └── traefik ├── -rw------- dynamic.yaml └── -rw------- static.yaml docker-compose.yaml The DNS-01 challenge can be used to generate and renew ACME certificates by provisioning a DNS record. Docker variables can be found here....

January 18, 2023 · 3 min · 518 words · Florian Hoss

Text Analysis with Go

Code package main import ( "fmt" "github.com/dariubs/percent" "io/ioutil" "log" "sort" "strings" ) type letter struct { upperCase string lowerCase string count int frequency float64 } type letterList []letter func (l letterList) Len() int { return len(l) } func (l letterList) Less(i, j int) bool { return l[i].frequency > l[j].frequency } func (l letterList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } const lettersInTheAlphabet = 'Z' - 'A' + 1 var letters = make([]letter, lettersInTheAlphabet) func initLetterStruct() { for i := 0; i < lettersInTheAlphabet; i++ { letters[i]....

July 7, 2022 · 2 min · 265 words · Florian Hoss