From 8a8ce7206d5bdb73fc84d35233abdd949be67e4c Mon Sep 17 00:00:00 2001
From: lilly
Date: Tue, 19 May 2026 16:27:59 +0200
Subject: [PATCH 1/5] add infrastructure-authorized-keys to lists host
---
inventories/chaosknoten/hosts.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/inventories/chaosknoten/hosts.yaml b/inventories/chaosknoten/hosts.yaml
index 9dab323..c737f34 100644
--- a/inventories/chaosknoten/hosts.yaml
+++ b/inventories/chaosknoten/hosts.yaml
@@ -249,6 +249,7 @@ infrastructure_authorized_keys_hosts:
www2:
www3:
auth-dns:
+ lists:
wiki_hosts:
hosts:
eh22-wiki:
From a93d22fb053ea90e4e81ee8aff84a0ded19f40e5 Mon Sep 17 00:00:00 2001
From: June
Date: Mon, 18 May 2026 21:15:45 +0200
Subject: [PATCH 2/5] add configuration for infra-docs and infra-docs staging
---
resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone | 2 ++
.../chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf | 2 ++
resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf | 2 ++
3 files changed, 6 insertions(+)
diff --git a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone
index a9c4851..8c30fb4 100644
--- a/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone
+++ b/resources/chaosknoten/auth-dns/zones/hamburg.ccc.de.zone
@@ -287,6 +287,8 @@ spaceapiccc IN CNAME public-reverse-proxy
acmedns IN CNAME public-reverse-proxy
cpuccc IN CNAME public-reverse-proxy
did IN CNAME public-reverse-proxy
+infra-docs IN CNAME public-reverse-proxy
+staging.infra-docs IN CNAME public-reverse-proxy
auth.acmedns IN NS acmedns.hosts.hamburg.ccc.de.
diff --git a/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf b/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf
index e8b8c8e..304072b 100644
--- a/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf
+++ b/resources/chaosknoten/public-reverse-proxy/nginx/acme_challenge.conf
@@ -85,6 +85,8 @@ map $host $upstream_acme_challenge_host {
diday.org public-web-static.hosts.hamburg.ccc.de:31820;
docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:31820;
staging.docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:31820;
+ infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820;
+ staging.infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:31820;
default "";
}
diff --git a/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf b/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf
index 0a004c9..5e89aa9 100644
--- a/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf
+++ b/resources/chaosknoten/public-reverse-proxy/nginx/nginx.conf
@@ -108,6 +108,8 @@ stream {
*.staging.diday.org public-web-static.hosts.hamburg.ccc.de:8443;
docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:8443;
staging.docs.c3voc.de public-web-static.hosts.hamburg.ccc.de:8443;
+ infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443;
+ staging.infra-docs.hamburg.ccc.de public-web-static.hosts.hamburg.ccc.de:8443;
}
server {
From 31cc60c648546e1e97a892d9e20c24b0a3694288 Mon Sep 17 00:00:00 2001
From: June
Date: Mon, 18 May 2026 23:09:43 +0200
Subject: [PATCH 3/5] docs: add mkdocs config and CI for building infra-docs
website
Heavily inspired by: https://forgejo.c3voc.de/voc/av-docs
---
.forgejo/workflows/cleanup-docs.yaml | 24 +++++++++
.forgejo/workflows/deploy-docs.yaml | 75 ++++++++++++++++++++++++++++
docs_requirements.txt | 2 +
mkdocs.yml | 19 +++++++
4 files changed, 120 insertions(+)
create mode 100644 .forgejo/workflows/cleanup-docs.yaml
create mode 100644 .forgejo/workflows/deploy-docs.yaml
create mode 100644 docs_requirements.txt
create mode 100644 mkdocs.yml
diff --git a/.forgejo/workflows/cleanup-docs.yaml b/.forgejo/workflows/cleanup-docs.yaml
new file mode 100644
index 0000000..df56258
--- /dev/null
+++ b/.forgejo/workflows/cleanup-docs.yaml
@@ -0,0 +1,24 @@
+on:
+ pull_request:
+ types:
+ - closed
+
+jobs:
+ cleanup-staging:
+ runs-on: docker
+ container:
+ image: code.forgejo.org/oci/node:22-bookworm
+ steps:
+ - name: Pipeline info PR
+ run: |
+ echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
+
+ - name: Staging Deployment - Prepare keys
+ run: |
+ echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
+ chmod 400 deploykey.priv
+ echo "${{ vars.SSH_KNOWN_HOSTS }}" > ./known_hosts
+
+ - name: Staging Deployment - Remove PR from staging
+ run: |
+ ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts' infra-docs-deploy@public-web-static.hosts.hamburg.ccc.de -t "rm -r /var/www/staging.infra-docs.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/"
diff --git a/.forgejo/workflows/deploy-docs.yaml b/.forgejo/workflows/deploy-docs.yaml
new file mode 100644
index 0000000..537d983
--- /dev/null
+++ b/.forgejo/workflows/deploy-docs.yaml
@@ -0,0 +1,75 @@
+on:
+ push:
+ branches:
+ - main
+ pull_request:
+
+env:
+ TZ: Europe/Berlin
+
+jobs:
+ build:
+ runs-on: docker
+ container:
+ image: docker.io/library/python:3.14-trixie
+ steps:
+ - name: Pipeline info
+ run: |
+ echo "Run triggered by ${{ github.event_name }} (${{ github.event.action }}) on ref ${{ github.ref_name }}"
+
+ - name: Install packages
+ run: |
+ apt update
+ apt -y install nodejs git rsync openssh-client
+ pip install --upgrade pip
+
+ - uses: actions/checkout@v6
+
+ - name: Install Python packages
+ run: |
+ pip install -r docs_requirements.txt
+
+ - name: Build website - prod
+ if: github.event_name != 'pull_request'
+ run: |
+ mkdocs build
+
+ - name: Build website - staging
+ if: github.event_name == 'pull_request'
+ run: |
+ sed -i "s#site_url: https://infra-docs.hamburg.ccc.de#site_url: https://staging.infra-docs.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/#" mkdocs.yml
+ mkdocs build
+
+ - name: Deploy - Prepare keys
+ run: |
+ echo "${{ secrets.SSH_DEPLOY_KEY }}" > deploykey.priv
+ chmod 400 deploykey.priv
+ echo "${{ vars.SSH_KNOWN_HOSTS }}" > ./known_hosts
+
+ - name: Deploy - Upload PR to staging
+ if: github.event_name == 'pull_request'
+ run: |
+ echo "Deploying to staging.infra-docs.hamburg.ccc.de/pr${{ github.event.pull_request.number }}"
+ rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" site/ infra-docs-deploy@public-web-static.hosts.hamburg.ccc.de:/var/www/staging.infra-docs.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/
+
+ - name: Deploy - Add comment to PR with staging URL
+ if: github.event_name == 'pull_request' && github.event.action == 'opened'
+ run: |
+ curl \
+ -X POST \
+ ${{ github.event.pull_request.base.repo.url }}/issues/${{ github.event.pull_request.number }}/comments \
+ -H "Content-Type: application/json" \
+ -H "Authorization: token $FORGEJO_TOKEN" \
+ --data '{ "body": "You can view your changes at https://staging.infra-docs.hamburg.ccc.de/pr${{ github.event.pull_request.number }}/" }'
+
+ - name: Deploy - Upload to prod
+ if: github.event_name != 'pull_request'
+ run: |
+ rsync -v -r --delete -e "ssh -i deploykey.priv -o 'UserKnownHostsFile ./known_hosts'" site/ infra-docs-deploy@public-web-static.hosts.hamburg.ccc.de:/var/www/infra-docs.hamburg.ccc.de/
+
+ - uses: actions/upload-artifact@v3
+ if: github.event_name == 'pull_request'
+ with:
+ name: docs-build
+ path: site/
+ retention-days: 3
diff --git a/docs_requirements.txt b/docs_requirements.txt
new file mode 100644
index 0000000..f6167f1
--- /dev/null
+++ b/docs_requirements.txt
@@ -0,0 +1,2 @@
+mkdocs
+mkdocs-shadcn
diff --git a/mkdocs.yml b/mkdocs.yml
new file mode 100644
index 0000000..c258e2e
--- /dev/null
+++ b/mkdocs.yml
@@ -0,0 +1,19 @@
+site_name: CCCHH Infrastructure Documentation
+site_url: https://infra-docs.hamburg.ccc.de
+repo_url: https://git.hamburg.ccc.de/CCCHH/ansible-infra
+copyright: MIT
+markdown_extensions:
+ - smarty
+ - admonition
+ - attr_list
+
+theme:
+ name: shadcn
+ show_title: true
+ show_stargazers: false
+ pygments_style:
+ light: shadcn-light
+ dark: github-dark
+ icon: oui:documentation
+ topbar_sections: false
+ show_datetime: false
From abcc14471139a061d41ad6dcf8e4d3a6acf0ca9e Mon Sep 17 00:00:00 2001
From: June
Date: Mon, 18 May 2026 21:53:38 +0200
Subject: [PATCH 4/5] docs: add index page
---
docs/index.md | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 docs/index.md
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..e390c5e
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,3 @@
+# CCCHH Infrastructure Documentation
+
+Home for CCCHH infrastructure documentation.
From 197b9c297c84cdd57d262a307d5ce058b515498e Mon Sep 17 00:00:00 2001
From: June
Date: Tue, 19 May 2026 01:11:34 +0200
Subject: [PATCH 5/5] docs: fix code blocks overflowing and add syntax
highlighting
Without these options code blocks would overflow. See:
https://github.com/asiffer/mkdocs-shadcn/issues/57
And it also provides nice syntax highlighting.
---
docs_requirements.txt | 1 +
mkdocs.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/docs_requirements.txt b/docs_requirements.txt
index f6167f1..ddabb05 100644
--- a/docs_requirements.txt
+++ b/docs_requirements.txt
@@ -1,2 +1,3 @@
mkdocs
mkdocs-shadcn
+pygments
diff --git a/mkdocs.yml b/mkdocs.yml
index c258e2e..5a8af7b 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -6,6 +6,7 @@ markdown_extensions:
- smarty
- admonition
- attr_list
+ - codehilite
theme:
name: shadcn