This is my personal template collection. Here you'll find templates, and configurations for various tools, and technologies.
Go to file
Christoph Schug a20783287c fix: fix Traefik 3 host rule matching
The function `HostHost` is an obvious typo, such a function does not
exist, most likely just `Hosts` is meant here.

Furthermore, Trafik 3 doesn't use the Gorilla Mux framework
anymore, therefore the matching using curly brace syntax like in
`{subhost:[a-z]+}` isn't supported anymore. For details, see [1].
Alas, the final Traffic 2 to 3 migration document dropped this crucial
information but at least all of those many examples using this method
which were in the Trafik 2 documentation were removed from the Traefik 3
documentation.

Also `[a-z]+` does not match all valid sub-domains as specified per RFC
1123 [2], and needs to be enhanced to support hyphen characters within a
single DNS label as well (but not at the start or the end of a label).
This is also a requirement for i18n domains in their ACE representation.

Actually the regular expression can be made even more strict to comply
with length limitations as defined in RFC 2181 [3] but this would require
pretty resource-intense lookarounds in the regular expression, therefore
those should be neglected here.

As we are doing regular expression match anyway, the `Host` function can
be dropped. It adds redundancy to the configuration and only would make
sense from a performance point of view, if the vast majority of requests
would lack any sub-domain.

Last but not least, the Trafik documentation isn't clear at all, whether
any potential port number is being stripped from the `Host` request header.
From empiric testing with Traefik 3.0.1 that's apparently the case, but
as it isn't a documented feature, we rather accept potential ports as
well.

Same when it comes to case-sensitivity. From testing it looks like the
hostname is always forced to lower-case chararcters, but strangely
enough even the official documentation contains an example which
suggests enabling case-insensitive mode for regular expression matching
using `(?i)`. Therefore we better stick with that one as well.

[1] https://traefik.io/blog/traefik-proxy-3-0-scope-beta-program-and-the-first-feature-drop/
[2] https://datatracker.ietf.org/doc/html/rfc1123
[3] https://datatracker.ietf.org/doc/html/rfc2181
2024-06-02 19:43:03 +02:00
.github update pull request template 2 2024-03-26 11:37:01 +01:00
ansible fix: tell Ansible about the idempotency of this task 2024-03-03 17:57:02 +01:00
docker-compose fix: fix Traefik 3 host rule matching 2024-06-02 19:43:03 +02:00
github-actions fix: add final newline character to text files 2024-02-22 19:06:54 +01:00
kestra fix: fix comment not indented like content 2024-04-21 12:07:47 +02:00
kubernetes chore(deps): update busybox docker tag to v1.36.1 2024-03-18 15:34:24 +00:00
packer/proxmox fix: add final newline character to text files 2024-02-22 19:06:54 +01:00
terraform Merge pull request #274 from ChristianLempa/renovate/helm-2.13.x 2024-05-08 20:15:47 +02:00
vagrant fix: ensure Unix-style newlines 2024-03-08 14:14:41 +01:00
.gitignore updated gitignore 2024-03-26 12:06:37 +01:00
CONTRIBUTING.md fix: update URLs in contributing document 2024-02-24 00:58:12 +01:00
LICENSE Initial commit 2021-06-11 09:05:33 +02:00
README.md macos typo 2023-09-26 15:15:57 +02:00
renovate.json fix: fix missing double-escaping of backslash 2024-05-31 12:16:30 +02:00
SECURITY.md fixed typo 2023-08-28 11:55:26 +02:00

Christian's Boilerplates

Welcome

Hey, there!

Im Christian, and Im passionate about creating educational tech content for IT Pros and Homelab nerds.

This Repository Boilerplates is my personal template collection. Here you'll find templates, and configurations for various tools, and technologies.

⚠️ Be aware, products can change over time. I do my best to keep up with the latest changes and releases, but please understand that this wont always be the case.

I created them as free resources to be used in your specific use cases. If you're searching for detailed, in-depth tutorials on some tools or technologies, check out my YouTube Channel.

Contribution

If youd like to contribute to this project, reach out to me on social media or Discord, or create a pull request for the necessary changes.

Other Resources

  • Dotfiles - My personal configuration files on macOS
  • Cheat-Sheets - Command Reference for various tools and technologies
  • Videos - Documentation and project files for all my video tutorials on YouTube
  • Homelab - This is my entire Homelab documentation, and configurations for infrastructure, applications, networking, and more.

Support me

Creating high-quality videos and valuable resources that are accessible to everyone, free of charge, is a huge challenge. With your contribution, I can dedicate more time and effort into the creation process, which ultimately enhances the quality of the content. So, all your support, by becoming a member, truly makes a significant impact on what I do. And youll also get some cool benefits and perks in return, as a recognition of your support.

Remember, supporting me is entirely optional. Your choice to become a member or not won't change your access to my videos and resources. You are also welcome to reach out to me on Discord, if you have any questions or feedback.

https://www.patreon.com/christianlempa