Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
816ee9d110 | ||
| b03e2039d1 | |||
| 648fb319b1 | |||
|
|
bac794bdc4 | ||
| 5be099fe02 | |||
| e13f3e30e2 | |||
| ef4ff67818 | |||
| 32eacf8df7 | |||
|
|
69a49f914a | ||
| 2221cbb099 | |||
| 82736ec2a9 | |||
|
|
97b18372b5 | ||
| 6a5129edcc | |||
| 33b64b0122 | |||
|
e331eb2fb6
|
|||
|
|
cc567738de | ||
| 82187855d8 | |||
| 28910c8ee5 | |||
|
9bbdd65be9
|
|||
| 79b2f0d1c8 |
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24.14.0
|
||||
node-version: 24.14.1
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24.14.0
|
||||
node-version: 24.14.1
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v6
|
||||
with:
|
||||
node-version: 24.14.0
|
||||
node-version: 24.14.1
|
||||
|
||||
- name: Set up Bun
|
||||
uses: oven-sh/setup-bun@v2
|
||||
|
||||
39
CHANGELOG.md
39
CHANGELOG.md
@@ -1,3 +1,42 @@
|
||||
# [0.13.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.12.0...0.13.0) (2026-03-31)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* documentation on vault ssh ([648fb31](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/648fb319b192ecd7826fe03599f7a0ee55a419ea))
|
||||
|
||||
# [0.12.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.11.0...0.12.0) (2026-03-30)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add more apps ([e13f3e3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/e13f3e30e2a73a712008f65cc5932cbe1e71adb2))
|
||||
* add more apps ([ef4ff67](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/ef4ff67818d2758e21b9f0076519ca9221f74bb0))
|
||||
* add more apps ([32eacf8](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/32eacf8df7cd07eaf33a46d9df88e22f22d0cbf6))
|
||||
|
||||
# [0.11.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.10.0...0.11.0) (2026-03-27)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add more apps ([2221cbb](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/2221cbb0993595d7b8641fa4ffbc2fe874cdff39))
|
||||
* add more apps ([82736ec](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/82736ec2a95db97abc7337ec1849dbb97a0fca5e))
|
||||
|
||||
# [0.10.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.9.0...0.10.0) (2026-03-26)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add more apps ([33b64b0](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/33b64b0122a8ff734e632d0fdcaf92a474e1d631))
|
||||
|
||||
# [0.9.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.8.0...0.9.0) (2026-03-26)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add more apps ([28910c8](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/28910c8ee57a2436cbe1ca01e95b85d8600f360e))
|
||||
* collapse apps by default, too many ([79b2f0d](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/79b2f0d1c89da74693ffddd78460197cd3d91bd5))
|
||||
|
||||
# [0.8.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.7.0...0.8.0) (2026-03-25)
|
||||
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ export default defineConfig({
|
||||
},
|
||||
{
|
||||
label: "Applications",
|
||||
collapsed: true,
|
||||
autogenerate: { directory: "applications" },
|
||||
},
|
||||
],
|
||||
|
||||
4
bun.lock
4
bun.lock
@@ -35,7 +35,7 @@
|
||||
"prettier-plugin-tailwindcss": "^0.7.2",
|
||||
"semantic-release": "^25.0.3",
|
||||
"semantic-release-export-data": "^1.2.0",
|
||||
"typescript": "^5.9.3",
|
||||
"typescript": "^6.0.0",
|
||||
"typescript-eslint": "^8.57.0",
|
||||
},
|
||||
},
|
||||
@@ -1623,7 +1623,7 @@
|
||||
|
||||
"type-fest": ["type-fest@0.10.0", "", {}, "sha512-EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw=="],
|
||||
|
||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||
"typescript": ["typescript@6.0.2", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="],
|
||||
|
||||
"typescript-eslint": ["typescript-eslint@8.57.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.57.0", "@typescript-eslint/parser": "8.57.0", "@typescript-eslint/typescript-estree": "8.57.0", "@typescript-eslint/utils": "8.57.0" }, "peerDependencies": { "eslint": "10.0.3", "typescript": "5.9.2" } }, "sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA=="],
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "site-documentation",
|
||||
"type": "module",
|
||||
"version": "0.8.0",
|
||||
"version": "0.13.0",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
@@ -42,7 +42,7 @@
|
||||
"prettier-plugin-tailwindcss": "^0.7.2",
|
||||
"semantic-release": "^25.0.3",
|
||||
"semantic-release-export-data": "^1.2.0",
|
||||
"typescript": "^5.9.3",
|
||||
"typescript": "^6.0.0",
|
||||
"typescript-eslint": "^8.57.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ description: CoreDNS is a DNS server/forwarder, written in Go, that chains plugi
|
||||
hero:
|
||||
tagline: CoreDNS is a DNS server/forwarder, written in Go, that chains plugins.
|
||||
image:
|
||||
file: https://github.com/coredns/coredns.io/blob/master/static/images/favicon.png
|
||||
file: https://raw.githubusercontent.com/coredns/coredns.io/refs/heads/master/static/images/favicon.png
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/coredns/coredns
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Democratic CSI
|
||||
description: Democratic CSI implements the csi (container storage interface) spec providing storage for various container orchestration systems.
|
||||
hero:
|
||||
tagline: Democratic CSI implements the csi (container storage interface) spec providing storage for various container orchestration systems.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/democratic-csi/democratic-csi
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/democratic-csi-synology-iscsi
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/descheduler.mdx
Normal file
15
src/content/docs/applications/descheduler.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Descheduler
|
||||
description: Descheduler, based on its policy, finds pods that can be moved and evicts them.
|
||||
hero:
|
||||
tagline: Descheduler, based on its policy, finds pods that can be moved and evicts them.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/kubernetes-sigs/descheduler
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/descheduler
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/directus.mdx
Normal file
15
src/content/docs/applications/directus.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Directus
|
||||
description: Directus is a real-time API and App dashboard for managing SQL database content.
|
||||
hero:
|
||||
tagline: Directus is a real-time API and App dashboard for managing SQL database content.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/directus.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/directus/directus
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/directus
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/elastic-operator.mdx
Normal file
15
src/content/docs/applications/elastic-operator.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Elastic Cloud on Kubernetes
|
||||
description: Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, Logstash, Elastic AutoOps Agent, and Elastic Package Registry on Kubernetes based on the operator pattern.
|
||||
hero:
|
||||
tagline: Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, Logstash, Elastic AutoOps Agent, and Elastic Package Registry on Kubernetes based on the operator pattern.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/elastic.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/elastic/cloud-on-k8s
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/elastic-operator
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/element-web.mdx
Normal file
15
src/content/docs/applications/element-web.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Element Web
|
||||
description: Element (formerly known as Vector and Riot) is a Matrix web & desktop client built using the Matrix JS SDK.
|
||||
hero:
|
||||
tagline: Element (formerly known as Vector and Riot) is a Matrix web & desktop client built using the Matrix JS SDK.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/element.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/element-hq/element-web
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/element-web
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/eraser.mdx
Normal file
15
src/content/docs/applications/eraser.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Eraser
|
||||
description: Eraser helps Kubernetes admins remove a list of non-running images from all Kubernetes nodes in a cluster.
|
||||
hero:
|
||||
tagline: Eraser helps Kubernetes admins remove a list of non-running images from all Kubernetes nodes in a cluster.
|
||||
image:
|
||||
file: https://raw.githubusercontent.com/eraser-dev/eraser/20576a24c512feb83c26ed867353d4143717d798/docs/static/img/eraser.svg
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/eraser-dev/eraser
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/eraser
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/excalidraw.mdx
Normal file
15
src/content/docs/applications/excalidraw.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Excalidraw
|
||||
description: Excalidraw is an open source virtual hand-drawn style whiteboard.
|
||||
hero:
|
||||
tagline: Excalidraw is an open source virtual hand-drawn style whiteboard.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/excalidraw.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/excalidraw/excalidraw
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/excalidraw
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/external-dns.mdx
Normal file
15
src/content/docs/applications/external-dns.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: ExternalDNS
|
||||
description: ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
|
||||
hero:
|
||||
tagline: ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/kubernetes-sigs/external-dns
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/external-dns
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/external-secrets.mdx
Normal file
15
src/content/docs/applications/external-secrets.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: External Secrets Operator
|
||||
description: External Secrets Operator is a Kubernetes operator that integrates external secret management systems.
|
||||
hero:
|
||||
tagline: External Secrets Operator is a Kubernetes operator that integrates external secret management systems.
|
||||
image:
|
||||
file: https://raw.githubusercontent.com/external-secrets/external-secrets/a16e618c8607b599a2360dd08725015e78cafa1a/assets/eso-round-logo.svg
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/external-secrets/external-secrets
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/external-secrets
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/foldergram.mdx
Normal file
15
src/content/docs/applications/foldergram.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Foldergram
|
||||
description: Local-only photo and video gallery for folders, with an Instagram-inspired browsing pattern.
|
||||
hero:
|
||||
tagline: Local-only photo and video gallery for folders, with an Instagram-inspired browsing pattern.
|
||||
image:
|
||||
file: https://raw.githubusercontent.com/foldergram/foldergram/263f2c2c48e4362bf46fc349040d6376737d512b/client/public/favicon.svg
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/foldergram/foldergram
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/foldergram
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/freshrss.mdx
Normal file
15
src/content/docs/applications/freshrss.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: FreshRSS
|
||||
description: FreshRSS is a self-hosted RSS feed aggregator. It is lightweight, easy to work with, powerful, customizable, and has been translated into many languages.
|
||||
hero:
|
||||
tagline: FreshRSS is a self-hosted RSS feed aggregator. It is lightweight, easy to work with, powerful, customizable, and has been translated into many languages.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/freshrss.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/FreshRSS/FreshRSS
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/freshrss
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/garage.mdx
Normal file
15
src/content/docs/applications/garage.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Garage
|
||||
description: Garage is an S3-compatible distributed object storage service designed for self-hosting at a small-to-medium scale.
|
||||
hero:
|
||||
tagline: Garage is an S3-compatible distributed object storage service designed for self-hosting at a small-to-medium scale.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/garage.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://git.deuxfleurs.fr/Deuxfleurs/garage
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/garage
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/gatus.mdx
Normal file
15
src/content/docs/applications/gatus.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Gatus
|
||||
description: Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others.
|
||||
hero:
|
||||
tagline: Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gatus.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/TwiN/gatus
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/gatus
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/generic-device-plugin.mdx
Normal file
15
src/content/docs/applications/generic-device-plugin.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Generic Device Plugin
|
||||
description: Generic Device Plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods.
|
||||
hero:
|
||||
tagline: Generic Device Plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/squat/generic-device-plugin
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/generic-device-plugin
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/gitea.mdx
Normal file
15
src/content/docs/applications/gitea.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Gitea
|
||||
description: Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
|
||||
hero:
|
||||
tagline: Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gitea.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/go-gitea/gitea
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/gitea
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/grafana-operator.mdx
Normal file
15
src/content/docs/applications/grafana-operator.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Grafana Operator
|
||||
description: Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes.
|
||||
hero:
|
||||
tagline: Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/grafana.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/grafana/grafana-operator
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/grafana-operator
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/harbor.mdx
Normal file
15
src/content/docs/applications/harbor.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Harbor
|
||||
description: Harbor is an open source trusted cloud native registry project that stores, signs, and scans content.
|
||||
hero:
|
||||
tagline: Harbor is an open source trusted cloud native registry project that stores, signs, and scans content.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/harbor.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/goharbor/harbor
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/harbor
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/headlamp.mdx
Normal file
15
src/content/docs/applications/headlamp.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Headlamp
|
||||
description: Headlamp is an easy-to-use and extensible Kubernetes web UI and was created to blend the traditional feature set of other web UIs/dashboards with added functionality.
|
||||
hero:
|
||||
tagline: Headlamp is an easy-to-use and extensible Kubernetes web UI and was created to blend the traditional feature set of other web UIs/dashboards with added functionality.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/headlamp.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/kubernetes-sigs/headlamp
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/headlamp
|
||||
icon: right-arrow
|
||||
---
|
||||
15
src/content/docs/applications/home-assistant.mdx
Normal file
15
src/content/docs/applications/home-assistant.mdx
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
title: Home Assistant
|
||||
description: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
|
||||
hero:
|
||||
tagline: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
|
||||
image:
|
||||
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/home-assistant.webp
|
||||
actions:
|
||||
- text: Source
|
||||
link: https://github.com/home-assistant/core
|
||||
icon: right-arrow
|
||||
- text: Deployment Chart
|
||||
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/home-assistant
|
||||
icon: right-arrow
|
||||
---
|
||||
105
src/content/docs/guides/vault-ssh-ca.md
Normal file
105
src/content/docs/guides/vault-ssh-ca.md
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
title: Vault SSH Certificate Authority
|
||||
description: Steps followed to enable using Vault as a CA for ssh login
|
||||
---
|
||||
|
||||
# Setup
|
||||
|
||||
[Reference Vault Documentation](https://developer.hashicorp.com/vault/docs/secrets/ssh/signed-ssh-certificates#host-key-signing)
|
||||
|
||||
I have set the documenation to use my own defaults and configuration. This also assumes a running and active Vault instance.
|
||||
|
||||
## Enable the SSH CA
|
||||
|
||||
I followed the defaults mostly in the docs, reference the above link for details. Use either root or a role with permissions for the endpoints.
|
||||
|
||||
Start with enabling the mount.
|
||||
```bash
|
||||
vault secrets enable -path=ssh-client-signer ssh
|
||||
```
|
||||
|
||||
Generate a key. This will be used only for signing and not for client authentication. Keep it in a secure location, rename the path the key will be written to.
|
||||
```bash
|
||||
ssh-keygen -t rsa -C "alexanderlebens@gmail.com"
|
||||
```
|
||||
|
||||
Add the above signing key.
|
||||
```bash
|
||||
vault write ssh-client-signer/config/ca private_key="..." public_key="..."
|
||||
```
|
||||
|
||||
## Create Client Role and Key
|
||||
|
||||
Once the above is complete, create a role to use to sign your own client cert. I used my common username and configurations. This can also be done in the Vault UI.
|
||||
```bash
|
||||
vault write ssh-client-signer/roles/alexlebens -<<"EOH"
|
||||
{
|
||||
"algorithm_signer": "rsa-sha2-256",
|
||||
"allow_user_certificates": true,
|
||||
"allowed_users": "*",
|
||||
"allowed_extensions": "permit-pty,permit-port-forwarding",
|
||||
"default_extensions": {
|
||||
"permit-pty": ""
|
||||
},
|
||||
"key_type": "ca",
|
||||
"default_user": "alexlebens",
|
||||
"ttl": "30m0s"
|
||||
}
|
||||
EOH
|
||||
```
|
||||
|
||||
## Create Client Key
|
||||
|
||||
Generate the ssh key to use to authenticate to your hosts. This is the one to keep in ~/.ssh.
|
||||
```bash
|
||||
ssh-keygen -t rsa -C "alexanderlebens@gmail.com"
|
||||
```
|
||||
|
||||
## Configure SSH to use the Key and Cert
|
||||
|
||||
SSH will defailt to using the cert when using the matching name "id_rsa_host-cert.pub" as shown in the renewal certificate section. Use the principal as signed by Vault as the User and set the IdentityFile to the Key as generated above.
|
||||
```
|
||||
Host ps08rp
|
||||
Hostname 10.232.1.51
|
||||
User alexlebens
|
||||
IdentityFile ~/.ssh/id_rsa_host
|
||||
```
|
||||
|
||||
# Operations
|
||||
|
||||
## Prepare Target Host
|
||||
|
||||
Download the public cert from the endpoint.
|
||||
```bash
|
||||
curl -o /etc/ssh/trusted-user-ca-keys.pem https://vault.alexlebens.net/v1/ssh-client-signer/public_key
|
||||
```
|
||||
|
||||
Then add that file to the sshd config.
|
||||
```
|
||||
TrustedUserCAKeys /etc/ssh/trusted-user-ca-keys.pem
|
||||
```
|
||||
|
||||
### Automation
|
||||
|
||||
This step is currently manual as I have few hosts that I need ssh for. The most common tool for automation would be Ansible. But this would only be useful for my RaspberyPis and I plan to migrate those to Talos and Kubernetes in the future.
|
||||
|
||||
## Renew Client Certificate
|
||||
|
||||
Sign the client cert, on your machine, with the Vault CA.
|
||||
```bash
|
||||
vault write -field=signed_key ssh-client-signer/sign/alexlebens public_key=@$HOME/.ssh/id_rsa_host.pub > ~/.ssh/id_rsa_host-cert.pub
|
||||
```
|
||||
|
||||
I added the following to my .zshrc to make this easier. So now I just run "vault-renew" before I need to ssh.
|
||||
```
|
||||
# Vault
|
||||
export VAULT_ADDR="https://vault.alexlebens.net"
|
||||
alias vault-renew='vault write -field=signed_key ssh-client-signer/sign/alexlebens public_key=@$HOME/.ssh/id_rsa_host.pub > ~/.ssh/id_rsa_host-cert.pub'
|
||||
```
|
||||
|
||||
### View Cert Details
|
||||
|
||||
For troubleshooting purposes or clafification use the follow to inspect the cert.
|
||||
```bash
|
||||
ssh-keygen -Lf ~/.ssh/id_rsa_host-cert.pub
|
||||
```
|
||||
Reference in New Issue
Block a user