Compare commits

...

48 Commits

Author SHA1 Message Date
semantic-release-bot
720efcec9f chore(release): 0.33.0 [skip ci]
# [0.33.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.32.0...0.33.0) (2026-05-13)

### Features

* spell check pass ([a4dcf85](a4dcf8515d))
2026-05-13 20:17:11 +00:00
a4dcf8515d feat: spell check pass
All checks were successful
test-build / guarddog (push) Successful in 54s
test-build / build (push) Successful in 1m37s
release-image / guarddog (push) Successful in 42s
release-image / build (push) Successful in 1m16s
release-image / semantic-release (push) Successful in 35s
release-image / release-harbor (push) Has been skipped
release-image / release-gitea (push) Has been skipped
2026-05-13 14:59:09 -05:00
semantic-release-bot
c6d9a3d9da chore(release): 0.32.0 [skip ci]
# [0.32.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.31.0...0.32.0) (2026-05-13)

### Features

* change logo ([1d021e3](1d021e3095))
2026-05-13 17:39:17 +00:00
1d021e3095 feat: change logo
All checks were successful
test-build / guarddog (push) Successful in 1m24s
test-build / build (push) Successful in 2m3s
release-image / guarddog (push) Successful in 18s
release-image / build (push) Successful in 1m9s
release-image / semantic-release (push) Successful in 26s
release-image / release-harbor (push) Successful in 8m1s
release-image / release-gitea (push) Successful in 1m56s
renovate / renovate (push) Successful in 57s
2026-05-12 19:03:53 -05:00
semantic-release-bot
ecf584b7dc chore(release): 0.31.0 [skip ci]
# [0.31.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.30.0...0.31.0) (2026-05-13)

### Features

* add images ([55fc528](55fc528c22))
* arrange reference ([e23f5bf](e23f5bfc51))
* fix imports and images ([23c02c5](23c02c531b))
* refresh index page ([3b65649](3b656496e9))
2026-05-13 00:00:59 +00:00
e23f5bfc51 feat: arrange reference
All checks were successful
test-build / guarddog (push) Successful in 28s
test-build / build (push) Successful in 1m4s
release-image / guarddog (push) Successful in 35s
release-image / build (push) Successful in 1m16s
release-image / semantic-release (push) Successful in 1m15s
release-image / release-harbor (push) Successful in 9m7s
release-image / release-gitea (push) Successful in 3m47s
2026-05-12 18:56:56 -05:00
23c02c531b feat: fix imports and images 2026-05-12 18:55:10 -05:00
3b656496e9 feat: refresh index page 2026-05-12 18:48:46 -05:00
55fc528c22 feat: add images
Some checks failed
test-build / guarddog (push) Successful in 55s
test-build / build (push) Failing after 1m15s
2026-05-12 18:41:50 -05:00
semantic-release-bot
365e7f7fdf chore(release): 0.30.0 [skip ci]
# [0.30.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.29.0...0.30.0) (2026-05-12)

### Features

* add 3d printer docs ([fac3a99](fac3a999d6))
2026-05-12 02:23:54 +00:00
0b041523ae Merge pull request 'main' (#263) from main into release
All checks were successful
release-image / guarddog (push) Successful in 2m14s
release-image / build (push) Successful in 4m5s
release-image / semantic-release (push) Successful in 25s
release-image / release-harbor (push) Successful in 5m37s
release-image / release-gitea (push) Successful in 6m23s
Reviewed-on: #263
2026-05-12 02:19:34 +00:00
0427186766 chore(deps): update typescript-eslint monorepo to v8.59.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 1m10s
test-build / build (push) Successful in 1m28s
test-build / guarddog (pull_request) Successful in 2m53s
test-build / guarddog (push) Successful in 2m41s
renovate / renovate (push) Successful in 1m5s
2026-05-12 02:15:14 +00:00
fac3a999d6 feat: add 3d printer docs
All checks were successful
test-build / build (push) Successful in 1m4s
test-build / guarddog (push) Successful in 3m10s
2026-05-11 21:11:42 -05:00
semantic-release-bot
20b66b8aad chore(release): 0.29.0 [skip ci]
# [0.29.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.28.0...0.29.0) (2026-05-08)

### Bug Fixes

* **deps:** update dependency @astrojs/starlight to v0.38.5 ([0b8f720](0b8f720d6a))
* **deps:** update dependency astro to v6.1.10 ([5c36a1f](5c36a1f31d))
* **deps:** update dependency astro to v6.2.2 ([9b57393](9b57393281))

### Features

* allow processing svg ([c7b49df](c7b49df433))
* rebase ([1b34c03](1b34c03861))
* rebase ([a2bae2b](a2bae2bb1b))
2026-05-08 23:28:49 +00:00
1b34c03861 feat: rebase
All checks were successful
test-build / guarddog (push) Successful in 25s
test-build / build (push) Successful in 1m27s
release-image / guarddog (push) Successful in 30s
release-image / build (push) Successful in 47s
release-image / semantic-release (push) Successful in 41s
release-image / release-harbor (push) Successful in 8m41s
release-image / release-gitea (push) Successful in 4m1s
renovate / renovate (push) Successful in 1m20s
2026-05-08 17:51:23 -05:00
a2bae2bb1b feat: rebase 2026-05-08 17:50:58 -05:00
c7b49df433 feat: allow processing svg 2026-05-08 17:50:31 -05:00
0b8f720d6a fix(deps): update dependency @astrojs/starlight to v0.38.5
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 2m34s
test-build / build (pull_request) Successful in 3m3s
test-build / build (push) Successful in 3m27s
test-build / guarddog (push) Successful in 4m0s
renovate / renovate (push) Successful in 1m29s
2026-05-07 00:02:36 +00:00
9b57393281 fix(deps): update dependency astro to v6.2.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 33s
test-build / guarddog (push) Successful in 36s
test-build / build (push) Successful in 7m8s
test-build / build (pull_request) Successful in 7m28s
renovate / renovate (push) Successful in 2m54s
2026-05-06 00:02:26 +00:00
7cfcba400e chore(deps): update typescript-eslint monorepo to v8.59.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 39s
test-build / build (pull_request) Successful in 1m42s
test-build / guarddog (push) Successful in 1m16s
test-build / build (push) Successful in 1m35s
renovate / renovate (push) Successful in 2m30s
2026-05-05 18:01:53 +00:00
1565dea7bb chore(deps): update deps
All checks were successful
test-build / guarddog (push) Successful in 40s
test-build / build (push) Successful in 1m49s
renovate / renovate (push) Successful in 2m26s
2026-05-01 19:52:53 -05:00
3873667e9a Merge pull request 'chore(deps): update dependency prettier-plugin-tailwindcss to v0.8.0' (#252) from renovate/prettier-plugin-tailwindcss-0.x into main
All checks were successful
test-build / guarddog (push) Successful in 31s
test-build / build (push) Successful in 1m29s
renovate / renovate (push) Successful in 1m33s
Reviewed-on: #252
2026-04-29 18:11:08 +00:00
5c36a1f31d fix(deps): update dependency astro to v6.1.10
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 32s
test-build / build (pull_request) Successful in 3m55s
test-build / guarddog (push) Has been cancelled
test-build / build (push) Has been cancelled
2026-04-29 18:01:43 +00:00
8116b9458c chore(deps): update dependency prettier-plugin-tailwindcss to v0.8.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 44s
test-build / build (pull_request) Successful in 51s
2026-04-28 18:01:40 +00:00
a26c9145d1 chore(deps): update typescript-eslint monorepo to v8.59.1
All checks were successful
test-build / build (push) Successful in 52s
test-build / guarddog (push) Successful in 1m6s
renovate / renovate (push) Successful in 1m45s
2026-04-27 19:09:08 -05:00
semantic-release-bot
e3e9000ca9 chore(release): 0.28.0 [skip ci]
# [0.28.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.27.1...0.28.0) (2026-04-27)

### Bug Fixes

* add escape ([990eb62](990eb62c75))

### Features

* move guides ([33e8873](33e887348b))
2026-04-27 22:34:36 +00:00
990eb62c75 fix: add escape
All checks were successful
test-build / build (push) Successful in 1m15s
test-build / guarddog (push) Successful in 4m39s
release-image / build (push) Successful in 53s
release-image / guarddog (push) Successful in 1m22s
release-image / semantic-release (push) Successful in 3m48s
release-image / release-harbor (push) Successful in 4m7s
renovate / renovate (push) Successful in 2m59s
release-image / release-gitea (push) Successful in 4m48s
2026-04-27 17:07:26 -05:00
33e887348b feat: move guides
Some checks failed
test-build / build (push) Failing after 36s
test-build / guarddog (push) Successful in 46s
2026-04-27 16:56:50 -05:00
semantic-release-bot
78da2d0e42 chore(release): 0.27.1 [skip ci]
## [0.27.1](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.27.0...0.27.1) (2026-04-26)

### Bug Fixes

* **deps:** update astro monorepo ([6769f18](6769f18bd1))
* **deps:** update dependency @astrojs/starlight to v0.38.4 ([a9d8640](a9d8640e5e))
* **deps:** update tailwindcss monorepo to v4.2.3 ([7ba7627](7ba762733b))
* **deps:** update tailwindcss monorepo to v4.2.4 ([9173b81](9173b81db4))
2026-04-26 00:38:38 +00:00
08b09d02a1 Merge pull request 'fix(deps): update dependency @astrojs/starlight to v0.38.4' (#248) from renovate/astrojs-starlight-0.x into main
All checks were successful
test-build / build (push) Successful in 1m38s
test-build / guarddog (push) Successful in 1m11s
release-image / guarddog (push) Successful in 1m30s
release-image / build (push) Successful in 2m37s
release-image / semantic-release (push) Successful in 1m38s
release-image / release-harbor (push) Successful in 19m19s
release-image / release-gitea (push) Successful in 4m35s
renovate / renovate (push) Successful in 7m21s
Reviewed-on: #248
2026-04-24 15:18:44 +00:00
ee51a5ba9b chore(deps): update typescript-eslint monorepo to v8.59.0
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 47s
test-build / build (pull_request) Successful in 1m0s
test-build / guarddog (push) Has been cancelled
test-build / build (push) Has been cancelled
2026-04-24 12:02:34 +00:00
a9d8640e5e fix(deps): update dependency @astrojs/starlight to v0.38.4
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 3m57s
test-build / build (pull_request) Successful in 4m24s
2026-04-24 06:02:48 +00:00
5bff569cf9 chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 38s
test-build / guarddog (push) Successful in 46s
test-build / build (push) Successful in 57s
test-build / build (pull_request) Successful in 5m14s
renovate / renovate (push) Successful in 2m18s
2026-04-24 06:02:27 +00:00
6769f18bd1 fix(deps): update astro monorepo
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 2m15s
test-build / guarddog (pull_request) Successful in 55s
test-build / build (push) Successful in 1m3s
test-build / guarddog (push) Successful in 37s
renovate / renovate (push) Successful in 2m31s
2026-04-23 00:02:43 +00:00
9173b81db4 fix(deps): update tailwindcss monorepo to v4.2.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 1m39s
test-build / guarddog (pull_request) Successful in 48s
test-build / guarddog (push) Successful in 41s
test-build / build (push) Successful in 51s
renovate / renovate (push) Successful in 2m51s
2026-04-22 18:02:34 +00:00
7ba762733b fix(deps): update tailwindcss monorepo to v4.2.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / guarddog (pull_request) Successful in 58s
test-build / build (pull_request) Successful in 2m27s
test-build / build (push) Successful in 1m29s
test-build / guarddog (push) Successful in 1m27s
renovate / renovate (push) Successful in 2m1s
2026-04-22 00:03:12 +00:00
d4ad707b68 chore(deps): update dependency bun to v1.3.13
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 1m1s
test-build / build (pull_request) Successful in 3m5s
renovate / renovate (push) Successful in 3m5s
2026-04-21 00:01:51 +00:00
6dea02bc7e chore(deps): update actions/setup-node action to v6.4.0
All checks were successful
test-build / guarddog (pull_request) Successful in 37s
test-build / build (pull_request) Successful in 3m14s
renovate / renovate (push) Successful in 1m59s
2026-04-20 06:01:47 +00:00
semantic-release-bot
7fdc8b4bec chore(release): 0.27.0 [skip ci]
# [0.27.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.26.0...0.27.0) (2026-04-19)

### Bug Fixes

* **deps:** update dependency astro to v6.1.8 ([4b01ed5](4b01ed5654))

### Features

* add doc for secret store ([58d1631](58d16315fb))
* rename to openbao ([07dd129](07dd12971d))
2026-04-19 22:59:33 +00:00
7e20649262 Merge pull request 'main' (#240) from main into release
All checks were successful
release-image / guarddog (push) Successful in 6m55s
release-image / build (push) Successful in 11m58s
release-image / semantic-release (push) Successful in 1m6s
release-image / release-harbor (push) Successful in 7m23s
release-image / release-gitea (push) Successful in 2m21s
Reviewed-on: #240
2026-04-19 22:46:33 +00:00
58d16315fb feat: add doc for secret store
All checks were successful
test-build / build (push) Successful in 3m32s
test-build / guarddog (push) Successful in 3m36s
renovate / renovate (push) Successful in 54s
2026-04-19 17:45:13 -05:00
07dd12971d feat: rename to openbao 2026-04-19 17:45:13 -05:00
c17b24f6c5 chore(deps): update dependency node to v24.15.0
All checks were successful
test-build / guarddog (pull_request) Successful in 51s
test-build / build (pull_request) Successful in 1m8s
2026-04-19 06:01:48 +00:00
4b01ed5654 fix(deps): update dependency astro to v6.1.8
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / build (pull_request) Successful in 1m11s
test-build / guarddog (pull_request) Successful in 1m10s
test-build / guarddog (push) Successful in 31s
test-build / build (push) Successful in 1m46s
renovate / renovate (push) Successful in 3m14s
2026-04-19 00:01:48 +00:00
7691af66b2 chore(deps): update dependency eslint to v10.2.1
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
test-build / guarddog (pull_request) Successful in 42s
test-build / build (push) Successful in 1m0s
test-build / guarddog (push) Successful in 1m3s
test-build / build (pull_request) Successful in 4m20s
renovate / renovate (push) Successful in 1m33s
2026-04-18 06:03:49 +00:00
7dbdeea63c Merge pull request 'chore(deps): pin dependencies' (#235) from renovate/pin-dependencies into main
All checks were successful
renovate / renovate (push) Successful in 3m20s
Reviewed-on: #235
2026-04-18 00:15:19 +00:00
c19e74b5ef chore(deps): update dependency typescript to v6.0.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 1m28s
test-build / guarddog (pull_request) Successful in 1m45s
test-build / build (push) Successful in 1m55s
test-build / guarddog (push) Successful in 3m39s
2026-04-18 00:01:51 +00:00
f25f58c143 chore(deps): pin dependencies
All checks were successful
test-build / guarddog (pull_request) Successful in 4m53s
test-build / build (pull_request) Successful in 7m9s
2026-04-17 00:03:33 +00:00
72 changed files with 1004 additions and 771 deletions

View File

@@ -12,25 +12,25 @@ jobs:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
with:
ref: release
- name: Set up Node
uses: actions/setup-node@v6
uses: actions/setup-node@v6.4.0
with:
node-version: 24.14.1
node-version: 24.15.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: 1.3.12
bun-version: 1.3.13
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
uses: actions/cache@v5.0.5
with:
path: |
.astro
@@ -64,12 +64,12 @@ jobs:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
with:
ref: release
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v6.2.0
with:
python-version: '3.12.13'
@@ -106,20 +106,20 @@ jobs:
new-release-git-tag: ${{ steps.semantic.outputs.new-release-git-tag }}
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }}
- name: Set up Node
uses: actions/setup-node@v6
uses: actions/setup-node@v6.4.0
with:
node-version: 24.14.1
node-version: 24.15.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: 1.3.12
bun-version: 1.3.13
- name: Install Dependencies
run: bun install --frozen-lockfile
@@ -139,19 +139,19 @@ jobs:
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
with:
ref: release
- name: Login to Harbor Registry
uses: docker/login-action@v4
uses: docker/login-action@v4.1.0
with:
registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }}
- name: Login to Docker
uses: docker/login-action@v4
uses: docker/login-action@v4.1.0
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
@@ -164,7 +164,7 @@ jobs:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
uses: docker/setup-buildx-action@v4.0.0
with:
driver: kubernetes
driver-opts: |
@@ -179,7 +179,7 @@ jobs:
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
uses: docker/metadata-action@v6.0.0
with:
images: |
${{ vars.REGISTRY_HOST }}/images/site-documentation
@@ -192,7 +192,7 @@ jobs:
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
uses: docker/build-push-action@v7.1.0
with:
context: .
push: true
@@ -243,19 +243,19 @@ jobs:
needs.semantic-release.outputs.new-release-published == 'true'
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
with:
ref: release
- name: Login to Gitea Registry
uses: docker/login-action@v4
uses: docker/login-action@v4.1.0
with:
registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Docker
uses: docker/login-action@v4
uses: docker/login-action@v4.1.0
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
@@ -268,7 +268,7 @@ jobs:
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
uses: docker/setup-buildx-action@v4.0.0
with:
driver: kubernetes
driver-opts: |
@@ -283,7 +283,7 @@ jobs:
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
uses: docker/metadata-action@v6.0.0
with:
images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
@@ -296,7 +296,7 @@ jobs:
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
uses: docker/build-push-action@v7.1.0
with:
context: .
push: true

View File

@@ -12,7 +12,7 @@ jobs:
container: ghcr.io/renovatebot/renovate:43
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
- name: Renovate
run: renovate

View File

@@ -17,23 +17,23 @@ jobs:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
- name: Set up Node
uses: actions/setup-node@v6
uses: actions/setup-node@v6.4.0
with:
node-version: 24.14.1
node-version: 24.15.0
- name: Set up Bun
uses: oven-sh/setup-bun@v2
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: 1.3.12
bun-version: 1.3.13
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
uses: actions/cache@v5.0.5
with:
path: |
.astro
@@ -67,10 +67,10 @@ jobs:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v6.0.2
- name: Set up Python
uses: actions/setup-python@v6
uses: actions/setup-python@v6.2.0
with:
python-version: '3.12.13'

View File

@@ -1,3 +1,85 @@
# [0.33.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.32.0...0.33.0) (2026-05-13)
### Features
* spell check pass ([a4dcf85](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a4dcf8515da4f3eb81a5b09f7cb719c95d99f804))
# [0.32.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.31.0...0.32.0) (2026-05-13)
### Features
* change logo ([1d021e3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/1d021e309587bf58daa88957d5d92714c7d4509f))
# [0.31.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.30.0...0.31.0) (2026-05-13)
### Features
* add images ([55fc528](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/55fc528c2288c47e2d592ea339b134b10f315735))
* arrange reference ([e23f5bf](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/e23f5bfc51ad1c91ba62496ee353575eabff3627))
* fix imports and images ([23c02c5](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/23c02c531b445d623c4e2506a3d0efdc93e5922f))
* refresh index page ([3b65649](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3b656496e97e57fa372d767895fa4077c9a0c836))
# [0.30.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.29.0...0.30.0) (2026-05-12)
### Features
* add 3d printer docs ([fac3a99](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/fac3a999d64e499e92b0123f2a9b03074f4d4008))
# [0.29.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.28.0...0.29.0) (2026-05-08)
### Bug Fixes
* **deps:** update dependency @astrojs/starlight to v0.38.5 ([0b8f720](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/0b8f720d6afc765759a3f5bfef1ec1a575247e4f))
* **deps:** update dependency astro to v6.1.10 ([5c36a1f](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/5c36a1f31d8098828fe790dcb307ef6f391a53a0))
* **deps:** update dependency astro to v6.2.2 ([9b57393](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/9b57393281b55441ef6786ed597519e0f6280e93))
### Features
* allow processing svg ([c7b49df](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/c7b49df433d25f343e336fdf5f972f479a2cd07e))
* rebase ([1b34c03](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/1b34c03861824b350d144d7dabbe1d10111b86e1))
* rebase ([a2bae2b](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a2bae2bb1b2cb39005ded7c24a15705c0aea6695))
# [0.28.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.27.1...0.28.0) (2026-04-27)
### Bug Fixes
* add escape ([990eb62](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/990eb62c75c2c0460a18410b8c2abff920fdffe2))
### Features
* move guides ([33e8873](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/33e887348ba9976e2dfb54f68d7031da060e3281))
## [0.27.1](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.27.0...0.27.1) (2026-04-26)
### Bug Fixes
* **deps:** update astro monorepo ([6769f18](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/6769f18bd11000d3c4b71f0951f8a4cc147f8352))
* **deps:** update dependency @astrojs/starlight to v0.38.4 ([a9d8640](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a9d8640e5ed4f525bc46a49a971755a42befb8f6))
* **deps:** update tailwindcss monorepo to v4.2.3 ([7ba7627](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/7ba762733b818ce9c758ad16a2c633d2e8093e02))
* **deps:** update tailwindcss monorepo to v4.2.4 ([9173b81](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/9173b81db4fe9032726ef4d666c1f06f2b366a10))
# [0.27.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.26.0...0.27.0) (2026-04-19)
### Bug Fixes
* **deps:** update dependency astro to v6.1.8 ([4b01ed5](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/4b01ed56546d645756d8b8967e3ed37d50d3ad22))
### Features
* add doc for secret store ([58d1631](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/58d16315fb8862f8b04d43414d5c9b848c73aaba))
* rename to openbao ([07dd129](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/07dd12971da61180827813be6bb4ed532e94f118))
# [0.26.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.25.0...0.26.0) (2026-04-16)

View File

@@ -16,12 +16,16 @@ const getSiteURL = () => {
export default defineConfig({
site: getSiteURL(),
image: {
dangerouslyProcessSVG: true
},
prefetch: true,
integrations: [
sitemap(),
starlight({
title: "Alex Lebens Docs",
title: "Documentation",
head: [
{
tag: 'script',
@@ -37,7 +41,7 @@ export default defineConfig({
],
expressiveCode: {
themes: ['vitesse-light', 'vitesse-dark'],
},
},
social: [
{
icon: "external",
@@ -50,20 +54,20 @@ export default defineConfig({
],
sidebar: [
{
label: "Reference",
autogenerate: { directory: "reference" },
label: 'Reference',
items: [{ autogenerate: { "directory": "reference" } }]
},
{
label: "Guides",
autogenerate: { directory: "guides" },
label: 'Guides',
items: [{ autogenerate: { "directory": "guides" } }]
},
{
label: "Applications",
label: 'Applications',
collapsed: true,
autogenerate: { directory: "applications" },
},
items: [{ autogenerate: { "directory": "applications" } }]
},
],
})
})
],
output: 'static',

1064
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "site-documentation",
"type": "module",
"version": "0.26.0",
"version": "0.33.0",
"scripts": {
"dev": "astro dev",
"build": "astro build",
@@ -12,17 +12,17 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/mdx": "5.0.3",
"@astrojs/node": "10.0.5",
"@astrojs/mdx": "5.0.4",
"@astrojs/node": "10.1.0",
"@astrojs/sitemap": "3.7.2",
"@astrojs/starlight": "0.38.3",
"@tailwindcss/postcss": "4.2.2",
"@tailwindcss/vite": "4.2.2",
"astro": "6.1.7",
"@astrojs/starlight": "0.39.2",
"@tailwindcss/postcss": "4.3.0",
"@tailwindcss/vite": "4.3.0",
"astro": "6.3.1",
"sanitize-html": "2.17.3",
"sharp": "0.34.5",
"starlight-theme-rapide": "0.5.2",
"tailwindcss": "4.2.2"
"tailwindcss": "4.3.0"
},
"devDependencies": {
"@saithodev/semantic-release-gitea": "2.1.0",
@@ -30,19 +30,19 @@
"@semantic-release/commit-analyzer": "13.0.1",
"@semantic-release/git": "10.0.1",
"@semantic-release/npm": "13.1.5",
"@semantic-release/release-notes-generator": "14.1.0",
"@semantic-release/release-notes-generator": "14.1.1",
"@tailwindcss/forms": "0.5.11",
"@tailwindcss/typography": "0.5.19",
"@typescript-eslint/parser": "8.58.2",
"eslint": "10.2.0",
"@typescript-eslint/parser": "8.59.3",
"eslint": "10.3.0",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-astro": "1.7.0",
"prettier": "3.8.3",
"prettier-plugin-astro": "0.14.1",
"prettier-plugin-tailwindcss": "0.7.2",
"prettier-plugin-tailwindcss": "0.8.0",
"semantic-release": "25.0.3",
"semantic-release-export-data": "1.2.0",
"typescript": "6.0.2",
"typescript-eslint": "8.58.2"
"typescript": "6.0.3",
"typescript-eslint": "8.59.3"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

View File

@@ -0,0 +1,2 @@
<?xml version='1.0' encoding='utf-8'?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128.07 128.07"> <g transform="translate(-619.25 -107.78)"> <path transform="matrix(1.4138 0 0 1.4138 -272.18 -544.05)" d="m721.12 506.35c0 25.014-20.278 45.293-45.293 45.293s-45.293-20.278-45.293-45.293 20.278-45.293 45.293-45.293 45.293 20.278 45.293 45.293z" fill="#00a9eb" fill-rule="evenodd"/> <path d="m634.2 202.31v-54.545l47.534-6.2481 50.647 6.2481v54.545l-40.786-5.4545c-0.12263 3.0124-3.7857 5.4545-8.3043 5.4545s-8.1817-2.442-8.1817-5.4545c-13.071 1.7709-27.398 3.6584-40.909 5.4545" fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.7272"/> <g fill="#00a9eb" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5"> <g transform="matrix(1.2097 0 0 1.0892 7.9737 22.346)"> <path d="m558.25 109.14s-3.0418-3.2531-7.0588-2.521c-4.0116 0.73113-11.421 3.8517-15.382 4.822-4.1537 1.0176-13.158 1.4144-13.158 1.4144l0.40093 47.094s9.0506-0.65837 13.204-1.676c3.9606-0.97028 11.37-4.0908 15.382-4.822 4.0171-0.73211 6.9696 2.7393 6.9696 2.7393z"/> <path d="m558.25 109.14s3.0418-3.2531 7.0588-2.521c4.0116 0.73113 11.421 3.8517 15.382 4.822 4.1537 1.0176 13.158 1.4144 13.158 1.4144l-0.40093 47.094s-9.0506-0.65837-13.204-1.676c-3.9606-0.97028-11.37-4.0908-15.382-4.822-4.0171-0.73211-6.2542 2.7393-6.2542 2.7393z"/> </g> <g transform="matrix(1.078 0 0 1.078 20.346 -219.36)"> <path d="m615 331.84s-3.0418-3.2531-7.0588-2.521c-4.0116 0.73113-11.421 3.8517-15.382 4.822-4.1537 1.0176-13.158 1.4144-13.158 1.4144l0.40093 47.094s9.0506-0.65837 13.204-1.676c3.9606-0.97028 11.37-4.0908 15.382-4.822 4.0171-0.73211 6.9696 2.7393 6.9696 2.7393z"/> <path d="m615 331.84s3.0418-3.2531 7.0588-2.521c4.0116 0.73113 11.421 3.8517 15.382 4.822 4.1537 1.0176 13.158 1.4144 13.158 1.4144l-0.40093 47.094s-9.0506-0.65837-13.204-1.676c-3.9606-0.97028-11.37-4.0908-15.382-4.822-4.0171-0.73211-6.2542 2.7393-6.2542 2.7393z"/> </g> </g> <path d="m700.84 143.67c-2.6596 1.9895-1.6698 4.1865-0.0468 6.5739 0.65358 1.1396 0.69335 2.3824 0.77867 3.0591-0.13829 1.7516-0.8444 9.1181-0.89615 20.533-4e-3 0.68587 0.14646 2.5672-0.46053 3.0055-2.5451 1.8381-2.5 3.2512-1.9733 4.5155 0.0603 0.1468 1.2872 3.3561 3.5734 3.7902 0.49242 0.0936-0.77826-3.2492-0.6852-3.7708 0.28125-1.5763 4.0814-1.4458 4.4527-0.68662 0.41465 0.84653 1.0171 3.8604 1.2121 3.62 0.71906-0.88383 1.9656-4.8157 0.26993-6.0306-2.3917-1.7133-2.24-3.5187-2.2392-3.6732 0.0275-5.0256 0.39083-15.911 0.57885-20.883 0.0449-1.1889 0.41761-1.8486 0.75637-2.6228 0.43468-0.99366 2.1954-1.3002 2.4991-2.5112 0.4992-1.9903-2.3377-4.8089-3.2468-5.1396-0.4704-0.17116 0.96583 3.5773 0.61554 3.9791-0.62854 0.72035-3.2089 0.72167-3.9357 0.21033-1.003-0.70539-0.35936-3.7274-1.2521-3.9692z" fill="#fff" fill-rule="evenodd"/> </g> </svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

View File

@@ -26,4 +26,4 @@ Deploying and managing resources within Kubernetes clusters.
Syncs from templates defined in the [infrastructure](https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/manifests/) repo, manifests branch. Deeply integrated with Gitea and the rendered manifests system.
Also used as a dashboard for resources, mostly for logs and restarting deployments. This is also done in [Headlamp](https://docs.alexlebens.dev/applications/headlamp/), which is the full featured dashboard.
Also used as a dashboard for resources, mostly for logs and restarting deployments. This is also done in [Headlamp](https://docs.alexlebens.dev/applications/headlamp/), which is the full-featured dashboard.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose
Podcasts, Audiobbooks, and Books.
Podcasts, Audiobooks, and Books.
# Notes

View File

@@ -26,4 +26,4 @@ Single sign on authentication for applications that support OIDC.
# Notes
Available at public, local, and Tailscale endpoints. Apps are configured for their like endppoints.
Available at public, local, and Tailscale endpoints. Apps are configured for their like endpoints.

View File

@@ -16,10 +16,10 @@ hero:
# Purpose
Backup system for files on the NAS. For size contraint reasons, does not backup most video content.
Backup system for files on the NAS. For size constraint reasons, does not backup most video content.
# Notes
Must be manually configured in the app. Has been setup for targets at the remote - PiBox - or the Digital Ocean S3 buckets.
Must be manually configured in the app. Has been set up for targets at the remote - PiBox - or the Digital Ocean S3 buckets.
Mainly just for irreplacable files.
Mainly just for irreplaceable files.

View File

@@ -20,10 +20,10 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Very fast and declarative config DNS with built in adblocking. Used for local domain name configuration as well.
Very fast and declarative config DNS with built-in ad blocking. Used for local domain name configuration as well.
# Notes
Deployments in cluster, on RaspberryPis, and the PiBox. Cluster and Tailscale use the cluster endpoint, clients use the RaspberyPis, and home network used the PiBox.
DNS over TLS to Cloudflare servers and somewhat agressive blocking.
DNS over TLS to Cloudflare servers and somewhat aggressive blocking.

View File

@@ -26,6 +26,6 @@ Operator that manages PostgreSQL deployments in cluster.
A very important application since many core services and applications depend on PostgreSQL databases.
Backups to the NAS with replication of the base backups to remote and DigialOcean S3 endpoints.
Backups to the NAS with replication of the base backups to remote and DigitalOcean S3 endpoints.
Used in conjunction with [this](https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster) Helm Chart to easily deploy and manage the application PostgreSQL instances.

View File

@@ -24,6 +24,6 @@ DNS server just for cluster services, such as pod and service routing.
# Notes
Upstreams to [Blocky](https://docs.alexlebens.dev/applications/blocky/) for external DNS queries and also to the [Tailscale](https://docs.alexlebens.dev/applications/tailscale-operator/) DNS server for Tailnet access.
Upstream to [Blocky](https://docs.alexlebens.dev/applications/blocky/) for external DNS queries and also to the [Tailscale](https://docs.alexlebens.dev/applications/tailscale-operator/) DNS server for Tailnet access.
Deploys as part of the Talos upgrades, but managed by Helm chart for the above custom configuration.

View File

@@ -21,3 +21,21 @@ Storage provider for iSCSI block devices from the NAS.
# Notes
Used for applications that need to store a lot of data, but not over the NFS connection. Examples include metrics and logging storage.
# Issues
## Resizing the Prometheus disk
There is an issue resizing iSCSI disks. The following GitHub issue has instructions on how to manually resize if a permissions error is thrown.
https://github.com/democratic-csi/democratic-csi/issues/491#issuecomment-3778463893
- Exec into the iSCSI node pod for the node where the volume is being attached.
- Find the path where the volume is mounted, this should be in the error, and the disk name
- umount \<path>
- resize2fs /dev/\<disk name>
- Receive the error that the filesystem isn't clean, press y to optimize
- fsck -f /dev/\<disk name>
- Ensure the above comes back clean
- resize2fs /dev/sdb
- Restart pod that is mounting the disk

View File

@@ -20,4 +20,4 @@ Automatic service that cleans up local caches of images.
# Notes
Removes all non running images. This does cause a startup delay, but [Harbor](https://docs.alexlebens.dev/applications/harbor/) is configured as a generic pull through cache, so pulls for new images should be quick.
Removes all non-running images. This does cause a startup delay, but [Harbor](https://docs.alexlebens.dev/applications/harbor/) is configured as a generic pull through cache, so pulls for new images should be quick.

View File

@@ -20,7 +20,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Very useful, decalarative way to make Kubernetes Secrets from an external provider.
Very useful, declarative way to make Kubernetes Secrets from an external provider.
# Notes

View File

@@ -24,4 +24,4 @@ RSS reader for various news sites as well as software releases.
# Notes
A little finicky to setup, predates popular use of containers, but still functions quite well. I mostly use it with an Android app.
A little finicky to set up, predates popular use of containers, but still functions quite well. I mostly use it with an Android app.

View File

@@ -20,7 +20,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Uptime and down notifications for all endpoints, both local and public.
Up time and down notifications for all endpoints, both local and public.
# Notes

View File

@@ -20,4 +20,4 @@ Plugin used to give devices to pods, specifically tun devices for networking.
# Notes
Used by recomendation in [Tailscale Docs](https://docs.siderolabs.com/kubernetes-guides/advanced-guides/device-plugins).
Used by recommendation in [Tailscale Docs](https://docs.siderolabs.com/kubernetes-guides/advanced-guides/device-plugins).

View File

@@ -24,8 +24,8 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Git repoistory for storing all my code.
Git repository for storing all my code.
# Notes
Primary code repo, repositories set to replicate to a PiBox as well as Github for a layer of backup.
Primary code repo, repositories set to replicate to a PiBox as well as GitHub for a layer of backup.

View File

@@ -24,6 +24,6 @@ Pull through cache and registry for personal images built in Gitea.
# Notes
Talos is configured to direct pulls to Docker, Github, and others to Harbor first. Stores these images as a cache to avoid rate limiting, primarily by Docker hub.
Talos is configured to direct pulls to Docker, GitHub, and others to Harbor first. Stores these images as a cache to avoid rate limiting, primarily by Docker hub.
Any of my own images also get stored here to deploy.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose
Local copies of various wikis and other datasets.
Local copies of various wikis and other data sets.
# Notes

View File

@@ -20,6 +20,6 @@ Manages deployments of single nodes hosts with docker compose stacks.
# Notes
Manual setup, but follows Gitops with webhook triggered updates from Gitea.
Manual setup, but follows Git ops with webhook triggered updates from Gitea.
Compose files are placed in [infrastructure](https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/hosts) under the hosts dir.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose
Provides higher level grammer and spell checking service.
Provides higher level grammar and spell checking service.
# Notes

View File

@@ -20,6 +20,6 @@ Servarr app that manages the metadata and organization of music.
# Notes
Connects to [qbittorrent](https://docs.alexlebens.dev/applications/qbittorrent), [slskd](https://docs.alexlebens.dev/applications/slskd) with support from [prowlarr](https://docs.alexlebens.dev/applications/prowlarr) and [unpackerr](https://docs.alexlebens.dev/applications/unpackerr).
Connects to [qbittorrent](https://docs.alexlebens.dev/applications/qbittorrent), [slskd](https://docs.alexlebens.dev/applications/slskd) with support from [Prowlarr](https://docs.alexlebens.dev/applications/prowlarr) and [Unpackerr](https://docs.alexlebens.dev/applications/unpackerr).
Runs on nightly branch to integrate plugins.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose
Storage for paths on the local node's NVME drive. When high performance, but non redundant storage is required.
Storage for paths on the local node's NVME drive. When high performance, but non-redundant storage is required.
# Notes

View File

@@ -20,12 +20,12 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Collects logs from pods and makes them availabile in Grafana.
Collects logs from pods and makes them available in Grafana.
# Notes
Uses iSCSI for log storage.
Generally unused as I inspect most logs in [ArgoCD](https://docs.alexlebens.dev/applications/argo-cd/) or [Headlamp](https://docs.alexlebens.dev/applications/headlamp/). But this does keep them for longer rentention.
Generally unused as I inspect most logs in [ArgoCD](https://docs.alexlebens.dev/applications/argo-cd/) or [Headlamp](https://docs.alexlebens.dev/applications/headlamp/). But this does keep them for longer retention
Maybe someday will integrate AI from [Ollama](https://docs.alexlebens.dev/applications/ollama/) to monitor and report on logs.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose
Core Kubernetes service that provides basic metrics on cpu, memory, and disk that is used by Kubernetes for tooling such as scaling. Also what is seen in [Headlamp](https://docs.alexlebens.dev/applications/headlamp) for live stats.
Core Kubernetes service that provides basic metrics on CPU, memory, and disk that is used by Kubernetes for tooling such as scaling. Also, what is seen in [Headlamp](https://docs.alexlebens.dev/applications/headlamp) for live stats.
# Notes

View File

@@ -24,6 +24,6 @@ Music server that uses the subsonic protocol.
# Notes
Chart also deploys a webclient of [Feishin](https://github.com/jeffvli/feishin), but I mostly use the desktop app. On Android I use [Symfonium](https://symfonium.app/).
Chart also deploys a web client of [Feishin](https://github.com/jeffvli/feishin), but I mostly use the desktop app. On Android I use [Symfonium](https://symfonium.app/).
While I can use [Jellyfin](https://docs.alexlebens.dev/applications/jellyfin) for music, I prefer separation for dedicated media types.

View File

@@ -24,4 +24,4 @@ Notification service based on a Pub/Sub model.
# Notes
Very useful service that sends notifications to my phone and is widely addopted by a lot of other apps or has bridging support such as through [apprise](https://github.com/caronc/apprise).
Very useful service that sends notifications to my phone and is widely adopted by a lot of other apps or has bridging support such as through [apprise](https://github.com/caronc/apprise).

View File

@@ -24,4 +24,4 @@ Local AI servers.
Configured mostly to run the Gemma models.
Tailscale connction to the desktop GPU for larger model processing.
Tailscale connection to the desktop GPU for larger model processing.

View File

@@ -24,8 +24,8 @@ Secrets manager.
# Notes
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them availible in cluster.
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them available in cluster.
Can store other secrets, but primarily used for cluster secrets.
And by 'secrets' this means passwords, keys, etc, that are confidential and non public.
And by 'secrets' this means passwords, keys, etc, that are confidential and non-public.

View File

@@ -24,6 +24,6 @@ Automates social media posting.
# Notes
So dumb and complex to setup, has hard dependency on [Temporal](https://github.com/temporalio).
So dumb and complex to set up, has hard dependency on [Temporal](https://github.com/temporalio).
Haven't begun to use, but want to connect to automate posting of my blog.

View File

@@ -20,4 +20,4 @@ Simple service that will ensure a restart of services if their mounted ConfigMap
# Notes
Used by a few apps, such as homepage where its entirely configured by ConfigMap.
Used by a few apps, such as homepage where it's entirely configured by ConfigMap.

View File

@@ -22,7 +22,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Clustered storage that runs on the SSDs in cluster to provide durable and reliable block and filesystem volumes.
Clustered storage that runs on the SSDs in cluster to provide durable and reliable block and file system volumes.
# Notes
@@ -30,4 +30,4 @@ Runs [Ceph](https://ceph.io/en/) underneath and managed by Rook pods.
Ensure this system is healthy before any upgrades and restarts.
One of the main pressures to increase node count to expand host and disk count of this cluster for more space as well as durabiliy during node outages.
One of the main pressures to increase node count to expand host and disk count of this cluster for more space as well as durability during node outages.

View File

@@ -1,27 +0,0 @@
---
title: Roundcube
description: Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface.
hero:
tagline: Roundcube Webmail is a browser-based multilingual IMAP client with an application-like user interface.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/roundcube.webp
actions:
- text: Source
link: https://github.com/roundcube/roundcubemail
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/roundcube
icon: right-arrow
---
# Purpose
Internal client for email.
# Notes
Connected to [Stalwart](https://docs.alexlebens.dev/applications/stalwart/).
Generally unsued as I have not configured any services for sending email.
This is NOT used for external email, such as gmail.

View File

@@ -20,7 +20,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Analytics service for my websites.
Analytic service for my websites.
# Notes

View File

@@ -24,4 +24,4 @@ Metrics from the Shelly Plug.
# Notes
Can provide historical wattage use of the shelly plug which the entire homelab's electricity passes through.
Can provide historical wattage use of the Shelly plug which the entire homelab's electricity passes through.

View File

@@ -26,7 +26,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Manages metadata for tv shows.
Manages metadata for TV shows.
# Notes

View File

@@ -1,25 +0,0 @@
---
title: Stalwart
description: All-in-one Mail & Collaboration server. Secure, scalable and fluent in every protocol (IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV).
hero:
tagline: All-in-one Mail & Collaboration server. Secure, scalable and fluent in every protocol (IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV).
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/stalwart.webp
actions:
- text: Source
link: https://github.com/stalwartlabs/mail-server
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/stalwart
icon: right-arrow
---
# Purpose
Email server.
# Notes
Configuration seems to be only through UI.
Not currently used.

View File

@@ -20,10 +20,10 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Runs healthchecks on media files.
Runs health checks on media files.
# Notes
Need to check the error queue, sometimes there are false errors.
Runs the files through ffmpeg on either cpu or gpu, but gpu generates more false errors.
Runs the files through ffmpeg on either CPU or GPU, but GPU generates more false errors.

View File

@@ -24,4 +24,4 @@ Gateway for the cluster, enables external access of the webpages for both host r
# Notes
Really want to swap it out for Cillium's built in Gateway implementation.
Really want to swap it out for Cillium's built-in Gateway implementation.

View File

@@ -16,8 +16,8 @@ hero:
# Purpose
Archives Youtube videos.
Archives YouTube videos.
# Notes
Mostly to ensure I get to keep videos that may be deleted or removed from Youtube. Also for videos I want to save to watch locally.
Mostly to ensure I get to keep videos that may be deleted or removed from YouTube. Also for videos I want to save to watch locally.

View File

@@ -20,7 +20,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose
Geneates metrics from the Ubqituiy network devices.
Generates metrics from the Ubiquity network devices.
# Notes

View File

@@ -24,8 +24,8 @@ Secrets manager.
# Notes
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them availible in cluster.
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them available in cluster.
Can store other secrets, but primarily used for cluster secrets.
And by 'secrets' this means passwords, keys, etc, that are confidential and non public.
And by 'secrets' this means passwords, keys, etc, that are confidential and non-public.

View File

@@ -0,0 +1,18 @@
---
title: Mainsail
description: Web interface for the 3D Printer
hero:
tagline: Web interface for the 3D Printer
image:
file: https://raw.githubusercontent.com/mainsail-crew/mainsail/6130a0aa1776a138feaab691b9e4b1334b676b79/public/img/logo.svg
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Quickly connect to its web page [here](http://printer.lebens-home.net/).</Aside>
# Overview
[Mainsail](https://docs.mainsail.xyz/) is the popular web interface for managing and controlling 3D printers with [Klipper](https://www.klipper3d.org/).
[Source](https://github.com/mainsail-crew/mainsail)

View File

@@ -0,0 +1,88 @@
---
title: Setting up Orcaslicer
description: Desktop software to connect to the 3D printer
hero:
tagline: Desktop software to connect to the 3D printer
image:
file: https://raw.githubusercontent.com/OrcaSlicer/OrcaSlicer/a167702038496b97e8495cc79f0c62660063ac87/resources/images/studio_logo.svg
---
import { Aside } from '@astrojs/starlight/components';
import { Steps } from '@astrojs/starlight/components';
import { Image } from 'astro:assets';
import orcaRelease from '@/assets/images/guides/orcaslicer/release.png';
import orcaAssets from '@/assets/images/guides/orcaslicer/assets.png';
import orcaPrepare from '@/assets/images/guides/orcaslicer/prepare-tab.png';
import orcaDropdown from '@/assets/images/guides/orcaslicer/dropdown.png';
import orcaCreatePrinter from '@/assets/images/guides/orcaslicer/create-printer.png';
import orcaPreset from '@/assets/images/guides/orcaslicer/preset.png';
import orcaConnection from '@/assets/images/guides/orcaslicer/connection.png';
import orcaConnectionSettings from '@/assets/images/guides/orcaslicer/connection-settings.png';
<Aside type="tip">Quickly connect to its web page [here](http://printer.lebens-home.net).</Aside>
# Download and Install OrcaSlicer
<Steps>
1. Go to the [Releases](https://github.com/OrcaSlicer/OrcaSlicer/releases) and find the 'Latest' Official Release. Some are tagged as 'Pre-release' such as nightlys or release candidates, ignore those.
<Image src={orcaRelease} alt="OrcaSlicer release page" width="800" />
2. At the bottom of a Release is the Assets section. Download the package for your OS such as the exe for Windows or the dmg for Mac.
<Image src={orcaAssets} alt="OrcaSlicer release page, assets section" width="800" />
4. Install the package.
</Steps>
## Build Plates
These will give you a model of the build plates the 3D printer will print upon for accurate sizing and representation.
Download them [with this link here](https://github.com/Guilouz/Creality-Helper-Script-Wiki/raw/main/downloads/OrcaSlicer/Creality_K1.zip) then extract the zip.
## Create Printer
<Steps>
1. Go to the 'Prepare' tab on the navigation menu.
<Image src={orcaPrepare} alt="OrcaSlicer prepare tab" width="800" />
2. At the left should be a menu for various options, find 'Printer' at the very top
<Image src={orcaDropdown} alt="OrcaSlicer printer options" width="800" />
3. Click on the drop-down and select `--Create Printer --`
<Image src={orcaCreatePrinter} alt="OrcaSlicer printer preset" width="800" />
- Printer Vendor is `Creality`
- Printer model is `Creality K1C`, this may be near the bottom of the list
- Nozzle diameter is `0.4 mm`
- Printable Space is `X 200 mm` and `Y 220 mm`
- Hot Bed STL should upload the build plate .stl file
- Hot Bed SVG should upload the build plate .png file
- Max Print Height is `200mm`
4. Click OK and will go to 'Import Preset'
<Image src={orcaPreset} alt="OrcaSlicer import preset" width="800" />
- For 'Printer Preset' select `Creality` and `Creality K1C @ 0.4 Nozzle`
- For 'Preset' click `Create Based on Current Printer`
- Under the 'Filament Preset Template' section check boxes for filaments types being used, likely just 'PLA'
- Under the 'Process Preset Template' section check `0.20mm Standard @Creality K1C`
</Steps>
## Connect to Printer
Once the Printer has been created slightly above and to the right should be an icon that looks like a wifi icon, click this.
<Image src={orcaConnection} alt="OrcaSlicer connection location" width="800" />
Enter settings to connect to the 3D printer. Check to see if the 3D printer is on.
<Image src={orcaConnectionSettings} alt="OrcaSlicer connection settings" width="800" />
- Host Type is `Octo/Klipper`
- Printer Agent is `OrcaSlicer`
- Hostname is `http://printer.lebens-home.net`
To confirm the connection go to the 'Device' tab at the top navigation menu.

View File

@@ -0,0 +1,57 @@
---
title: Upload Model
description: Load model into OrcaSlicer
hero:
tagline: Load model into OrcaSlicer
image:
file: https://raw.githubusercontent.com/OrcaSlicer/OrcaSlicer/a167702038496b97e8495cc79f0c62660063ac87/resources/images/studio_logo.svg
---
import { Aside } from '@astrojs/starlight/components';
import { Steps } from '@astrojs/starlight/components';
import { Image } from 'astro:assets';
import orcaAddModel from '@/assets/images/guides/print-model/add-model.png';
import orcaOptions from '@/assets/images/guides/print-model/options.png';
import orcaSlice from '@/assets/images/guides/print-model/slice-button.png';
import orcaSupport from '@/assets/images/guides/print-model/support-settings.png';
import orcaInfill from '@/assets/images/guides/print-model/infill-settings.png';
import orcaPrint from '@/assets/images/guides/print-model/print-button.png';
<Aside type="tip">Quickly connect to its web page [here](http://printer.lebens-home.net).</Aside>
# Download a Model
There are various places to download models to print, such as [Thingverse](https://www.thingiverse.com/), [Printables](https://www.printables.com/), or [Makerworld](https://makerworld.com/en).
A default test model is [Benchy](https://www.thingiverse.com/thing:763622).
The most common file type to use are STL, but the printer can also use OBJ or 3MF
# Load and Print Model
<Steps>
1. In OrcaSlicer go to the 'Prepare' tab on the navigation menu. The sidebar isn't needed at this point, you may collapse it with a button at its top right, or by pressing `Shift-Tab`
2. The printer view should now fill the screen. At the top, below the navigation menu is a tool menu. The farthest left icon is a cube, click this to add a model.
<Image src={orcaAddModel} alt="OrcaSlicer add model button" width="800" />
3. This opens a menu to select a file to upload. Select the file you have downloaded and want to print.
4. Once the model is in the 3D view various options are available to arrange or make adjustments.
<Image src={orcaOptions} alt="OrcaSlicer options bar" width="800" />
5. Next is to convert this 3D representation into instructions for the printer, this process is called slicing. At the top right are two buttons, click 'Slice plate'. Depending on the complexity this may take time.
<Image src={orcaSlice} alt="OrcaSlicer slice button" width="800" />
6. Also depending on the complexity you may need to add support or change the infill. These are options in the sidebar. After any adjustments made the model should be sliced again.
<Image src={orcaSupport} alt="OrcaSlicer support settings" width="800" /><Image src={orcaInfill} alt="OrcaSlicer infill settings" width="800" />
7. Once ready and the representation in the printer view matches what is desired, click print to begin the process.
<Image src={orcaPrint} alt="OrcaSlicer print button" width="800" />
</Steps>

View File

@@ -1,17 +1,17 @@
---
title: Vault SSH Certificate Authority
description: Steps followed to enable using Vault as a CA for ssh login
title: OpenBao SSH Certificate Authority
description: Steps followed to enable using OpenBao as a CA for ssh login
hero:
tagline: Steps followed for the v1.12.0 upgrade process
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/hashicorp-vault.webp
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openbao.webp
---
# Setup
[Reference Vault Documentation](https://developer.hashicorp.com/vault/docs/secrets/ssh/signed-ssh-certificates#host-key-signing)
[Reference OpenBao Documentation](https://openbao.org/docs/secrets/ssh/signed-ssh-certificates/)
I have set the documenation to use my own defaults and configuration. This also assumes a running and active Vault instance.
I have set the documentation to use my own defaults and configuration. This also assumes a running and active OpenBao instance.
## Enable the SSH CA
@@ -19,7 +19,7 @@ I followed the defaults mostly in the docs, reference the above link for details
Start with enabling the mount.
```bash
vault secrets enable -path=ssh-client-signer ssh
bao 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.
@@ -29,14 +29,14 @@ 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="..."
bao 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.
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 OpenBao UI.
```bash
vault write ssh-client-signer/roles/alexlebens -<<"EOH"
bao write ssh-client-signer/roles/alexlebens -<<"EOH"
{
"algorithm_signer": "rsa-sha2-256",
"allow_user_certificates": true,
@@ -61,7 +61,7 @@ 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.
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 OpenBao as the User and set the IdentityFile to the Key as generated above.
```
Host ps08rp
Hostname 10.232.1.51
@@ -75,7 +75,7 @@ Host ps08rp
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
curl -o /etc/ssh/trusted-user-ca-keys.pem https://bao.alexlebens.net/v1/ssh-client-signer/public_key
```
Then add that file to the sshd config.
@@ -89,21 +89,21 @@ This step is currently manual as I have few hosts that I need ssh for. The most
## Renew Client Certificate
Sign the client cert, on your machine, with the Vault CA.
Sign the client cert, on your machine, with the OpenBao 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
bao 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.
I added the following to my .zshrc to make this easier. So now I just run "bao-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'
# OpenBao
export BAO_ADDR="https://bao.alexlebens.net"
alias bao-renew='bao 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.
For troubleshooting purposes or clarification use the follow to inspect the cert.
```bash
ssh-keygen -Lf ~/.ssh/id_rsa_host-cert.pub
```

View File

@@ -0,0 +1,76 @@
---
title: Using Secret Store CSI with OpenBao
description: Mounting secrets inside pods using Secret Store CSI driver and OpenBao
hero:
tagline: Steps followed to mount the secrets
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/openbao.webp
---
This guide assumes both Secrets Store CSI and OpenBao are installed and working. Also, the Kubernetes auth method is enabled. I wrote a post [here](https://www.alexlebens.dev/blog/openbao-migration/) that detailed my steps to set these up.
NOTE: A catch I found is that the mount directory should be empty. There are issues when mounting a specific file into a directory that is already populated. For common uses, such as config files, use an env variable to change that path.
The following will be needed per namespace, with the SecretProviderClass per secret to mount.
## Secret Provider Class
This template is used to create the volume and retrieve the secret from OpenBao. Some notes:
- The provider is 'openbao' and the address should point to the internal service.
- The roleName referenced here is created in the next step.
- secretPath should include the secret store and data if its a v2 kv engine.
```yaml
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: web-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: web-config-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
provider: openbao
parameters:
baoAddress: "http://openbao-internal.openbao:8200"
roleName: web
objects: |
- objectName: config.yaml
secretPath: secret/data/web/config
secretKey: config.yaml
```
## Role
In the namespace where this secret is getting mounted there should be a ServiceAccount that will be use the role to retrieve the secret. This should also be the one used by the pod. It only needs read access to the secret path and I have created a policy called 'reader' for this.
Each ServiceAccount will need a role created.
```bash
bao write auth/kubernetes/role/web \
bound_service_account_names=web \
bound_service_account_namespaces=web \
policies=reader \
ttl=20m
```
## Mount
When using the [app-template](https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template) common chart the following is how to mount the secret. This needs to use the custom type to define the spec. secretProviderClass references the above template. Use the advancedMounts to specify the path for the file.
```yaml
persistence:
web-config:
type: custom
volumeSpec:
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: web-config-secret
advancedMounts:
main:
main:
- path: /config/config.yaml
readOnly: true
mountPropagation: None
subPath: config.yaml
```

View File

@@ -1,10 +1,10 @@
---
title: Documentation for my Homelab
description: Guides and reference for my homelab infrastructure.
title: Documentation
description: Guides and reference
hero:
tagline: Guides and reference for my homelab infrastructure.
tagline: Guides and reference
image:
file: ../../assets/autumn_mountain.png
file: ../../assets/documentation.svg
actions:
- text: Introduction
link: /reference/introduction/
@@ -13,7 +13,7 @@ hero:
import { Card, CardGrid, LinkCard } from '@astrojs/starlight/components';
## Hightlights
## Highlights
<CardGrid stagger>
<LinkCard
@@ -26,4 +26,9 @@ import { Card, CardGrid, LinkCard } from '@astrojs/starlight/components';
description="This site is built with Starlight, the Astro documentation theme. Check out the docs to learn more."
href="https://starlight.astro.build/"
></LinkCard>
<LinkCard
title="Get started with the 3D Printer"
description="Guide for setting up OrcaSlicer"
href="https://docs.alexlebens.dev/guides/3d-printer/orcaslicer/"
></LinkCard>
</CardGrid>

View File

@@ -0,0 +1,51 @@
---
title: 3D Printer
description: Specifications and basic information about the 3D printer
hero:
tagline: Specifications and basic information about the 3D printer
image:
file: https://cdn.shopify.com/s/files/1/0893/0603/8637/files/K1-_02-2.png?v=1762200477
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Quickly connect to its web page [here](http://printer.lebens-home.net/).</Aside>
# Overview
The 3D printer is a [Creality K1C](https://www.creality.com/products/k1c-carbon-3d-printer) which has several features that make it somewhat more user-friendly, such as auto leveling. Notably this model does not include automatic multi filament switching that newer versions have. It does use open source software and [Mainsail](https://docs.mainsail.xyz/) is installed as its web interface.
In order to print objects you first need a model, usually a stl file, then the model needs to be 'sliced' into instructions for the printer, then print. These guides document the process for this 3D printer.
## Specifications
| Atttribute| Size|
|---|----|
| Filament Diameter | 1.75mm |
| Nozzle Diameter | 0.4mm |
| Layer Height | 0.1-0.35mm |
| Printing Accuracy | 100±0.1mm |
| Build Volume | 220\*220\*250mm |
## Supported filament types
- ABS
- PLA
- PLA-CF
- PETG
- PET
- PET-CF
- TPU
- PA
- ASA
- PC
## Slicing file formats
- STL
- OBJ
- 3MF
## Printable file formats
- G-Code

View File

@@ -1,8 +1,8 @@
---
title: Introduction
title: Homelab
description: Overiew of the homelab
hero:
tagline: Steps followed for the v1.12.0 upgrade process
tagline: Overiew of the homelab
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/docs-collaboration.webp
sidebar: