Compare commits
16 commits
Author | SHA1 | Date | |
---|---|---|---|
537d3f6166 | |||
|
46bd006078 | ||
|
5fafb925cd | ||
|
0bb09df315 | ||
|
1b28b9c383 | ||
|
c1ef46a2de | ||
|
34dfac84f0 | ||
|
79005f350c | ||
|
266e5a1bbb | ||
|
f5a20f7d64 | ||
a50c23d45c | |||
|
ac2ba661d5 | ||
67a416a82b | |||
107b57d299 | |||
53efa2c0c4 | |||
37813805fe |
|
@ -19,7 +19,7 @@ jobs:
|
|||
id: meta
|
||||
with:
|
||||
images: |
|
||||
codeberg.org/${{ github.repository }}
|
||||
git.chaos.fyi/${{ github.repository }}
|
||||
tags: |
|
||||
type=schedule
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
|
@ -30,7 +30,7 @@ jobs:
|
|||
- name: Container-Registry login
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: codeberg.org/wrenix
|
||||
registry: git.chaos.fyi/wrenix
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
|
|
1
.gitignore
vendored
|
@ -0,0 +1 @@
|
|||
/.hugo_build.lock
|
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule "themes/terminimal"]
|
||||
path = themes/terminimal
|
||||
url = https://github.com/pawroman/zola-theme-terminimal.git
|
19
.woodpecker/container.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
steps:
|
||||
- name: publish
|
||||
image: woodpeckerci/plugin-kaniko
|
||||
when:
|
||||
- event: push
|
||||
branch:
|
||||
- main
|
||||
- event: tag
|
||||
ref: refs/tags/v*
|
||||
- event: cron
|
||||
cron: sync_*
|
||||
settings:
|
||||
dockerfile: Containerfile
|
||||
registry: "${CI_FORGE_URL#https://}"
|
||||
repo: "${CI_REPO}"
|
||||
auto_tag: true
|
||||
username: "${CI_REPO_OWNER}"
|
||||
password:
|
||||
from_secret: CODEBERG_TOKEN
|
|
@ -1,15 +1,20 @@
|
|||
FROM ghcr.io/getzola/zola:v0.18.0 as builder
|
||||
FROM ghcr.io/gohugoio/hugo:v0.142.0 as builder
|
||||
|
||||
COPY content content
|
||||
COPY static static
|
||||
COPY themes themes
|
||||
COPY templates templates
|
||||
COPY config.toml config.toml
|
||||
RUN [ "/bin/zola", "build" ]
|
||||
COPY --chown=hugo:hugo .git .git
|
||||
COPY --chown=hugo:hugo content content
|
||||
COPY --chown=hugo:hugo data data
|
||||
COPY --chown=hugo:hugo go.mod go.mod
|
||||
COPY --chown=hugo:hugo hugo.yaml hugo.yaml
|
||||
COPY --chown=hugo:hugo i18n i18n
|
||||
COPY --chown=hugo:hugo layouts layouts
|
||||
COPY --chown=hugo:hugo static static
|
||||
COPY --chown=hugo:hugo themes themes
|
||||
RUN [ "/usr/bin/hugo", "mod", "get", "-u" ]
|
||||
RUN [ "/usr/bin/hugo", "build", "--minify" ]
|
||||
|
||||
|
||||
|
||||
FROM docker.io/svenstaro/miniserve:alpine
|
||||
COPY --from=builder /public /data
|
||||
COPY --from=builder /project/public /data
|
||||
|
||||
CMD [ "--index", "index.html", "/data" ]
|
||||
CMD [ "--index", "index.html", "/data" ]
|
||||
|
|
74
config.toml
|
@ -1,74 +0,0 @@
|
|||
base_url = "https://wrenix.eu"
|
||||
title = "WrenIX"
|
||||
description = "Der Zaunkönig im Netzwerk"
|
||||
|
||||
generate_feed = true
|
||||
compile_sass = true
|
||||
build_search_index = false
|
||||
|
||||
# theme = "anatole-zola"
|
||||
# theme = "tabi"
|
||||
theme = "terminimal"
|
||||
|
||||
taxonomies = [
|
||||
{name = "tags"}
|
||||
]
|
||||
|
||||
feed_filename = "rss.xml"
|
||||
|
||||
default_language = "de"
|
||||
[languages.en]
|
||||
|
||||
[markdown]
|
||||
external_links_target_blank = true
|
||||
# Whether to do syntax highlighting
|
||||
# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
|
||||
highlight_code = true
|
||||
# highlight_theme = "base16-ocean-light"
|
||||
|
||||
|
||||
[extra]
|
||||
accent_color = "blue"
|
||||
background_color = "blue"
|
||||
|
||||
logo_text="WrenIX"
|
||||
author="WrenIX"
|
||||
copyright_html="© WrenIX"
|
||||
|
||||
use_full_hack_font = true
|
||||
page_titles = "main_only"
|
||||
|
||||
favicon = "/images/avatar.png"
|
||||
favicon_mimetype = "image/png"
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="home"
|
||||
url="$BASE_URL"
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="archive"
|
||||
url="$BASE_URL/archive"
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="about me"
|
||||
url="$BASE_URL/about"
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="rss"
|
||||
url="$BASE_URL/rss.xml"
|
||||
newtab=true
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="docs"
|
||||
url="https://docs.wrenix.eu"
|
||||
newtab=true
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="mastodon"
|
||||
url="https://social.chaos.fyi/@wrenix"
|
||||
newtab=true
|
||||
|
||||
[[extra.menu_items]]
|
||||
name="git"
|
||||
url="https://codeberg.org/wrenix"
|
||||
newtab=true
|
|
@ -1,17 +0,0 @@
|
|||
+++
|
||||
title = "Passwordmanager mit GPG-Key"
|
||||
date = "2023-05-18"
|
||||
|
||||
[taxonomies]
|
||||
tags = [
|
||||
"gpg",
|
||||
"desktop"
|
||||
]
|
||||
+++
|
||||
|
||||
```
|
||||
pass init 0x7AFDB012974B1BB5
|
||||
pass edit dev/codeberg.org
|
||||
git remote add origin git@codeberg.org:wrenix/password-store.git
|
||||
git push -u origin main
|
||||
```
|
|
@ -1,5 +1,14 @@
|
|||
+++
|
||||
title = "Home"
|
||||
sort_by = "date"
|
||||
paginate_by = 3
|
||||
+++
|
||||
---
|
||||
title: WrenIX
|
||||
toc: false
|
||||
---
|
||||
|
||||
This is my privat homepage.
|
||||
|
||||
## Explore
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="blog" title="Blog" icon="newspaper" >}}
|
||||
{{< card link="docs" title="Docs" icon="book-open" >}}
|
||||
{{< card link="about" title="About Me" icon="user" >}}
|
||||
{{< /cards >}}
|
||||
|
|
28
content/about.en.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
title: "About Me"
|
||||
type: about
|
||||
---
|
||||
|
||||
# WrenIX
|
||||
|
||||
I call myself WrenIX.
|
||||
|
||||
I use the small slogan:
|
||||
> The wren in the network.
|
||||
|
||||

|
||||
|
||||
## Contakt
|
||||
|
||||
E-Mail: [contact@wrenix.eu](mailto:contact@wrenix.eu)
|
||||
|
||||
Matrix: [@wrenix:chaos.fyi](https://matrix.to/#/@wrenix:chaos.fyi)
|
||||
|
||||
## Cryptography
|
||||
|
||||
SSH: `ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGONGPQ79A9WZ7EwM6vMfBKBkgPD2dsjExFoo2UXyd79 dev@wrenix.eu`
|
||||
* [Download](/keys/ssh.txt)
|
||||
|
||||
GPG-Fingerprint: `B9C3 5FDD 7362 F063 A870 6A2E 7AFD B012 974B 1BB5`
|
||||
* [Armour](/keys/dev.gpg.txt)
|
||||
* [Binary](/keys/dev.gpg.bin)
|
|
@ -1,7 +1,7 @@
|
|||
+++
|
||||
title = "About Me"
|
||||
path = "about"
|
||||
+++
|
||||
---
|
||||
title: "About Me"
|
||||
type: about
|
||||
---
|
||||
|
||||
# WrenIX
|
||||
|
|
@ -1,13 +1,14 @@
|
|||
+++
|
||||
title = "eToken und GPG-Key"
|
||||
date = "2023-05-17"
|
||||
|
||||
[taxonomies]
|
||||
tags = [
|
||||
"gpg",
|
||||
"desktop"
|
||||
]
|
||||
+++
|
||||
---
|
||||
title: "eToken und GPG-Key"
|
||||
date: "2023-05-17"
|
||||
authors:
|
||||
- name: "me"
|
||||
link: "/about/"
|
||||
image: "/images/avatar.png"
|
||||
tags:
|
||||
- "gpg"
|
||||
- "desktop"
|
||||
---
|
||||
|
||||
Ich nutze den GPG-Key für folgende Funktionen:
|
||||
- SSH-Key (gpg-agent und unter Android [TermBot](https://f-droid.org/en/packages/org.sufficientlysecure.termbot/) der OpenKeyChain Support wurde ersetzt, Gründe gab es mal wurden von der Webseite entfernt)
|
||||
|
@ -550,4 +551,4 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGONGPQ79A9WZ7EwM6vMfBKBkgPD2dsjExFoo2UXyd79
|
|||
|
||||
```bash
|
||||
gpg2 --no-armour -o .well-known/openpgpkey/hu/gudx35f8m3ns6jx87gkuda1nmtsb53nd --export B9C35FDD7362F063A8706A2E7AFDB012974B1BB5
|
||||
```
|
||||
```
|
18
content/blog/2023-05-pass.md
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
title: "Passwordmanager mit GPG-Key"
|
||||
date: "2023-05-18"
|
||||
authors:
|
||||
- name: "me"
|
||||
link: "/about/"
|
||||
image: "/images/avatar.png"
|
||||
tags:
|
||||
- "gpg"
|
||||
- "desktop"
|
||||
---
|
||||
|
||||
```
|
||||
pass init 0x7AFDB012974B1BB5
|
||||
pass edit dev/codeberg.org
|
||||
git remote add origin git@codeberg.org:wrenix/password-store.git
|
||||
git push -u origin main
|
||||
```
|
|
@ -1,15 +1,16 @@
|
|||
+++
|
||||
title = "Modernes Logging Konzept"
|
||||
date= "2023-06-22"
|
||||
|
||||
[taxonomies]
|
||||
tags = [
|
||||
"k8s",
|
||||
"kubernetes",
|
||||
"server",
|
||||
"logging"
|
||||
]
|
||||
+++
|
||||
---
|
||||
title: "Modernes Logging Konzept"
|
||||
date: "2023-06-22"
|
||||
authors:
|
||||
- name: "me"
|
||||
link: "/about/"
|
||||
image: "/images/avatar.png"
|
||||
tags:
|
||||
- "k8s"
|
||||
- "kubernetes"
|
||||
- "server"
|
||||
- "logging"
|
||||
---
|
||||
|
||||
- Logging Schema / Format
|
||||
- Collector, Parsen und Transformieren/Filtern
|
||||
|
@ -95,4 +96,4 @@ Es gibt viele Logging Backends, sowohl OpenSource, als auch proritär. In den me
|
|||
|
||||
TODO:
|
||||
- elasticsearch
|
||||
- loki von grafana
|
||||
- loki von grafana
|
75
content/blog/2024-08-23-matrix.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
title: "Die Zukunft von Matrix"
|
||||
date: "2024-08-28"
|
||||
draft: true
|
||||
authors:
|
||||
- name: "me"
|
||||
link: "/about/"
|
||||
image: "/images/avatar.png"
|
||||
tags:
|
||||
- "matrix"
|
||||
- "element"
|
||||
---
|
||||
|
||||
Zunächst, ich bin eine private Person und stehe nicht in Verbindung zu Element oder der Matrix Foundation.
|
||||
Daher kann ich nicht die Zukunft vorhersagen, sondern lediglich die ganzen Alphas und Betas bewerten und technisch hier einmal zusammensetzen.
|
||||
|
||||
Ein weiteres Wort vorweg, Element setzt sehr viel Energie daran, den Grundstock von Element auf eine moderne Technik zu setzen (sogar mit ein kompletten Rewrite der Clients, der gerade Element-X genannt wird).
|
||||
Dieses Vorgehen ist löblich, doch zieht einige Änderungen im Betrieb nach sich und besteht nicht mehr nur aus einem Synapse-Server.
|
||||
|
||||
Die folgenden Artikel werden die einzelnen Komponenten und deren technisches Zusammenspiel einzeln erläutern.
|
||||
Diese Artikel plane ich:
|
||||
* [Element-Call](https://element.io/blog/introducing-native-matrix-voip-with-element-call/) der folgende Komponenten beschreibt:
|
||||
* Element-Web / Element-X
|
||||
* [Element-Call](https://github.com/element-hq/element-call)
|
||||
* [Livekit JWT - Service](https://github.com/element-hq/lk-jwt-service)
|
||||
* [Livekit](https://docs.livekit.io/home/self-hosting/deployment/)
|
||||
* Synapse
|
||||
* [Sliding-Sync](https://github.com/matrix-org/sliding-sync/blob/main/docs/Landing.md): neu Client API, [die 6000x schneller ist](https://element.io/blog/element-x-experience-the-future-of-element/).
|
||||
* [Matrix-Authentification-Server (MAS)](https://matrix-org.github.io/matrix-authentication-service/): neu OIDC-Anbindung
|
||||
|
||||
## Deployments
|
||||
|
||||
Wie ihr bereits sieht, sind es ganz schön viele neue Komponenten,
|
||||
da entsteht schnell die Frage,
|
||||
wie soll man diese alle orchestrieren.
|
||||
Meine berufliche Laufbahn hat mich zu Kubernetes geführt, den Weg der Element auch gerade geht.
|
||||
Doch aus Sicht eines privaten Betreibers bin ich unglücklich von den Ideen:
|
||||
- [Komischer Installer](https://ems-docs.element.io/books/element-on-premise-documentation-lts-2404/page/installing-element-server-suite#bkmrk-kubernetes-deploymen-2)
|
||||
- [Kubernetes-Operatoren](https://github.com/element-hq/ess-starter-edition-core)
|
||||
|
||||
Zu letzteren möchte ich hier ein paar Worte verlieren.
|
||||
|
||||
### Für Applikation in ein Kubernetes-Cluster sollten Operatoren vermieden werden.
|
||||
Hier erst mal eine kurze Begriffserklärung:
|
||||
* Ein **Controller** greift auf der Kubernetes-API zu und "kontrolliert" den Workload.
|
||||
Dabei kann er mittels eines ServiceAccounts und eine entsprechende RBAC-Rolle auf notwendig ConfigMap, Secrets und Deployments (usw.) zugreifen (durch die Rolle kann diese wunderbar in Namespaces eingesperrt werden).
|
||||
* Ein **Operator** ist ein Controller, dessen Logik auf eigene CustomResourceDefinition (CRDs) basieren. Damit ist es eine Cluster-weite Erweiterung der API.
|
||||
|
||||
#### Warum?
|
||||
|
||||
Genau das ist das Problem, in vielen Kontexten möchte man nicht für jede Anwendung (und deren Version) ein ganzen Kubernetes Cluster hinstellen.
|
||||
|
||||
Operatoren verursachen folgende Probleme, die aus meiner Sicht beim Betrieb von Anwendungen benötigt werden:
|
||||
* **Staging**, auch wenn die CRDs apiVersion vorsieht, ist nur im geringen Maße ein Staging möglich.
|
||||
Der Operator muss alle apiVersion unterstützen und daher den aktuellen Stand entsprechen.
|
||||
* **Separierung** ein Operator wird über die CRDs angesprochen, daher muss es für ihn möglich sein, in allen Namespaces Ressourcen verwalten können.
|
||||
Dieses ist mit Vorsicht zu genießen. Immerhin ist es damit fast der ganze Cluster (wie für ihn unnötige Namespace und Pods und Secrets andere Applikation).
|
||||
* **Shared Hosting** ist in Kubernetes generelle möglich,
|
||||
durch die erwähnte Separierung mittels Namespaces und RBAC-Regeln können Benutzer voneinander getrennt (siehe [Rancher-Project](https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/manage-clusters/projects-and-namespaces) oder [Capsule](https://capsule.clastix.io/)) werden.
|
||||
Da ein Operator mindestens für die Installation der CRDs clusterweite Rechte benötigt, schließt man einen solchen Kunden aus.
|
||||
PS: Das Teilen eines Clusters könnte nicht nur innerhalb eines Unternehmens (in Abteilungen oder Teams), sondern auch für private Personen, wenn wir an [Uberspace](https://uberspace.de/) denken.
|
||||
|
||||
Somit ist ein Operator zwar sinnvoll für die Erweiterung aus Infrastruktur-Sicht (Logging, Monitoring usw.), aber nicht aus Anwendungssicht.
|
||||
|
||||
#### Lösung
|
||||
|
||||
Neben den typischen Tools:
|
||||
* Helm-Chart mit Jobs usw. (Meine sind [hier](https://codeberg.org/wrenix/helm-charts))
|
||||
* Helmfile für komplexere Orchestrierung
|
||||
* GitOps Operatoren ala FluxCD oder ArgoCD (gilt ja als Infrastruktur) (Meine sind [hier](https://codeberg.org/wrenix/flux-charts/src/branch/main/mycloud-matrix))
|
||||
|
||||
Hiermit der **Tipp**: Schreibt gerne **Controller**, der mittels Labels ConfigMaps und Secrets sich eure Anwendung konfigurieren lassen.
|
||||
So ist es möglich feingranular, in Namespaces:
|
||||
* Zu Stagen (mehrere verschiede Versionen des Controllers und der Anwendung)
|
||||
* Auf Kubernetes-Ebene Berechtigungen mittels RBAC-Rollen innerhalb eines Namespaces zu beschränken.
|
10
content/blog/_index.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: "Blog"
|
||||
---
|
||||
|
||||
<div style="text-align: center; margin-top: 1em;">
|
||||
{{< hextra/hero-badge link="index.xml" >}}
|
||||
<span>RSS Feed</span>
|
||||
{{< icon name="rss" attributes="height=14" >}}
|
||||
{{< /hextra/hero-badge >}}
|
||||
</div>
|
10
content/docs/_index.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: "Docs"
|
||||
description: "All the documentations from WrenIX projects"
|
||||
sort_by: "weight"
|
||||
weight: 1
|
||||
---
|
||||
|
||||
Kubernetes:
|
||||
* [Helm Charts](helm-charts)
|
||||
* [FluxCD (Charts)](flux-charts)
|
|
@ -1,3 +0,0 @@
|
|||
+++
|
||||
render = false
|
||||
+++
|
|
@ -1,6 +0,0 @@
|
|||
+++
|
||||
title = "About Me"
|
||||
path = "en/about"
|
||||
+++
|
||||
|
||||
# WrenIX
|
|
@ -1,6 +0,0 @@
|
|||
+++
|
||||
title = "Archive"
|
||||
template = "archive.html"
|
||||
path = "en/archive"
|
||||
+++
|
||||
# Archive
|
|
@ -1,6 +0,0 @@
|
|||
+++
|
||||
title = "Archiv"
|
||||
template = "archive.html"
|
||||
path = "archive"
|
||||
+++
|
||||
# Archiv
|
2
data/icons.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
rss: <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-rss"><path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle></svg>
|
||||
git: <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-git-branch"><line x1="6" y1="3" x2="6" y2="15"></line><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle><path d="M18 9a9 9 0 0 1-9 9"></path></svg>
|
11
go.mod
Normal file
|
@ -0,0 +1,11 @@
|
|||
module wrenix.eu
|
||||
|
||||
go 1.23.2
|
||||
|
||||
require (
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241111111801-09752b52215b // indirect
|
||||
codeberg.org/wrenix/helm-charts v0.0.0-20241108144325-1d57a623fc3e // indirect
|
||||
git.chaos.fyi/wrenix/flux-charts v0.0.0-20250401222947-c5bf68c60cbd // indirect
|
||||
git.chaos.fyi/wrenix/helm-charts v0.0.0-20250404084343-83eb4bb9252b // indirect
|
||||
github.com/imfing/hextra v0.9.7 // indirect
|
||||
)
|
18
go.sum
Normal file
|
@ -0,0 +1,18 @@
|
|||
codeberg.org/wrenix/flux-charts v0.0.0-20241108180735-fe00364918d9 h1:phkjKboijEztsFb/UHbETj7DWwBYmFAbaHLyW/uo83c=
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241108180735-fe00364918d9/go.mod h1:qmbBEgAQOiY/2M4IJ0LZaGpbV1JGxlVoDiiuFs7kOqI=
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241111111240-1a731115e995 h1:eVSALLuLPt7K55PUSCPhxWtPRMZkOiEe+BF5izRqNQU=
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241111111240-1a731115e995/go.mod h1:qmbBEgAQOiY/2M4IJ0LZaGpbV1JGxlVoDiiuFs7kOqI=
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241111111801-09752b52215b h1:bVA6zx9JG7+NYP5ymOqQq6ZgXs8IKjvCR37YNCtPuEQ=
|
||||
codeberg.org/wrenix/flux-charts v0.0.0-20241111111801-09752b52215b/go.mod h1:qmbBEgAQOiY/2M4IJ0LZaGpbV1JGxlVoDiiuFs7kOqI=
|
||||
codeberg.org/wrenix/helm-charts v0.0.0-20241106223712-cdddf6b09b90 h1:s7Q3qnQfADdmPjsC4El3llNvLd4jo0h7Einq1c5i7nk=
|
||||
codeberg.org/wrenix/helm-charts v0.0.0-20241106223712-cdddf6b09b90/go.mod h1:Nd4pJ7oRNZvbFLxpC7qCQIHK3c0qf59wjq4ajMdJCjg=
|
||||
codeberg.org/wrenix/helm-charts v0.0.0-20241108144325-1d57a623fc3e h1:Vr3B2r+j0Ry6WdXdlzZz+PCbjVBW5BS9qRf1LiX5uA4=
|
||||
codeberg.org/wrenix/helm-charts v0.0.0-20241108144325-1d57a623fc3e/go.mod h1:Nd4pJ7oRNZvbFLxpC7qCQIHK3c0qf59wjq4ajMdJCjg=
|
||||
git.chaos.fyi/wrenix/flux-charts v0.0.0-20250401222947-c5bf68c60cbd h1:X2MHLIDWDShwtmbTuWCXjWOae10JkiaxSc3x8El3KOs=
|
||||
git.chaos.fyi/wrenix/flux-charts v0.0.0-20250401222947-c5bf68c60cbd/go.mod h1:BYSJakg99gvgKPQrY1c/QwLKz+zJ8sMtED0gRc+4bIE=
|
||||
git.chaos.fyi/wrenix/helm-charts v0.0.0-20250404084343-83eb4bb9252b h1:FN9OZiGFwGisUC91+51IsA/l8zb1AvjzjDqR5ZTS1bk=
|
||||
git.chaos.fyi/wrenix/helm-charts v0.0.0-20250404084343-83eb4bb9252b/go.mod h1:yQ55FaIwEKAdsKKKkssrXjEO88V6S7tp00fT/UVSadU=
|
||||
github.com/imfing/hextra v0.8.6 h1:fpOqzcUs26Lc/ZzowYSBcnpe00d/aZw4HhiHP7ycSks=
|
||||
github.com/imfing/hextra v0.8.6/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
|
||||
github.com/imfing/hextra v0.9.7 h1:Zg5n24us36Bn/S/5mEUPkRW6uwE6vHHEqWSgN0bPXaM=
|
||||
github.com/imfing/hextra v0.9.7/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=
|
111
hugo.yaml
Normal file
|
@ -0,0 +1,111 @@
|
|||
baseURL: https://wrenix.eu/
|
||||
languageCode: de-de
|
||||
title: WrenIX
|
||||
|
||||
enableRobotsTXT: true
|
||||
enableGitInfo: true
|
||||
|
||||
defaultContentLanguage: de
|
||||
languages:
|
||||
de:
|
||||
languageName: Deutsch
|
||||
en:
|
||||
languageName: English
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
highlight:
|
||||
noClasses: false
|
||||
|
||||
module:
|
||||
mounts:
|
||||
- source: content
|
||||
target: content
|
||||
imports:
|
||||
- path: github.com/imfing/hextra
|
||||
- path: "git.chaos.fyi/wrenix/helm-charts"
|
||||
mounts:
|
||||
- source: "README.md"
|
||||
target: content/docs/helm-charts/_index.md
|
||||
- source: "."
|
||||
target: "content/docs/helm-charts"
|
||||
includeFiles: [ "*/README.md" ]
|
||||
- path: "git.chaos.fyi/wrenix/flux-charts"
|
||||
mounts:
|
||||
- source: "README.md"
|
||||
target: content/docs/flux-charts/_index.md
|
||||
# extra docs (e.g. for flux, infra and mycloud)
|
||||
- source: "docs"
|
||||
target: content/docs/flux-charts/
|
||||
includeFiles:
|
||||
- "**/*.md"
|
||||
# base
|
||||
- source: "base/README.md"
|
||||
target: content/docs/flux-charts/base/README.md
|
||||
- source: "base/docs"
|
||||
target: content/docs/flux-charts/base/
|
||||
includeFiles:
|
||||
- "*.md"
|
||||
# all components
|
||||
- source: "."
|
||||
target: content/docs/flux-charts/components/
|
||||
includeFiles:
|
||||
- "_index.md"
|
||||
- "infra-*/*.md"
|
||||
- "mycloud-*/*.md"
|
||||
|
||||
enableInlineShortcodes: true
|
||||
|
||||
menu:
|
||||
main:
|
||||
- name: Blog
|
||||
pageRef: /blog
|
||||
weight: 1
|
||||
- name: Docs
|
||||
pageRef: /docs
|
||||
weight: 2
|
||||
- name: About Me
|
||||
pageRef: /about
|
||||
weight: 3
|
||||
- name: Search
|
||||
weight: 4
|
||||
params:
|
||||
type: search
|
||||
- name: RSS
|
||||
weight: 5
|
||||
pageRef: /blog/index.xml
|
||||
params:
|
||||
icon: rss
|
||||
- name: Mastodon
|
||||
weight: 6
|
||||
url: "https://social.chaos.fyi/@wrenix"
|
||||
params:
|
||||
icon: mastodon
|
||||
- name: git
|
||||
weight: 7
|
||||
url: "https://git.chaos.fyi/wrenix"
|
||||
params:
|
||||
icon: git
|
||||
|
||||
params:
|
||||
navbar:
|
||||
displayTitle: true
|
||||
displayLogo: true
|
||||
logo:
|
||||
path: /images/avatar.png
|
||||
link: /blog
|
||||
|
||||
footer:
|
||||
enable: true
|
||||
displayCopyright: false
|
||||
displayPoweredBy: false
|
||||
|
||||
editURL:
|
||||
enable: true
|
||||
base: "https://git.chaos.fyi/wrenix/wrenix.eu/_edit/main/content"
|
||||
|
||||
blog:
|
||||
list:
|
||||
displayTags: true
|
1
i18n/de.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
editThisPage: "Diese Seite bearbeiten →"
|
1
i18n/en.yaml
Normal file
|
@ -0,0 +1 @@
|
|||
editThisPage: "Edit this page →"
|
38
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,38 @@
|
|||
{{- $enableFooterSwitches := .Scratch.Get "enableFooterSwitches" | default false -}}
|
||||
{{- $displayThemeToggle := site.Params.theme.displayToggle | default true -}}
|
||||
|
||||
{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}}
|
||||
{{- $poweredBy := (T "poweredBy") | default "Powered by Hextra" -}}
|
||||
|
||||
{{- $footerWidth := "hx-max-w-screen-xl" -}}
|
||||
{{- with .Site.Params.footer.width -}}
|
||||
{{ if eq . "wide" -}}
|
||||
{{ $footerWidth = "hx-max-w-[90rem]" -}}
|
||||
{{ else if eq . "full" -}}
|
||||
{{ $footerWidth = "max-w-full" -}}
|
||||
{{ end -}}
|
||||
{{- end -}}
|
||||
|
||||
|
||||
<footer class="hextra-footer hx-bg-gray-100 hx-pb-[env(safe-area-inset-bottom)] dark:hx-bg-neutral-900 print:hx-bg-transparent">
|
||||
{{- if $enableFooterSwitches -}}
|
||||
<div class="hx-mx-auto hx-flex hx-gap-2 hx-py-2 hx-px-4 {{ $footerWidth }}">
|
||||
{{- partial "language-switch.html" (dict "context" .) -}}
|
||||
{{- with $displayThemeToggle }}{{ partial "theme-toggle.html" }}{{ end -}}
|
||||
</div>
|
||||
{{- if or hugo.IsMultilingual $displayThemeToggle -}}
|
||||
<hr class="dark:hx-border-neutral-800" />
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</footer>
|
||||
|
||||
{{- define "theme-credit" -}}
|
||||
<a class="hx-flex hx-text-sm hx-items-center hx-gap-1 hx-text-current" target="_blank" rel="noopener noreferrer" title="Hextra GitHub Homepage" href="https://github.com/imfing/hextra">
|
||||
<span>
|
||||
{{- . | markdownify -}}
|
||||
{{- if strings.Contains . "Hextra" -}}
|
||||
{{- partial "utils/icon.html" (dict "name" "hextra" "attributes" `height=1em class="hx-inline-block ltr:hx-ml-1 rtl:hx-mr-1 hx-align-[-2.5px]"`) -}}
|
||||
{{- end -}}
|
||||
</span>
|
||||
</a>
|
||||
{{- end -}}
|
BIN
static/android-chrome-192x192.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
static/android-chrome-512x512.png
Normal file
After Width: | Height: | Size: 132 KiB |
BIN
static/apple-touch-icon.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/favicon-16x16.png
Normal file
After Width: | Height: | Size: 597 B |
BIN
static/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
3
static/favicon-dark.svg
Normal file
After Width: | Height: | Size: 117 KiB |
BIN
static/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
3
static/favicon.svg
Normal file
After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 45 KiB |
1
static/site.webmanifest
Normal file
|
@ -0,0 +1 @@
|
|||
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
|
|
@ -1 +0,0 @@
|
|||
themes/terminimal/templates
|
0
themes/.keep
Normal file
|
@ -1 +0,0 @@
|
|||
Subproject commit 910e50b824c898fc9641ab7910ce4a984e97040f
|