update site

Signed-off-by: Ivan Schaller <ivan@schaller.sh>
This commit is contained in:
Ivan Schaller 2024-02-19 18:32:24 +01:00
parent b85a71c797
commit 6f98c3646b
17 changed files with 223 additions and 186 deletions

6
.gitignore vendored
View file

@ -3,11 +3,11 @@
### Hugo template ### Hugo template
# Generated files by hugo # Generated files by hugo
/public/ public/
/resources/_gen/ resources/_gen/
# Executable may be added to repository # Executable may be added to repository
hugo.exe hugo.exe
hugo.darwin hugo.darwin
hugo.linux hugo.linux
*.lock

View file

@ -1,8 +1,8 @@
baseurl = "https://ivn.sh" baseurl = "https://ivn.sh"
title = "ivn.sh - Ivan Schaller" title = "ivn.sh - Ivan Schaller"
languageCode = "en-us" languageCode = "en-us"
paginate = 10 paginate = 10
timeZone = "Europe/Zurich" timeZone = "Europe/Zurich"
archetypeDir = "archetypes" archetypeDir = "archetypes"
contentDir = "content" contentDir = "content"
@ -15,101 +15,99 @@ buildFuture = false
buildExpired = false buildExpired = false
canonifyURLs = true canonifyURLs = true
enableRobotsTXT = true enableRobotsTXT = true
enableGitInfo = false enableGitInfo = false
enableEmoji = true enableEmoji = true
enableMissingTranslationPlaceholders = false enableMissingTranslationPlaceholders = false
disableRSS = true disableRSS = true
disableSitemap = false disableSitemap = false
disable404 = false disable404 = false
disableHugoGeneratorInject = false disableHugoGeneratorInject = false
disableKinds = ["taxonomy", "term", "taxonomyTerm"] disableKinds = ["taxonomy", "term", "taxonomyTerm"]
copyright = '<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>' copyright = '<a href="https://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC BY-NC 4.0</a>'
[taxonomies] [taxonomies]
category = "categories" category = "categories"
tag = "tags" tag = "tags"
[author] [author]
name = "Ivan Schaller" name = "Ivan Schaller"
[params] [params]
dateform = "Jan 2, 2006" dateform = "Jan 2, 2006"
dateformShort = "Jan 2" dateformShort = "Jan 2"
dateformNum = "2006-01-02" dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04" dateformNumTime = "2006-01-02 15:04"
# Subtitle for home # Subtitle for home
homeTitle = "Ivan Schaller" homeTitle = "Ivan Schaller"
homeSubtitle = "DevOps Engineer | Network Engineer" homeSubtitle = "DevOps Engineer | Network Engineer"
homeLinktext = "Find or contact me on other platforms" homeLinktext = "Find or contact me on other platforms"
# Set a background for the homepage # Set a background for the homepage
# backgroundImage = "assets/images/background.jpg" # backgroundImage = "assets/images/background.jpg"
# With this option on, the page user is able to set the scheme he wants. # With this option on, the page user is able to set the scheme he wants.
enableThemeToggle = true enableThemeToggle = true
# Set disableReadOtherPosts to true in order to hide the links to other posts. # Set disableReadOtherPosts to true in order to hide the links to other posts.
disableReadOtherPosts = true disableReadOtherPosts = true
# Enable sharing buttons, if you like # Enable sharing buttons, if you like
enableSharingButtons = false enableSharingButtons = false
enableGlobalLanguageMenu = false enableGlobalLanguageMenu = false
# Metadata mostly used in document's head # Metadata mostly used in document's head
description = "Personal site of Ivan Schaller" description = "Personal site of Ivan Schaller"
keywords = "homepage, blog" keywords = "homepage, blog"
images = [""] images = [""]
[params.logo] [params.logo]
logoMark = ">" logoMark = ">"
logoText = "ivn.sh - Ivan Schaller" logoText = "ivn.sh - Ivan Schaller"
logoHomeLink = "/" logoHomeLink = "/"
[params.footer] [params.footer]
trademark = true trademark = true
rss = false rss = false
copyright = true copyright = true
author = true author = true
topText = [] topText = []
# Menu entrys # Menu entrys
[[menu.main]] [[menu.main]]
identifier = "about" identifier = "about"
name = "About" name = "About"
url = "/about" url = "/about"
weight = 1 weight = 1
[menu.main.params] [menu.main.params]
class = 'bold' class = 'bold'
[[menu.main]] [[menu.main]]
identifier = "projects" identifier = "projects"
name = "Projects" name = "Projects"
url = "/projects" url = "/projects"
weight = 2 weight = 2
[[menu.main]] [[menu.main]]
identifier = "contact" identifier = "contact"
name = "Contact" name = "Contact"
url = "/contact" url = "/contact"
weight = 3 weight = 3
[[menu.main]] [[menu.main]]
identifier = "links" identifier = "links"
name = "Links" name = "Links"
url = "https://links.ivn.sh/" url = "https://links.ivn.sh/"
weight = 4 weight = 4
[[params.social]] [[params.social]]
name = "email" name = "email"
url = "mailto:ivan@schaller.sh" url = "mailto:ivan@schaller.sh"
[[params.social]] [[params.social]]
name = "github" name = "github"
url = "https://github.com/olofvndrhr" url = "https://github.com/olofvndrhr"

View file

@ -14,45 +14,59 @@ My work is a combination of Operation in Networking and Development in Automatio
--- ---
My main task is the operation of layer 3 site to site vpn's for different customers. It is a managed service, so reconfiguration, The main task in our team is the operation of a bgp-mpls core for businesses across switzerland and a few over the top services for it.
troubleshooting or other related tasks are my daily business. The services heavily uses BGP to propagate all the networks from the different sites to each other, and vrf's to separate different vpn's on the same device.
I work mostly with Cisco networking equipment, and from configuration to diagnostics I use about every aspect of it. I work mostly with cisco and juniper networking equipment, and from configuration to diagnostics I use about every aspect of it.
In the development area, I work with automation of networking tasks, administrative tasks and "small" internal application development. On the development side, I work with the automation of networking tasks and building "small" internal applications.
--- ---
### My skills: (`Rated from 1 to 10`) ### My (subjective) skills:
#### Languages #### Languages
* `10` - German - German
* `7` - English ![](https://geps.dev/progress/100)
* `3` - French
- English
![](https://geps.dev/progress/85)
#### Networking skills #### Networking skills
* `8` - Routing & Switching - Routing & Switching
* `7` - Fiber/xDSL technologies ![](https://geps.dev/progress/85)
* `7` - Cisco IOS-X(E/R)
* `7` - Troubleshooting
* `6` - BGP
#### Other skills - Cisco IOS-X(E/R)
![](https://geps.dev/progress/80)
* `8` - Linux (various areas) - Hardware knowledge
* `7` - Docker ![](https://geps.dev/progress/75)
* `6` - VMware vSphere Suite
* `6` - CI/CD (Drone, Jenkins, Woodpecker) - Fiber technologies
* `6` - Git (GitHub, Gitea, Bitbucket) ![](https://geps.dev/progress/70)
#### Programming and scripting skills: #### Programming and scripting skills:
* `8` - Shell/Bash - Python3
* `6` - Python3 ![](https://geps.dev/progress/80)
* `3` - JavaScript
* `2` - PowerShell - Shell/Bash
![](https://geps.dev/progress/80)
- Vanilla JavaScript
![](https://geps.dev/progress/40)
#### Other skills
- Linux (various areas)
![](https://geps.dev/progress/80)
- Docker/Container
![](https://geps.dev/progress/75)
- Git + CI/CD
![](https://geps.dev/progress/60)
--- ---

View file

@ -17,6 +17,7 @@ It lets you install multiple versions of the same tool at once and change the us
I also needed the tool [just](https://github.com/casey/just), which is like [make](https://www.gnu.org/software/make/), I also needed the tool [just](https://github.com/casey/just), which is like [make](https://www.gnu.org/software/make/),
but more for automation and less for compiling. but more for automation and less for compiling.
But as the current plugin for just was not working, i wrote my own one and created a [pull-request](https://github.com/asdf-vm/asdf-plugins/pull/629) for the official plugin But as the current plugin for `just` was not working, i wrote my own one and created a [pull-request](https://github.com/asdf-vm/asdf-plugins/pull/629) in the official plugin repository.
repository of asdf. repository of asdf.
The [PR](https://github.com/asdf-vm/asdf-plugins/pull/629) was quickly merged, and now it is an official asdf plugin. The [PR](https://github.com/asdf-vm/asdf-plugins/pull/629) was quickly merged, and now it is an official asdf plugin.

View file

@ -7,26 +7,26 @@ type = ["default"]
--- ---
## Docker baseimages for app deployment ## Docker base-mages for container deployments
#### https://github.com/olofvndrhr/docker-baseimages > the code for this project is hosted on my private gitea instance
This is a relatively small project. This is a relatively small project.
I thought, that if I deploy my apps with docker, then I should also create the base container images for it. As i deploy quite a few containers myself, some of them eventually have be customized.
So I created a normal and slim version. For this use case i created my own base-image, to have a common starting point.
Both of them feature the [s6 supervisor](https://github.com/just-containers/s6-overlay) and cron. The image uses the [s6 supervisor](https://github.com/just-containers/s6-overlay) and already has cron installed.
The normal version also has some commonly used tools bundled with it. It also has some commonly used tools bundled with it. So a perfect image for my use cases.
S6 is really practical, because you can map the UID and GID of every service you run in your container. The S6 supervisor is also really practical, because you can map the UID and GID of every service you run in your container.
Also, the services are always supervised, so they will restart if they fail. And the services are always supervised, so they will restart if they fail.
Later I also added a base version without the [s6 supervisor](https://github.com/just-containers/s6-overlay) Later i created some more variants of the image, one without `s6`, one with `nginx` preinstalled and one with `nginx+php`.
for use cases which don't require supervision of the application.
> `compose.yml` snippet to map the UID and GID for the default user `abc` in a docker-compose file
> Snippet to map the UID and GID for the default user `abc` in a docker-compose file
```yml ```yml
environment: environment:
- PUID= - PUID=
- PGID= - PGID=
``` ```

View file

@ -1,25 +0,0 @@
+++
title = "flox-dockerized"
description = "Dockerization of flox"
date = "2022-04-16"
type = ["default"]
+++
---
## Dockerization of flox
#### https://github.com/olofvndrhr/flox-dockerized
Flox is a personal watchlist, written in php.
Before I created my version, I used a docker container of flox from another user (I can't remember which one).
But this version did not have a supervisor installed, so I created my own docker container for it with supervision.
The baseimage for the flox container is the [debian-s6](https://github.com/olofvndrhr/docker-baseimages) image from myself.
It includes everything needed.
I also built it for arm64 and amd64, so it can even run on raspberry pi's or other arm processors.
> The original repository: [devfake/flox](https://github.com/olofvndrhr/docker-baseimages)

View file

@ -1,17 +0,0 @@
+++
title = "gohfs - docker"
description = "Dockerization of gohfs"
date = "2021-06-07"
type = ["default"]
+++
---
## Dockerization of gohfs
#### https://github.com/olofvndrhr/gohfs
To be deployed in my environment I needed this application in a containerized format.
But the original developer did not have a container for it yet.
So I created one with the [s6 supervisor](https://github.com/just-containers/s6-overlay) for easy user mapping and failure detection.
The pull request with the changes was accepted and can also be viewed at the [original repository](https://github.com/finzzz/gohfs).

View file

@ -18,4 +18,5 @@ It was relatively simple to set up and get working.
For the deployment, I went with [cloudflare pages](https://developers.cloudflare.com/pages/) For the deployment, I went with [cloudflare pages](https://developers.cloudflare.com/pages/)
for "hosting" and [web analytics](https://developers.cloudflare.com/analytics/web-analytics) for "hosting" and [web analytics](https://developers.cloudflare.com/analytics/web-analytics)
for the analytics part. for the analytics part.
I choose this option because I already manage all my domains via cloudflare, and so everything is on one platform for simpler management. I choose this option because I already manage all my domains via cloudflare, and so everything is on one platform for simpler management.

View file

@ -1,15 +0,0 @@
+++
title = "Lets Encrypt Bash hook - rewrite"
description = "Improvements to a Lets Encrypt bash script"
date = "2021-11-08"
type = ["default"]
+++
---
## Improvements to a Lets Encrypt bash script
#### https://github.com/olofvndrhr/dehydrated-hook-cloudflare
I changed the script to fit my needs.
In the process I removed one package dependency and increased readability of the script.

View file

@ -7,7 +7,7 @@ type = ["default"]
--- ---
## Manga download script written in python3 ## Manga downloader written in python3
#### https://github.com/olofvndrhr/manga-dlp #### https://github.com/olofvndrhr/manga-dlp
@ -17,18 +17,19 @@ which didn't include multiple mangas, or all chapters at the same time.
So I took inspiration from mangadex-dl and wrote a script myself. So I took inspiration from mangadex-dl and wrote a script myself.
It includes all my needs and is extendable for other sites too. It includes all my needs and is extendable for other sites too.
I also created a docker container for it, built on my own base images. I also created a docker container for it, built on my own base-image.
> More infos are available in the [README.md](https://github.com/olofvndrhr/manga-dlp/blob/master/README.md) > More infos are available on the official docs: https://manga-dlp.ivn.sh/
> or for [docker](https://github.com/olofvndrhr/manga-dlp/blob/master/docker/README.md)
**Feature summary:** **Feature summary:**
* Multiple mangas via a file with links - Multiple mangas via a file with links
* Ability to download all chapters available - Ability to download all chapters available
* Save as zip, cbz, cbr, pdf or folder - Save as zip, cbz, cbr, pdf or folder
* Add volume information - Add metadata via the [comicinfo](https://anansi-project.github.io/docs/comicinfo/schemas/v2.0) format
* Select language - Multi-language support
* [Docker image](https://hub.docker.com/repository/docker/olofvndrhr/manga-dlp) - Volume support
* [PyPi package](https://pypi.org/project/manga-dlp/) - Custom event hooks
* etc. - [Docker image](https://hub.docker.com/repository/docker/olofvndrhr/manga-dlp)
- [PyPi package](https://pypi.org/project/manga-dlp/)
- etc.

View file

@ -0,0 +1,14 @@
+++
title = "octodns-netbox-dns"
description = "netbox-plugin-dns source for octodns"
date = "2024-01-01"
type = ["default"]
+++
---
## netbox-plugin-dns source for octodns
#### https://github.com/olofvndrhr/octodns-netbox-dns
todo

View file

@ -0,0 +1,14 @@
+++
title = "powerdns for arm64"
description = "powerdns containers for arm64"
date = "2024-01-01"
type = ["default"]
+++
---
## powerdns containers for arm64
#### https://github.com/olofvndrhr/docker-pdns
todo

View file

@ -0,0 +1,14 @@
+++
title = "releasenote-gen"
description = "release note generator action"
date = "2024-01-01"
type = ["default"]
+++
---
## release note generator for github actions
#### https://github.com/olofvndrhr/releasenote-gen
todo

View file

@ -0,0 +1,43 @@
+++
title = "small projects"
description = "list of a few small projects"
date = "2024-01-01"
type = ["default"]
+++
---
## Dockerization of gohfs
#### https://github.com/olofvndrhr/gohfs
To be deployed in my environment I needed this application in a containerized format.
But the original developer did not have a container for it yet.
So I created one with the [s6 supervisor](https://github.com/just-containers/s6-overlay) for easy user mapping and failure detection.
The pull request with the changes was accepted and can also be viewed at the [original repository](https://github.com/finzzz/gohfs).
## Dockerization of flox
#### https://github.com/olofvndrhr/flox-dockerized
Flox is a personal watchlist, written in php.
Before I created my version, I used a docker container of flox from another user (I can't remember which one).
But this version did not have a supervisor installed, so I created my own docker container for it with supervision.
The baseimage for the flox container is the [debian-s6](https://github.com/olofvndrhr/docker-baseimages) image from myself.
It includes everything needed.
I also built it for arm64 and amd64, so it can even run on raspberry pi's or other arm processors.
> The original repository: [devfake/flox](https://github.com/olofvndrhr/docker-baseimages)
## Improvements to a Lets Encrypt bash script
#### https://github.com/olofvndrhr/dehydrated-hook-cloudflare
I changed the script to fit my needs.
In the process I removed one package dependency and increased readability of the script.

View file

@ -1,6 +1,4 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [ "extends": ["local>44net/renovate"]
"local>44net/renovate"
]
} }

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
{"Target":"main.93cf4d574710f584a96437593f790a507f811c0e640d70a8d3c7b09b23ee4b04.css","MediaType":"text/css","Data":{"Integrity":"sha256-k89NV0cQ9YSpZDdZP3kKUH+BHA5kDXCo08ewmyPuSwQ="}}