Compare commits

..

1 Commits

Author SHA1 Message Date
22543f7cb2 fix(deps): update dependency astro to v6.2.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
test-build / build (pull_request) Successful in 54s
test-build / guarddog (pull_request) Successful in 6m14s
2026-05-01 12:04:34 +00:00
68 changed files with 722 additions and 830 deletions

View File

@@ -24,7 +24,7 @@ jobs:
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2.2.0 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.14 bun-version: 1.3.13
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile
@@ -119,7 +119,7 @@ jobs:
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2.2.0 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.14 bun-version: 1.3.13
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile

View File

@@ -27,7 +27,7 @@ jobs:
- name: Set up Bun - name: Set up Bun
uses: oven-sh/setup-bun@v2.2.0 uses: oven-sh/setup-bun@v2.2.0
with: with:
bun-version: 1.3.14 bun-version: 1.3.13
- name: Install Dependencies - name: Install Dependencies
run: bun install --frozen-lockfile run: bun install --frozen-lockfile

View File

@@ -1,58 +1,3 @@
## [0.33.1](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.33.0...0.33.1) (2026-05-13)
### Bug Fixes
* **deps:** update astro monorepo ([1ba3471](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/1ba34713fc080594bb3072434110020b80b3c6e9))
* **deps:** update dependency sanitize-html to v2.17.4 ([6c72bab](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/6c72bab2cf6ac47011c6449d0b4c9d2808312100))
# [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) # [0.28.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.27.1...0.28.0) (2026-04-27)

View File

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

1056
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{ {
"name": "site-documentation", "name": "site-documentation",
"type": "module", "type": "module",
"version": "0.33.1", "version": "0.28.0",
"scripts": { "scripts": {
"dev": "astro dev", "dev": "astro dev",
"build": "astro build", "build": "astro build",
@@ -12,17 +12,17 @@
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@astrojs/mdx": "5.0.5", "@astrojs/mdx": "5.0.4",
"@astrojs/node": "10.1.1", "@astrojs/node": "10.0.6",
"@astrojs/sitemap": "3.7.2", "@astrojs/sitemap": "3.7.2",
"@astrojs/starlight": "0.39.2", "@astrojs/starlight": "0.38.4",
"@tailwindcss/postcss": "4.3.0", "@tailwindcss/postcss": "4.2.4",
"@tailwindcss/vite": "4.3.0", "@tailwindcss/vite": "4.2.4",
"astro": "6.3.2", "astro": "6.2.0",
"sanitize-html": "2.17.4", "sanitize-html": "2.17.3",
"sharp": "0.34.5", "sharp": "0.34.5",
"starlight-theme-rapide": "0.5.2", "starlight-theme-rapide": "0.5.2",
"tailwindcss": "4.3.0" "tailwindcss": "4.2.4"
}, },
"devDependencies": { "devDependencies": {
"@saithodev/semantic-release-gitea": "2.1.0", "@saithodev/semantic-release-gitea": "2.1.0",
@@ -30,11 +30,11 @@
"@semantic-release/commit-analyzer": "13.0.1", "@semantic-release/commit-analyzer": "13.0.1",
"@semantic-release/git": "10.0.1", "@semantic-release/git": "10.0.1",
"@semantic-release/npm": "13.1.5", "@semantic-release/npm": "13.1.5",
"@semantic-release/release-notes-generator": "14.1.1", "@semantic-release/release-notes-generator": "14.1.0",
"@tailwindcss/forms": "0.5.11", "@tailwindcss/forms": "0.5.11",
"@tailwindcss/typography": "0.5.19", "@tailwindcss/typography": "0.5.19",
"@typescript-eslint/parser": "8.59.3", "@typescript-eslint/parser": "8.59.1",
"eslint": "10.3.0", "eslint": "10.2.1",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-astro": "1.7.0", "eslint-plugin-astro": "1.7.0",
"prettier": "3.8.3", "prettier": "3.8.3",
@@ -43,6 +43,6 @@
"semantic-release": "25.0.3", "semantic-release": "25.0.3",
"semantic-release-export-data": "1.2.0", "semantic-release-export-data": "1.2.0",
"typescript": "6.0.3", "typescript": "6.0.3",
"typescript-eslint": "8.59.3" "typescript-eslint": "8.59.1"
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

View File

@@ -1,2 +0,0 @@
<?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>

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 598 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

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. 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 # Purpose
Podcasts, Audiobooks, and Books. Podcasts, Audiobbooks, and Books.
# Notes # Notes

View File

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

View File

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

View File

@@ -20,10 +20,10 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose # Purpose
Very fast and declarative config DNS with built-in ad blocking. Used for local domain name configuration as well. Very fast and declarative config DNS with built in adblocking. Used for local domain name configuration as well.
# Notes # 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. 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 aggressive blocking. DNS over TLS to Cloudflare servers and somewhat agressive 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. 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 DigitalOcean S3 endpoints. Backups to the NAS with replication of the base backups to remote and DigialOcean 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. 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 # Notes
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. 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.
Deploys as part of the Talos upgrades, but managed by Helm chart for the above custom configuration. Deploys as part of the Talos upgrades, but managed by Helm chart for the above custom configuration.

View File

@@ -26,7 +26,7 @@ Used for applications that need to store a lot of data, but not over the NFS con
## Resizing the Prometheus disk ## 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. 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 https://github.com/democratic-csi/democratic-csi/issues/491#issuecomment-3778463893

View File

@@ -20,4 +20,4 @@ Automatic service that cleans up local caches of images.
# Notes # 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 # Purpose
Very useful, declarative way to make Kubernetes Secrets from an external provider. Very useful, decalarative way to make Kubernetes Secrets from an external provider.
# Notes # Notes

View File

@@ -24,4 +24,4 @@ RSS reader for various news sites as well as software releases.
# Notes # Notes
A little finicky to set up, predates popular use of containers, but still functions quite well. I mostly use it with an Android app. A little finicky to setup, 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 # Purpose
Up time and down notifications for all endpoints, both local and public. Uptime and down notifications for all endpoints, both local and public.
# Notes # Notes

View File

@@ -20,4 +20,4 @@ Plugin used to give devices to pods, specifically tun devices for networking.
# Notes # Notes
Used by recommendation in [Tailscale Docs](https://docs.siderolabs.com/kubernetes-guides/advanced-guides/device-plugins). Used by recomendation 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 # Purpose
Git repository for storing all my code. Git repoistory for storing all my code.
# Notes # 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 # 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. Any of my own images also get stored here to deploy.

View File

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

View File

@@ -20,6 +20,6 @@ Manages deployments of single nodes hosts with docker compose stacks.
# Notes # Notes
Manual setup, but follows Git ops with webhook triggered updates from Gitea. Manual setup, but follows Gitops 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. 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 # Purpose
Provides higher level grammar and spell checking service. Provides higher level grammer and spell checking service.
# Notes # Notes

View File

@@ -20,6 +20,6 @@ Servarr app that manages the metadata and organization of music.
# Notes # 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. Runs on nightly branch to integrate plugins.

View File

@@ -16,7 +16,7 @@ hero:
# Purpose # 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 # Notes

View File

@@ -20,12 +20,12 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose # Purpose
Collects logs from pods and makes them available in Grafana. Collects logs from pods and makes them availabile in Grafana.
# Notes # Notes
Uses iSCSI for log storage. 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 retention 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.
Maybe someday will integrate AI from [Ollama](https://docs.alexlebens.dev/applications/ollama/) to monitor and report on logs. 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 # 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 # Notes

View File

@@ -24,6 +24,6 @@ Music server that uses the subsonic protocol.
# Notes # Notes
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/). 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/).
While I can use [Jellyfin](https://docs.alexlebens.dev/applications/jellyfin) for music, I prefer separation for dedicated media types. 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 # Notes
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). 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).

View File

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

View File

@@ -24,8 +24,8 @@ Secrets manager.
# Notes # Notes
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them available in cluster. Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them availible in cluster.
Can store other secrets, but primarily used for cluster secrets. 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 # Notes
So dumb and complex to set up, has hard dependency on [Temporal](https://github.com/temporalio). So dumb and complex to setup, has hard dependency on [Temporal](https://github.com/temporalio).
Haven't begun to use, but want to connect to automate posting of my blog. 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 # Notes
Used by a few apps, such as homepage where it's entirely configured by ConfigMap. Used by a few apps, such as homepage where its entirely configured by ConfigMap.

View File

@@ -22,7 +22,7 @@ import { Aside } from '@astrojs/starlight/components';
# Purpose # Purpose
Clustered storage that runs on the SSDs in cluster to provide durable and reliable block and file system volumes. Clustered storage that runs on the SSDs in cluster to provide durable and reliable block and filesystem volumes.
# Notes # 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. 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 durability 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 durabiliy during node outages.

View File

@@ -0,0 +1,27 @@
---
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 # Purpose
Analytic service for my websites. Analytics service for my websites.
# Notes # Notes

View File

@@ -24,4 +24,4 @@ Metrics from the Shelly Plug.
# Notes # 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 # Purpose
Manages metadata for TV shows. Manages metadata for tv shows.
# Notes # Notes

View File

@@ -0,0 +1,25 @@
---
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 # Purpose
Runs health checks on media files. Runs healthchecks on media files.
# Notes # Notes
Need to check the error queue, sometimes there are false errors. 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 # 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 # Purpose
Archives YouTube videos. Archives Youtube videos.
# Notes # 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 # Purpose
Generates metrics from the Ubiquity network devices. Geneates metrics from the Ubqituiy network devices.
# Notes # Notes

View File

@@ -24,8 +24,8 @@ Secrets manager.
# Notes # Notes
Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them available in cluster. Retrieved by [External Secrets](https://docs.alexlebens.dev/applications/external-secrets/) for making them availible in cluster.
Can store other secrets, but primarily used for cluster secrets. 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

@@ -1,18 +0,0 @@
---
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

@@ -1,88 +0,0 @@
---
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

@@ -1,57 +0,0 @@
---
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

@@ -11,7 +11,7 @@ hero:
[Reference OpenBao Documentation](https://openbao.org/docs/secrets/ssh/signed-ssh-certificates/) [Reference OpenBao Documentation](https://openbao.org/docs/secrets/ssh/signed-ssh-certificates/)
I have set the documentation to use my own defaults and configuration. This also assumes a running and active OpenBao instance. I have set the documenation to use my own defaults and configuration. This also assumes a running and active OpenBao instance.
## Enable the SSH CA ## Enable the SSH CA
@@ -103,7 +103,7 @@ alias bao-renew='bao write -field=signed_key ssh-client-signer/sign/alexlebens p
### View Cert Details ### View Cert Details
For troubleshooting purposes or clarification use the follow to inspect the cert. For troubleshooting purposes or clafification use the follow to inspect the cert.
```bash ```bash
ssh-keygen -Lf ~/.ssh/id_rsa_host-cert.pub ssh-keygen -Lf ~/.ssh/id_rsa_host-cert.pub
``` ```

View File

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

View File

@@ -1,51 +0,0 @@
---
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: Homelab title: Introduction
description: Overiew of the homelab description: Overiew of the homelab
hero: hero:
tagline: Overiew of the homelab tagline: Steps followed for the v1.12.0 upgrade process
image: image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/docs-collaboration.webp file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/docs-collaboration.webp
sidebar: sidebar: