Compare commits

..

1 Commits

Author SHA1 Message Date
1f593e6431 Update Node.js to v24.12.0
All checks were successful
test-build / build (pull_request) Successful in 43s
2025-12-24 00:02:36 +00:00
131 changed files with 6228 additions and 5444 deletions

View File

@@ -1,340 +0,0 @@
name: release-image
on:
push:
branches:
- release
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.1
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.12
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
with:
path: |
.astro
node_modules/.vite
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}
restore-keys: |
${{ runner.os }}-astro-
# - name: Lint Code
# run: bun run lint
- name: Build Project
run: bun run build
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Test Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'During release tests failed for building Site Documentation'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=release-image.yaml", "clear": true}]'
image: true
guarddog:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12.13'
- name: Install GuardDog
run: |
python3 -m pip install --upgrade pip
python3 -m pip install guarddog
- name: Run GuardDog
run: |
guarddog npm scan ./
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Security Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'During release guarddog scan failed for Site Documentation'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=release-image.yaml", "clear": true}]'
image: true
semantic-release:
needs: [ build, guarddog ]
runs-on: ubuntu-js
outputs:
new-release-published: ${{ steps.semantic.outputs.new-release-published }}
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
new-release-git-tag: ${{ steps.semantic.outputs.new-release-git-tag }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
token: ${{ secrets.BOT_TOKEN }}
- name: Set up Node
uses: actions/setup-node@v6
with:
node-version: 24.14.1
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.12
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Run Semantic Release
id: semantic
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}
NODE_PATH: ${{ github.workspace }}/node_modules
run: |
bun run semantic-release
release-harbor:
runs-on: ubuntu-js
needs: semantic-release
if: ${{ needs.semantic-release.outputs.new-release-published == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Login to Harbor Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
images: |
${{ vars.REGISTRY_HOST }}/images/site-documentation
tags: |
type=ref,event=branch
type=sha,format=long
type=raw,value=latest,enable=${{ needs.semantic-release.outputs.new-release-published == 'true' }}
type=semver,pattern={{version}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}}.{{minor}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
APP_VERSION=${{ needs.semantic-release.outputs.new-release-version }}
COMMIT_SHA=${{ github.sha }}
IS_RELEASE=true
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Documentation'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Harbor Image for Site Documentation has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Harbor Image for Site Documentation has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=release-image.yml", "clear": true}]'
image: true
release-gitea:
runs-on: ubuntu-js
needs: [ semantic-release, release-harbor ]
if: |
always() &&
needs.semantic-release.outputs.new-release-published == 'true'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
ref: release
- name: Login to Gitea Registry
uses: docker/login-action@v4
with:
registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Docker
uses: docker/login-action@v4
with:
registry: ${{ vars.DH_REGISTRY }}
username: ${{ secrets.DH_USERNAME }}
password: ${{ secrets.DH_TOKEN }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v6
with:
images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
tags: |
type=ref,event=branch
type=sha,format=long
type=raw,value=latest,enable=${{ needs.semantic-release.outputs.new-release-published == 'true' }}
type=semver,pattern={{version}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}}.{{minor}},value=${{ needs.semantic-release.outputs.new-release-version }}
type=semver,pattern={{major}},value=${{ needs.semantic-release.outputs.new-release-version }}
- name: Build and Push Image
uses: docker/build-push-action@v7
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
APP_VERSION=${{ needs.semantic-release.outputs.new-release-version }}
COMMIT_SHA=${{ github.sha }}
IS_RELEASE=true
file: ./Dockerfile
cache-from: type=gha
cache-to: type=gha,mode=max
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Documentation'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Gitea Image for Site Documentation has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Gitea Image for Site Documentation has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=release-image.yaml", "clear": true}]'
image: true

View File

@@ -0,0 +1,98 @@
name: release-image
on:
push:
tags:
- 0.*
workflow_dispatch:
jobs:
release:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.REPOSITORY_HOST }}
username: ${{ gitea.actor }}
password: ${{ secrets.REPOSITORY_TOKEN }}
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY_HOST }}
username: ${{ vars.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_SECRET }}
- name: Create Kubeconfig
run: |
mkdir $HOME/.kube
echo "${{ secrets.KUBECONFIG_BUILDX }}" > $HOME/.kube/config
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
driver: kubernetes
driver-opts: |
namespace=gitea
qemu.install=true
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["harbor.alexlebens.net/proxy-hub.docker/"]
- name: Available Platforms
run: echo ${{ steps.buildx.outputs.platforms }}
- name: Extract Metadata
id: meta
uses: docker/metadata-action@v5
with:
tags: |
type=ref,event=branch
type=ref,event=tag
images: |
${{ vars.REPOSITORY_HOST }}/${{ gitea.repository }}
${{ vars.REGISTRY_HOST }}/images/site-documentation
- name: Build and Push Image
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
file: ./Dockerfile
- name: ntfy Success
uses: niniyas/ntfy-action@master
if: success()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Success - Site Documentation'
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: 'Image for Site Documentation has been released!'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Release Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Image for Site Documentation has failed to be released.'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=release-image.yml", "clear": true}]'
image: true

View File

@@ -2,14 +2,18 @@ name: renovate
on:
schedule:
- cron: '0 */6 * * *'
- cron: '@daily'
push:
branches:
- main
workflow_dispatch:
jobs:
renovate:
runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:43
container: ghcr.io/renovatebot/renovate:42
steps:
- name: Checkout
uses: actions/checkout@v6
@@ -21,10 +25,8 @@ jobs:
RENOVATE_ENDPOINT: ${{ vars.INSTANCE_URL }}
RENOVATE_REPOSITORIES: alexlebens/site-documentation
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net>
RENOVATE_REDIS_URL: ${{ vars.RENOVATE_REDIS_URL }}
LOG_LEVEL: debug
LOG_LEVEL: info
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }}
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}
RENOVATE_REGISTRY_ALIASES: '{"dhi.io": "dhi.io"}'
RENOVATE_HOST_RULES: '[{"matchHost":"dhi.io","hostType":"docker","username":"${{ secrets.RENOVATE_DHI_USER }}","password":"${{ secrets.RENOVATE_DHI_TOKEN }}"}]'
RENOVATE_REDIS_URL: ${{ vars.RENOVATE_REDIS_URL }}

View File

@@ -4,9 +4,6 @@ on:
push:
branches:
- main
paths-ignore:
- '.gitea/workflows/**'
- '**.md'
pull_request:
branches:
@@ -19,34 +16,25 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Node
- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
version: 10.x
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24.14.1
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.3.12
node-version: 24.11.1
cache: pnpm
- name: Install Dependencies
run: bun install --frozen-lockfile
- name: Cache Astro Build Cache
uses: actions/cache@v5
with:
path: |
.astro
node_modules/.vite
key: ${{ runner.os }}-astro-${{ hashFiles('**/*.astro', 'astro.config.mjs') }}
restore-keys: |
${{ runner.os }}-astro-
run: pnpm install
# - name: Lint Code
# run: bun run lint
# run: pnpm lint
- name: Build Project
run: bun run build
run: pnpm build
- name: ntfy Failed
uses: niniyas/ntfy-action@master
@@ -62,38 +50,3 @@ jobs:
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=test-build.yaml", "clear": true}]'
image: true
guarddog:
runs-on: ubuntu-js
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.12.13'
- name: Install GuardDog
run: |
python3 -m pip install --upgrade pip
python3 -m pip install guarddog
- name: Run GuardDog
run: |
guarddog npm scan ./
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: '${{ secrets.NTFY_URL }}'
topic: '${{ secrets.NTFY_TOPIC }}'
title: 'Security Failure - Site Documentation'
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: 'Guarddog scan failed for Site Documentation'
icon: 'https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png'
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/site-documentation/actions?workflow=test-build.yaml", "clear": true}]'
image: true

2
.npmrc Normal file
View File

@@ -0,0 +1,2 @@
engine-strict=true
save-exact=true

View File

@@ -1,17 +0,0 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-merge-conflict
- id: check-json
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v4.0.0-alpha.11
hooks:
- id: prettier
types_or: [javascript, typescript, css, scss, html, json, yaml, markdown]
additional_dependencies:
- prettier
- prettier-plugin-astro
- prettier-plugin-tailwindcss

View File

@@ -1,18 +0,0 @@
{
"branches": ["release"],
"tagFormat": "${version}",
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"semantic-release-export-data",
["@semantic-release/npm", { "npmPublish": false }],
["@semantic-release/git", {
"assets": ["package.json", "CHANGELOG.md"],
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
}],
["@saithodev/semantic-release-gitea", {
"giteaUrl": "https://gitea.alexlebens.dev"
}]
]
}

View File

@@ -1,207 +0,0 @@
# [0.23.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.22.0...0.23.0) (2026-04-10)
### Bug Fixes
* **deps:** update dependency astro to v6.1.5 ([b49be7b](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/b49be7bc09918c8c39572cabd903e3f73a2ef6a3))
* wrong source ([ddc7ec3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/ddc7ec300859240497cc65070d253ba02b794b06))
### Features
* remove dep-track ([357eaf3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/357eaf37eda2b9558b49292970f7765f07ece0c1))
# [0.22.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.21.0...0.22.0) (2026-04-08)
### Bug Fixes
* **deps:** update dependency @astrojs/starlight to v0.38.3 ([6607a36](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/6607a36ad4a6b66719685cc84af2790a210dfc7f))
* **deps:** update dependency astro to v6.1.4 ([7502589](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/75025890ef0577278c44d3678671ca518798b0ec))
### Features
* add more apps ([a1589ee](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a1589ee88aed1c8e47d906f30b2db7ab78f274a4))
* add more apps ([c1f7e19](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/c1f7e193fc126ff4d94d2209a96fb29254c705fd))
* add more apps ([3b9ca7e](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3b9ca7e76ea44387ca000a6b039593214891a295))
* add more apps ([0d9a1fa](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/0d9a1fa93d6b98dc6e88879b575769868bae5d57))
* add more apps ([e04b5f0](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/e04b5f0e060fe7e7b6471ff0d7c721db366412f4))
* update tsconfig for v8 ([5c4a10a](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/5c4a10acacb17d775e54f300eb280fb51e098bea))
# [0.21.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.20.0...0.21.0) (2026-04-07)
### Features
* add more apps ([fa91135](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/fa911350597b0dff19b83956b9947a9e7884ca4a))
* add more apps ([32f11ff](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/32f11ff67968b8a9239941facff679a607ca6e57))
* add more apps ([0e04e39](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/0e04e396e4bf749bde21aebd0647df6e6be4f80f))
* add more apps ([451dd28](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/451dd2859b9d5072b1ab0f41b5f7d7ba4201cb5a))
* add more apps ([ea1e36d](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/ea1e36da0d271b75852939c339f7e768964d7e2c))
* add more apps ([94a03d0](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/94a03d070d32a165f8b9e180291aad7f751b3ebe))
* add more apps ([b210267](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/b2102678aacd3e1659486740fdebfd8560015bb7))
* add more apps ([c5b230e](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/c5b230e94e985c608568c38a5c497af9b7bd5003))
# [0.20.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.19.0...0.20.0) (2026-04-06)
### Features
* add more apps ([b82b3f0](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/b82b3f09cc7a649d52f3495e5f11b1edb2856796))
# [0.19.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.18.0...0.19.0) (2026-04-06)
### Features
* add more apps ([9b906fa](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/9b906fa18fd2cb4888bccc1bf0ba51ea795a12c3))
* change to mdx ([53cbb04](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/53cbb049ed717e3b4890af864c0ce0cd205c751e))
# [0.18.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.17.0...0.18.0) (2026-04-05)
### Features
* add more apps ([58a8faf](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/58a8faf79563a7570f69a1863a3f4b056352dc2f))
* add more apps ([3f3e353](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3f3e35396e56a91662807971e5b09e6c25bb067a))
# [0.17.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.16.0...0.17.0) (2026-04-05)
### Features
* add more apps ([f627fbe](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/f627fbe3165af551a546fff41ef26431a919ea02))
* add ntfy ([89649f9](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/89649f904f0304b5e1f41eaec4faa07a409f679d))
# [0.16.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.15.0...0.16.0) (2026-04-04)
### Features
* add more apps ([57aec90](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/57aec90c9e0c9b51c238a76a82f7d4f0a3a14195))
* add more apps ([425651b](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/425651bd309ba215ec1fbd618882e98b3fad17b4))
* add more apps ([2ccfeca](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/2ccfecaf63b623c0fc7a847d5d81ca8d54c991bd))
* add more apps ([76a568a](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/76a568a61bb35511d84deaeb86eadc2a4643b473))
* add more apps ([09567e2](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/09567e2c266fd1d2f66ba42f5ed6d3cb134216ae))
# [0.15.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.14.0...0.15.0) (2026-04-02)
### Features
* add more apps ([3ce50ce](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3ce50ceccd12c8059f3c5146f6c0ad90d75c47b7))
# [0.14.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.13.0...0.14.0) (2026-04-01)
### Bug Fixes
* **deps:** pin dependencies ([75a9af6](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/75a9af6d0b907c90dba7b0969624c1daee8a0435))
### Features
* add homepage ([d894615](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/d8946158b04f49876cc9aff79004f92ccbea6a1c))
* change code theme ([dbe3d5c](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/dbe3d5cdd20321ef276c3e36ca8877ada7739486))
# [0.13.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.12.0...0.13.0) (2026-03-31)
### Features
* documentation on vault ssh ([648fb31](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/648fb319b192ecd7826fe03599f7a0ee55a419ea))
# [0.12.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.11.0...0.12.0) (2026-03-30)
### Features
* add more apps ([e13f3e3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/e13f3e30e2a73a712008f65cc5932cbe1e71adb2))
* add more apps ([ef4ff67](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/ef4ff67818d2758e21b9f0076519ca9221f74bb0))
* add more apps ([32eacf8](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/32eacf8df7cd07eaf33a46d9df88e22f22d0cbf6))
# [0.11.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.10.0...0.11.0) (2026-03-27)
### Features
* add more apps ([2221cbb](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/2221cbb0993595d7b8641fa4ffbc2fe874cdff39))
* add more apps ([82736ec](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/82736ec2a95db97abc7337ec1849dbb97a0fca5e))
# [0.10.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.9.0...0.10.0) (2026-03-26)
### Features
* add more apps ([33b64b0](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/33b64b0122a8ff734e632d0fdcaf92a474e1d631))
# [0.9.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.8.0...0.9.0) (2026-03-26)
### Features
* add more apps ([28910c8](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/28910c8ee57a2436cbe1ca01e95b85d8600f360e))
* collapse apps by default, too many ([79b2f0d](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/79b2f0d1c89da74693ffddd78460197cd3d91bd5))
# [0.8.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.7.0...0.8.0) (2026-03-25)
### Features
* add more apps ([c69fde3](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/c69fde38f93cd8f8fe50503c7e3b0523eeb73775))
# [0.7.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.6.0...0.7.0) (2026-03-25)
### Features
* add more apps ([8e49a12](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/8e49a12511f26de4060ff2aaef0f707446e210bd))
* change schedule ([4077d32](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/4077d3289cd2a87d8499b31eb6a70fd460aa72e4))
# [0.6.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.5.0...0.6.0) (2026-03-23)
### Features
* add more apps ([ce3d1a4](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/ce3d1a4a27d3e7850f05cc91fd3e1bae42ef5cea))
# [0.5.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.4.0...0.5.0) (2026-03-23)
### Features
* add argo-cd ([36be56e](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/36be56e4502cbc40a7380ef1f7124b002ba7c583))
# [0.4.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.3.0...0.4.0) (2026-03-23)
### Bug Fixes
* remove react deps ([5e97a52](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/5e97a524ba045398267f80f55c40288ab40f0d47))
### Features
* add and update pre-commit ([95805dc](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/95805dcd071dd08e1e6451d96b2d0d1058abedaf))
* add applications, actual ([e21d142](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/e21d1426d23c7deee7ccd415e8ad528f3a9c0b08))
* add argo-workflows ([abde3db](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/abde3db3c76a37ffda8232f8293b8b402eaef81e))
* merge ([a3e6e65](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/a3e6e65c79a92d34cc4b0fffdbba7719bcb14b5d))
* remove splash template ([3fecb72](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/3fecb72e89af7eac1d4fa04e7ec5280c6cf546c8))
# [0.3.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.2.0...0.3.0) (2026-03-15)
### Features
* add and update pre-commit ([972bbff](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/972bbffb41020489508660c261559b0e6c806ca6))
# [0.2.0](http://gitea-http.gitea:3000/alexlebens/site-documentation/compare/0.1.7...0.2.0) (2026-03-12)
### Features
* add robots ([4ef4353](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/4ef43534a0f26bc5593258c9cd6a31d62283929d))
* switch to bun ([7413830](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/74138302a4c2ad45a850459c47a17dd09014f3ad))
* trigger minor version update ([7a9b62d](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/7a9b62dc048ffd947bb6dd41523091bbc9346e84))
* use alpine-dev for bun builder ([4575bfb](http://gitea-http.gitea:3000/alexlebens/site-documentation/commit/4575bfb9138bc9ca5f9d93e845155fc56d3a8491))

View File

@@ -1,35 +1,35 @@
ARG REGISTRY=dhi.io
FROM ${REGISTRY}/bun:1.3.11-alpine3.22-dev AS builder
ARG REGISTRY=docker.io
FROM ${REGISTRY}/node:24.12.0-alpine3.22 AS base
LABEL version="0.0.5"
LABEL description="Astro based documentation website"
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
RUN corepack enable
WORKDIR /app
COPY package.json bun.lock ./
COPY package.json pnpm-lock.yaml ./
FROM builder AS prod-deps
RUN --mount=type=cache,id=bun,target=/root/.bun/install/cache \
bun install --production --frozen-lockfile
FROM base AS prod-deps
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile
FROM builder AS build-deps
RUN --mount=type=cache,id=bun,target=/root/.bun/install/cache \
bun install --frozen-lockfile
FROM prod-deps AS build-deps
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
FROM build-deps AS build
COPY . .
RUN bun run build
RUN pnpm run build
RUN pnpm prune --prod
FROM ${REGISTRY}/bun:1.3.11-alpine3.22 AS runtime
WORKDIR /app
FROM base AS runtime
COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app/dist /app/dist
ARG APP_VERSION=latest
ARG APP_VERSION
ENV HOST=0.0.0.0
ENV SITE_URL=https://docs.alexlebens.dev
ENV PORT=4321
LABEL version=$APP_VERSION
LABEL description="Astro based documentation website"
EXPOSE $PORT
CMD ["bun", "run", "./dist/server/entry.mjs"]
CMD ["node", "./dist/server/entry.mjs"]

View File

@@ -1,6 +1,6 @@
# MIT License
Copyright (c) 2026 Alex Lebens
Copyright (c) 2025 Alex Lebens
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -1,4 +1,4 @@
# Starlight
# Starlight Starter Kit: Basics
[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
@@ -6,7 +6,9 @@
pnpm create astro@latest -- --template starlight
```
## Project Structure
> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!
## 🚀 Project Structure
Inside of your Astro + Starlight project, you'll see the following folders and files:
@@ -29,12 +31,19 @@ Images can be added to `src/assets/` and embedded in Markdown with a relative li
Static assets, like favicons, can be placed in the `public/` directory.
## Commands
## 🧞 Commands
All commands are run from the root of the project, from a terminal:
| Command | Action |
| :--------------------- | :----------------------------------------------- |
| `bun install` | Installs dependencies |
| `bun run dev` | Starts local dev server at `localhost:4321` |
| `bun run build` | Build your production site to `./dist/` |
| `pnpm install` | Installs dependencies |
| `pnpm dev` | Starts local dev server at `localhost:4321` |
| `pnpm build` | Build your production site to `./dist/` |
| `pnpm preview` | Preview your build locally, before deploying |
| `pnpm astro ...` | Run CLI commands like `astro add`, `astro check` |
| `pnpm astro -- --help` | Get help using the Astro CLI |
## 👀 Want to learn more?
Check out [Starlights docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).

View File

@@ -2,9 +2,9 @@
import { defineConfig } from "astro/config";
import node from "@astrojs/node";
import sitemap from '@astrojs/sitemap';
import tailwindcss from "@tailwindcss/vite";
import starlight from "@astrojs/starlight";
import starlightThemeRapide from 'starlight-theme-rapide'
import catppuccin from "@catppuccin/starlight";
const getSiteURL = () => {
if (process.env.SITE_URL) {
@@ -13,54 +13,52 @@ const getSiteURL = () => {
return "http://localhost:4321";
};
// https://astro.build/config
export default defineConfig({
site: getSiteURL(),
security: { csp: true },
prefetch: true,
integrations: [
sitemap(),
tailwindcss(),
starlight({
title: "Alex Lebens Docs",
customCss: [
'./src/styles/custom.css',
],
expressiveCode: {
themes: ['vitesse-light', 'vitesse-dark'],
},
title: "My Docs",
social: [
{
icon: "external",
label: "Homepage",
href: "https://www.alexlebens.dev",
icon: "github",
label: "GitHub",
href: "https://github.com/withastro/starlight",
},
],
plugins: [
starlightThemeRapide()
catppuccin({
dark: { flavor: "macchiato", accent: "sapphire" },
light: { flavor: "latte", accent: "sky" }
})
],
sidebar: [
{
label: "Guides",
items: [
// Each item here is one entry in the navigation menu.
{ label: "Example Guide", slug: "guides/example" },
],
},
{
label: "Reference",
autogenerate: { directory: "reference" },
},
{
label: "Guides",
autogenerate: { directory: "guides" },
},
{
label: "Applications",
collapsed: true,
autogenerate: { directory: "applications" },
},
],
})
}),
],
output: 'static',
plugins: {
"@tailwindcss/postcss": {},
},
vite: {
plugins: [tailwindcss()],
},
adapter: node({
mode: 'standalone',
mode: "standalone",
}),
});

2448
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.23.0",
"version": "0.0.5",
"scripts": {
"dev": "astro dev",
"build": "astro build",
@@ -12,37 +12,27 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/mdx": "5.0.3",
"@astrojs/node": "10.0.4",
"@astrojs/sitemap": "3.7.2",
"@astrojs/starlight": "0.38.3",
"@tailwindcss/postcss": "4.2.2",
"@tailwindcss/vite": "4.2.2",
"astro": "6.1.5",
"sanitize-html": "2.17.2",
"sharp": "0.34.5",
"starlight-theme-rapide": "0.5.2",
"tailwindcss": "4.2.2"
"@astrojs/mdx": "4.3.13",
"@astrojs/node": "9.5.1",
"@astrojs/starlight": "^0.37.1",
"@catppuccin/starlight": "1.0.2",
"@tailwindcss/postcss": "^4.1.17",
"@tailwindcss/vite": "^4.1.17",
"astro": "5.16.6",
"motion": "^12.23.26",
"sanitize-html": "^2.17.0",
"sharp": "^0.34.5",
"tailwindcss": "^4.1.17"
},
"devDependencies": {
"@saithodev/semantic-release-gitea": "2.1.0",
"@semantic-release/changelog": "6.0.3",
"@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",
"@tailwindcss/forms": "0.5.11",
"@tailwindcss/typography": "0.5.19",
"@typescript-eslint/parser": "8.58.1",
"eslint": "10.2.0",
"@tailwindcss/typography": "^0.5.19",
"@typescript-eslint/parser": "8.50.1",
"eslint": "9.39.2",
"eslint-config-prettier": "10.1.8",
"eslint-plugin-astro": "1.7.0",
"prettier": "3.8.2",
"prettier-plugin-astro": "0.14.1",
"prettier-plugin-tailwindcss": "0.7.2",
"semantic-release": "25.0.3",
"semantic-release-export-data": "1.2.0",
"typescript": "6.0.2",
"typescript-eslint": "8.58.1"
"eslint-plugin-astro": "1.5.0",
"prettier": "^3.7.4",
"prettier-plugin-astro": "^0.14.1",
"prettier-plugin-tailwindcss": "^0.7.2",
"typescript-eslint": "8.50.1"
}
}
}

5972
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 696 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -5,11 +5,10 @@
"mergeConfidence:all-badges",
":rebaseStalePrs"
],
"timezone": "America/Chicago",
"timezone": "US/Central",
"labels": [],
"prHourlyLimit": 0,
"prConcurrentLimit": 0,
"rangeStrategy": "pin",
"packageRules": [
{
"description": "Label dependency",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 MiB

BIN
src/assets/houston.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

View File

@@ -1,23 +0,0 @@
---
title: Actual
description: Actual Budget is a super fast and privacy-focused app for managing finances.
hero:
tagline: Actual Budget is a super fast and privacy-focused app for managing finances.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/actual-budget.webp
actions:
- text: Source
link: https://github.com/actualbudget/actual
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/actual
icon: right-arrow
---
# Purpose
Budgeting and managing finances.
# Notes
Currently unused, need to setup bank integration or some other for of automation.

View File

@@ -1,29 +0,0 @@
---
title: Argo CD
description: Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
hero:
tagline: Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/argo-cd.webp
actions:
- text: Source
link: https://github.com/argoproj/argo-cd
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/argocd
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has an internal [Grafana Dashboard](https://grafana.alexlebens.net/goto/ffiq2at9b8p34d?orgId=1).</Aside>
# Purpose
Deploying and managing resources within Kubernetes clusters.
# Notes
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.

View File

@@ -1,25 +0,0 @@
---
title: Audiobookshelf
description: Audiobookshelf is a self-hosted audiobook and podcast server.
hero:
tagline: Audiobookshelf is a self-hosted audiobook and podcast server.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/audiobookshelf.webp
actions:
- text: Source
link: https://github.com/advplyr/audiobookshelf
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/audiobookshelf
icon: right-arrow
---
# Purpose
Podcasts, Audiobbooks, and Books.
# Notes
Mostly for podcast archiving and listening to audiobooks. Backup for [Grimmory](https://docs.alexlebens.dev/applications/grimmory/) for books, but not primary.
Kind of difficult to manage podcasts though, and the phone apps don't auto download to the phone.

View File

@@ -1,29 +0,0 @@
---
title: Authentik
description: Authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.
hero:
tagline: Authentik is an open-source Identity Provider (IdP) for modern SSO. It supports SAML, OAuth2/OIDC, LDAP, RADIUS, and more, designed for self-hosting from small labs to large production clusters.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/authentik.webp
actions:
- text: Source
link: https://github.com/goauthentik/authentik
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/authentik
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [auth.alexlebens.dev](https://auth.alexlebens.dev)</Aside>
<Aside type="tip">Has an internal [Grafana Dashboard](https://grafana.alexlebens.net/goto/efiq29z9u4dmob?orgId=1)</Aside>
# Purpose
Single sign on authentication for applications that support OIDC.
# Notes
Available at public, local, and Tailscale endpoints. Apps are configured for their like endppoints.

View File

@@ -1,25 +0,0 @@
---
title: Backrest
description: Backrest is a web-accessible backup solution built on top of restic.
hero:
tagline: Backrest is a web-accessible backup solution built on top of restic.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/backrest.webp
actions:
- text: Source
link: https://github.com/garethgeorge/backrest
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/backrest
icon: right-arrow
---
# Purpose
Backup system for files on the NAS. For size contraint 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.
Mainly just for irreplacable files.

View File

@@ -1,23 +0,0 @@
---
title: Bazarr
description: Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
hero:
tagline: Bazarr is a companion application to Sonarr and Radarr. It manages and downloads subtitles based on your requirements.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/bazarr.webp
actions:
- text: Source
link: https://github.com/morpheus65535/bazarr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/bazarr
icon: right-arrow
---
# Purpose
Downloads subtitles for Sonarr and Radarr managed files.
# Notes
Haven't setup properly or sure if subtitles are being downloaded. Since I don't use subtitles very often I have thought about removing this.

View File

@@ -1,29 +0,0 @@
---
title: Blocky
description: Blocky is a DNS proxy and ad-blocker for the local network written in Go with following features.
hero:
tagline: Blocky is a DNS proxy and ad-blocker for the local network written in Go with following features.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/blocky.webp
actions:
- text: Source
link: https://github.com/0xERR0R/blocky
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/blocky
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has an [Grafana Dashboard](https://grafana.alexlebens.net/goto/afiq277mq7mkge?orgId=1)</Aside>
# Purpose
Very fast and declarative config DNS with built in adblocking. 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.

View File

@@ -1,27 +0,0 @@
---
title: Cert Manager
description: Cert Manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.
hero:
tagline: Cert Manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.
image:
file: https://raw.githubusercontent.com/cert-manager/cert-manager/52bddefde7b2d44841c77cf15038d51330cb9748/logo/logo.svg
actions:
- text: Source
link: https://github.com/cert-manager/cert-manager
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/cert-manager
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has an [Grafana Dashboard](https://grafana.alexlebens.net/goto/ffiq2il12bwn4b?orgId=1)</Aside>
# Purpose
Manages certificates inside the Kubernetes cluster.
# Notes
Commonly used automatic background service used by other services.

View File

@@ -1,29 +0,0 @@
---
title: Cilium
description: Cilium is a networking, observability, and security solution with an eBPF-based dataplane.
hero:
tagline: Cilium is a networking, observability, and security solution with an eBPF-based dataplane.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/cilium.webp
actions:
- text: Source
link: https://github.com/cilium/cilium
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/cilium
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has a dedicated [Dashboard with Hubble](https://hubble.alexlebens.net/)</Aside>
# Purpose
Core networking service connecting nodes and pods together. Provides a metal LoadBalancer service.
# Notes
One of the most important apps in cluster. Any updates need special care to ensure success.
Long term goals include migrating the Ingress/Gateway from [Traefik](https://docs.alexlebens.dev/applications/traefik/) to Cilium and using BGP for connecting to the network devices. I've tried this a few times, but networking isn't my strong suit.

View File

@@ -1,31 +0,0 @@
---
title: CloudNativePG
description: CloudNativePG (CNPG) is an open-source platform designed to seamlessly manage PostgreSQL databases in Kubernetes environments.
hero:
tagline: CloudNativePG (CNPG) is an open-source platform designed to seamlessly manage PostgreSQL databases in Kubernetes environments.
image:
file: https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg.github.io/0c2d2ff561b7b8ddb6bc06ddb91bd20b73d3f82d/assets/images/hero_image.svg
actions:
- text: Source
link: https://github.com/cloudnative-pg/cloudnative-pg
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/cloudnative-pg
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has an [Grafana Dashboard](https://grafana.alexlebens.net/goto/cfiq33g3brj0gc?orgId=1)</Aside>
# Purpose
Operator that manages PostgreSQL deployments in cluster.
# Notes
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.
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

@@ -1,29 +0,0 @@
---
title: CoreDNS
description: CoreDNS is a DNS server/forwarder, written in Go, that chains plugins.
hero:
tagline: CoreDNS is a DNS server/forwarder, written in Go, that chains plugins.
image:
file: https://raw.githubusercontent.com/coredns/coredns.io/refs/heads/master/static/images/favicon.png
actions:
- text: Source
link: https://github.com/coredns/coredns
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/coredns
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside type="tip">Has an [Grafana Dashboard](https://grafana.alexlebens.net/goto/dfiq3jh1ez0n4a?orgId=1)</Aside>
# Purpose
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.
Deploys as part of the Talos upgrades, but managed by Helm chart for the above custom configuration.

View File

@@ -1,25 +0,0 @@
---
title: Dawarich
description: Dawarich is a self-hostable web app designed to replace Google Timeline (aka Google Location History).
hero:
tagline: Dawarich is a self-hostable web app designed to replace Google Timeline (aka Google Location History).
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/dawarich.webp
actions:
- text: Source
link: https://github.com/Freika/dawarich
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/dawarich
icon: right-arrow
---
# Purpose
Alternative to Google Locations, does tracking using an Android app to provide location history.
# Notes
Requires the provided Android app for tracking.
Need to import Google Location history

View File

@@ -1,23 +0,0 @@
---
title: Democratic CSI
description: Democratic CSI implements the csi (container storage interface) spec providing storage for various container orchestration systems.
hero:
tagline: Democratic CSI implements the csi (container storage interface) spec providing storage for various container orchestration systems.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/democratic-csi/democratic-csi
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/democratic-csi-synology-iscsi
icon: right-arrow
---
# Purpose
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.

View File

@@ -1,23 +0,0 @@
---
title: Descheduler
description: Descheduler, based on its policy, finds pods that can be moved and evicts them.
hero:
tagline: Descheduler, based on its policy, finds pods that can be moved and evicts them.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/kubernetes-sigs/descheduler
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/descheduler
icon: right-arrow
---
# Purpose
Automated service that balances pods across the nodes according to configuration.
# Notes
Mostly used to balance number of pods. Current limit is set to 200 which is nearly twice the defaults, but this can sometimes be met during reboots during upgrades as pods are evicted. Then this will balance out one all nodes are healthy again.

View File

@@ -1,23 +0,0 @@
---
title: Directus
description: Directus is a real-time API and App dashboard for managing SQL database content.
hero:
tagline: Directus is a real-time API and App dashboard for managing SQL database content.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/directus.webp
actions:
- text: Source
link: https://github.com/directus/directus
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/directus
icon: right-arrow
---
# Purpose
Content Management System tightly coupled to [my personal site](https://docs.alexlebens.dev/applications/site-profile/).
# Notes
Most information is stored here and accessed at build time. Webhook setup so when I publish a blog post here it will initiate a new build of the image.

View File

@@ -1,23 +0,0 @@
---
title: Elastic Cloud on Kubernetes
description: Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, Logstash, Elastic AutoOps Agent, and Elastic Package Registry on Kubernetes based on the operator pattern.
hero:
tagline: Elastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch, Kibana, APM Server, Enterprise Search, Beats, Elastic Agent, Elastic Maps Server, Logstash, Elastic AutoOps Agent, and Elastic Package Registry on Kubernetes based on the operator pattern.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/elastic.webp
actions:
- text: Source
link: https://github.com/elastic/cloud-on-k8s
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/elastic-operator
icon: right-arrow
---
# Purpose
Operator to deploy and manage Elasticsearch instances.
# Notes
Easier to manage then just deploying Helm Charts. Mostly used for [TubeArchivist](https://docs.alexlebens.dev/applications/tubearchivist/).

View File

@@ -1,27 +0,0 @@
---
title: Element Web
description: Element (formerly known as Vector and Riot) is a Matrix web & desktop client built using the Matrix JS SDK.
hero:
tagline: Element (formerly known as Vector and Riot) is a Matrix web & desktop client built using the Matrix JS SDK.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/element.webp
actions:
- text: Source
link: https://github.com/element-hq/element-web
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/element-web
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [chat.alexlebens.dev](https://chat.alexlebens.dev)</Aside>
# Purpose
Front end web client for Matrix servers.
# Notes
Provides front end for [Matrix-Synapse](https://docs.alexlebens.dev/applications/matrix-synapse/)

View File

@@ -1,23 +0,0 @@
---
title: Eraser
description: Eraser helps Kubernetes admins remove a list of non-running images from all Kubernetes nodes in a cluster.
hero:
tagline: Eraser helps Kubernetes admins remove a list of non-running images from all Kubernetes nodes in a cluster.
image:
file: https://raw.githubusercontent.com/eraser-dev/eraser/20576a24c512feb83c26ed867353d4143717d798/docs/static/img/eraser.svg
actions:
- text: Source
link: https://github.com/eraser-dev/eraser
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/eraser
icon: right-arrow
---
# Purpose
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.

View File

@@ -1,23 +0,0 @@
---
title: Excalidraw
description: Excalidraw is an open source virtual hand-drawn style whiteboard.
hero:
tagline: Excalidraw is an open source virtual hand-drawn style whiteboard.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/excalidraw.webp
actions:
- text: Source
link: https://github.com/excalidraw/excalidraw
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/excalidraw
icon: right-arrow
---
# Purpose
Used to make diagrams and other sketches.
# Notes
Mostly used in blog posts and documentation.

View File

@@ -1,23 +0,0 @@
---
title: ExternalDNS
description: ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
hero:
tagline: ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/kubernetes-sigs/external-dns
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/external-dns
icon: right-arrow
---
# Purpose
Makes DNS entries of Kubernetes resources into an external DNS provider.
# Notes
Blocky can't be configured this way, so I am exploring other options to use this automation. But it is currently setup to configure the Ubiquity devices.

View File

@@ -1,23 +0,0 @@
---
title: External Secrets Operator
description: External Secrets Operator is a Kubernetes operator that integrates external secret management systems.
hero:
tagline: External Secrets Operator is a Kubernetes operator that integrates external secret management systems.
image:
file: https://raw.githubusercontent.com/external-secrets/external-secrets/a16e618c8607b599a2360dd08725015e78cafa1a/assets/eso-round-logo.svg
actions:
- text: Source
link: https://github.com/external-secrets/external-secrets
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/external-secrets
icon: right-arrow
---
# Purpose
Very useful, decalarative way to make Kubernetes Secrets from an external provider.
# Notes
Secrets come from [Vault](https://docs.alexlebens.dev/applications/vault/).

View File

@@ -1,27 +0,0 @@
---
title: Foldergram
description: Local-only photo and video gallery for folders, with an Instagram-inspired browsing pattern.
hero:
tagline: Local-only photo and video gallery for folders, with an Instagram-inspired browsing pattern.
image:
file: https://raw.githubusercontent.com/foldergram/foldergram/263f2c2c48e4362bf46fc349040d6376737d512b/client/public/favicon.svg
actions:
- text: Source
link: https://github.com/foldergram/foldergram
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/foldergram
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [art.alexlebens.dev](https://art.alexlebens.dev)</Aside>
# Purpose
View pictures I have collected that are not photos I have taken myself.
# Notes
Setup to provide all the collections of public domain images I have. Mostly from various art museums.

View File

@@ -1,27 +0,0 @@
---
title: FreshRSS
description: FreshRSS is a self-hosted RSS feed aggregator. It is lightweight, easy to work with, powerful, customizable, and has been translated into many languages.
hero:
tagline: FreshRSS is a self-hosted RSS feed aggregator. It is lightweight, easy to work with, powerful, customizable, and has been translated into many languages.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/freshrss.webp
actions:
- text: Source
link: https://github.com/FreshRSS/FreshRSS
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/freshrss
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [rss.alexlebens.dev](https://rss.alexlebens.dev)</Aside>
# Purpose
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.

View File

@@ -1,29 +0,0 @@
---
title: Garage
description: Garage is an S3-compatible distributed object storage service designed for self-hosting at a small-to-medium scale.
hero:
tagline: Garage is an S3-compatible distributed object storage service designed for self-hosting at a small-to-medium scale.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/garage.webp
actions:
- text: Source
link: https://git.deuxfleurs.fr/Deuxfleurs/garage
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/garage
icon: right-arrow
---
# Purpose
Clustered S3 storage provider.
# Notes
Considering moving to the [operator](https://github.com/rajsinghtech/garage-operator), but currently deploys as chart.
Backing storage comes from [iSCSI](https://docs.alexlebens.dev/applications/democratic-csi-synology-iscsi/).
Primary endpoint for most S3 targets, alongside PiBox and Digital Ocean.
[Rclone](https://docs.alexlebens.dev/applications/rclone/) handles any kind of syncing to the other endpoints as needed.

View File

@@ -1,23 +0,0 @@
---
title: Gatus
description: Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others.
hero:
tagline: Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gatus.webp
actions:
- text: Source
link: https://github.com/TwiN/gatus
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/gatus
icon: right-arrow
---
# Purpose
Uptime and down notifications for all endpoints, both local and public.
# Notes
All declarative configuration, will end notifications using [ntfy](https://docs.alexlebens.dev/applications/ntfy/).

View File

@@ -1,23 +0,0 @@
---
title: Generic Device Plugin
description: Generic Device Plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods.
hero:
tagline: Generic Device Plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/squat/generic-device-plugin
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/generic-device-plugin
icon: right-arrow
---
# Purpose
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).

View File

@@ -1,27 +0,0 @@
---
title: Gitea
description: Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
hero:
tagline: Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/gitea.webp
actions:
- text: Source
link: https://github.com/go-gitea/gitea
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/gitea
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [gitea.alexlebens.dev](https://gitea.alexlebens.dev)</Aside>
# Purpose
Git repoistory 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.

View File

@@ -1,23 +0,0 @@
---
title: Grafana Operator
description: Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes.
hero:
tagline: Grafana Operator is a Kubernetes operator built to help you manage your Grafana instances and its resources in and outside of Kubernetes.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/grafana.webp
actions:
- text: Source
link: https://github.com/grafana/grafana-operator
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/grafana-operator
icon: right-arrow
---
# Purpose
Operator to declaratively make Grafana dashboards.
# Notes
Uses the dashboard json in [grafana-dashboards](https://gitea.alexlebens.dev/alexlebens/grafana-dashboards].

View File

@@ -1,25 +0,0 @@
---
title: Grimmory
description: Grimmory is a self-hosted application for managing your entire book collection in one place.
hero:
tagline: Grimmory is a self-hosted application for managing your entire book collection in one place.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/booklore.webp
actions:
- text: Source
link: https://github.com/grimmory-tools/grimmory
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/grimmory
icon: right-arrow
---
# Purpose
Store and provide books.
# Notes
Used to be called 'Booklore'.
Only app that uses [MariaDB](https://docs.alexlebens.dev/applications/mariadb-operator/).

View File

@@ -1,25 +0,0 @@
---
title: Harbor
description: Harbor is an open source trusted cloud native registry project that stores, signs, and scans content.
hero:
tagline: Harbor is an open source trusted cloud native registry project that stores, signs, and scans content.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/harbor.webp
actions:
- text: Source
link: https://github.com/goharbor/harbor
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/harbor
icon: right-arrow
---
# Purpose
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.
Any of my own images also get stored here to deploy.

View File

@@ -1,23 +0,0 @@
---
title: Headlamp
description: Headlamp is an easy-to-use and extensible Kubernetes web UI and was created to blend the traditional feature set of other web UIs/dashboards with added functionality.
hero:
tagline: Headlamp is an easy-to-use and extensible Kubernetes web UI and was created to blend the traditional feature set of other web UIs/dashboards with added functionality.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/headlamp.webp
actions:
- text: Source
link: https://github.com/kubernetes-sigs/headlamp
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/headlamp
icon: right-arrow
---
# Purpose
Dashboard for Kubernetes.
# Notes
I also use the desktop app which is identical.

View File

@@ -1,23 +0,0 @@
---
title: Home Assistant
description: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
hero:
tagline: Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/home-assistant.webp
actions:
- text: Source
link: https://github.com/home-assistant/core
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/home-assistant
icon: right-arrow
---
# Purpose
Home automation, connecting to various IoT devices through Zigbee, Matter, etc.
# Notes
Currently unused.

View File

@@ -1,23 +0,0 @@
---
title: Homepage
description: A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.
hero:
tagline: A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/homepage.webp
actions:
- text: Source
link: https://github.com/gethomepage/homepage
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/homepage
icon: right-arrow
---
# Purpose
Provides links and status dots for all deployed apps.
# Notes
Do not set to RollingUpdate or use multiple replicas. Has some kind of loading issue when doing so.

View File

@@ -1,23 +0,0 @@
---
title: Houndarr
description: Automated missing-media search for your *arr stack. Small batches. Polite intervals. Zero indexer abuse.
hero:
tagline: Automated missing-media search for your *arr stack. Small batches. Polite intervals. Zero indexer abuse.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/houndarr.webp
actions:
- text: Source
link: https://github.com/av1155/houndarr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/houndarr
icon: right-arrow
---
# Purpose
Manages automatic upgrades for content in the Servarr apps.
# Notes
Set and forget, runs as a service in the background.

View File

@@ -1,23 +0,0 @@
---
title: Immich
description: High performance self-hosted photo and video management solution.
hero:
tagline: High performance self-hosted photo and video management solution.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/immich.webp
actions:
- text: Source
link: https://github.com/immich-app/immich
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/immich
icon: right-arrow
---
# Purpose
Alternative to Google Photos, stores all my photos.
# Notes
Photos are stored internally, though a full copy is also kept on the NAS.

View File

@@ -1,23 +0,0 @@
---
title: Intel Device Plugins Operator
description: Intel Device Plugins Operator manages plugins, then the GPU device plugin provides access to discrete and integrated Intel GPU device files.
hero:
tagline: Intel Device Plugins Operator manages plugins, then the GPU device plugin provides access to discrete and integrated Intel GPU device files.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/intel/intel-device-plugins-for-kubernetes
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/intel-device-plugin
icon: right-arrow
---
# Purpose
Used to give pods access to host GPUs. Primarily for video and the QuickSync feature.
# Notes
Just works in the background.

View File

@@ -1,25 +0,0 @@
---
title: Jellyfin
description: Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
hero:
tagline: Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/jellyfin.webp
actions:
- text: Source
link: https://github.com/jellyfin/jellyfin
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/jellyfin
icon: right-arrow
---
# Purpose
Provides video, such as movies and shows.
# Notes
A little finicky and not as polished as Plex, but open source and supports plugins.
Planned migration to PostgreSQL when feature is supported.

View File

@@ -1,15 +0,0 @@
---
title: Jellystat
description: Jellystat is a free and open source Statistics App for Jellyfin!
hero:
tagline: Jellystat is a free and open source Statistics App for Jellyfin!
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/jellystat.webp
actions:
- text: Source
link: https://github.com/CyferShepard/Jellystat
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/jellystat
icon: right-arrow
---

View File

@@ -1,19 +0,0 @@
---
title: Karakeep
description: Karakeep is a self-hostable bookmark-everything app with a touch of AI for the data hoarders out there.
hero:
tagline: Karakeep is a self-hostable bookmark-everything app with a touch of AI for the data hoarders out there.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/karakeep.webp
actions:
- text: Source
link: https://github.com/karakeep-app/karakeep
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/karakeep
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [karakeep.alexlebens.dev](https://karakeep.alexlebens.dev)</Aside>

View File

@@ -1,15 +0,0 @@
---
title: Kiwix
description: Kiwix is an open-source software that allows you to have the whole Wikipedia at your fingertips.
hero:
tagline: Kiwix is an open-source software that allows you to have the whole Wikipedia at your fingertips.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kiwix.webp
actions:
- text: Source
link: https://github.com/kiwix
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/kiwix
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Komodo
description: Komodo is a tool to build and deploy software across many servers.
hero:
tagline: Komodo is a tool to build and deploy software across many servers.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/komodo.webp
actions:
- text: Source
link: https://github.com/moghtech/komodo
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/komodo
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Prometheus
description: Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system.
hero:
tagline: Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/prometheus.webp
actions:
- text: Source
link: https://github.com/prometheus/prometheus
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/kube-prometheus-stack
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Kubelet Serving Certificate Approver
description: Kubelet Serving Certificate Approver is a custom approving controller which approves kubernetes.io/kubelet-serving Certificate Signing Request that kubelet use to serve TLS endpoints.
hero:
tagline: Kubelet Serving Certificate Approver is a custom approving controller which approves kubernetes.io/kubelet-serving Certificate Signing Request that kubelet use to serve TLS endpoints.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/alex1989hu/kubelet-serving-cert-approver
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/kubelet-serving-cert-approver
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Kubernetes Cloudflare DDNS
description: This is a simple Kubernetes cronjob which can be used for updating a DNS record on Cloudflare.
hero:
tagline: This is a simple Kubernetes cronjob which can be used for updating a DNS record on Cloudflare.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/cloudflare.webp
actions:
- text: Source
link: https://github.com/kubitodev/kubernetes-cloudflare-ddns
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/kubernetes-cloudflare-ddns
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: LanguageTool
description: LanguageTool is open-source proofreading software for English, Spanish, French, German, Portuguese, Polish, Dutch, and more than 20 other languages. It finds many errors that a simple spell checker cannot detect.
hero:
tagline: LanguageTool is open-source proofreading software for English, Spanish, French, German, Portuguese, Polish, Dutch, and more than 20 other languages. It finds many errors that a simple spell checker cannot detect.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/languagetool.webp
actions:
- text: Source
link: https://github.com/languagetool-org/languagetool
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/languagetool
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Libation
description: Libation is a free, open-source application for downloading and managing your Audible audiobooks. It decrypts your library, removes DRM, and lets you own your audiobooks forever.
hero:
tagline: Libation is a free, open-source application for downloading and managing your Audible audiobooks. It decrypts your library, removes DRM, and lets you own your audiobooks forever.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/libation.webp
actions:
- text: Source
link: https://github.com/rmcrackan/Libation
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/libation
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Lidarr
description: Lidarr is a music collection manager for Usenet and BitTorrent users.
hero:
tagline: Lidarr is a music collection manager for Usenet and BitTorrent users.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/lidarr.webp
actions:
- text: Source
link: https://github.com/Lidarr/Lidarr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/lidarr
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Local Path Provisioner
description: Dynamically provisioning persistent local storage with Kubernetes
hero:
tagline: Dynamically provisioning persistent local storage with Kubernetes
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/rancher/local-path-provisioner
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/local-path-provisioner
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Loki
description: Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus.
hero:
tagline: Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/loki.webp
actions:
- text: Source
link: https://github.com/grafana/loki
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/loki
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: MariaDB Operator
description: Run and operate MariaDB in a cloud native way. Declaratively manage your MariaDB using Kubernetes CRDs rather than imperative commands.
hero:
tagline: Run and operate MariaDB in a cloud native way. Declaratively manage your MariaDB using Kubernetes CRDs rather than imperative commands.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/mariadb.webp
actions:
- text: Source
link: https://github.com/mariadb-operator/mariadb-operator
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/mariadb-operator
icon: right-arrow
---

View File

@@ -1,19 +0,0 @@
---
title: Matrix Synapse
description: Matrix is the open standard for secure and interoperable real-time communications. Synapse is an open source Matrix homeserver implementation, written and maintained by Element.
hero:
tagline: Matrix is the open standard for secure and interoperable real-time communications. Synapse is an open source Matrix homeserver implementation, written and maintained by Element.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/matrix.webp
actions:
- text: Source
link: https://github.com/element-hq/synapse
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/matrix-synapse
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [matrix.alexlebens.dev](https://matrix.alexlebens.dev)</Aside>

View File

@@ -1,15 +0,0 @@
---
title: MediaLyze
description: Self-hosted media library analysis for large video collections.
hero:
tagline: Self-hosted media library analysis for large video collections.
image:
file: https://raw.githubusercontent.com/frederikemmer/MediaLyze/d8f69c0628bac7c047b90f91a66341648029c273/frontend/public/favicon.svg
actions:
- text: Source
link: https://github.com/frederikemmer/MediaLyze
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/mediaLyze
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Metrics Server
description: Metrics Server is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
hero:
tagline: Metrics Server is a scalable, efficient source of container resource metrics for Kubernetes built-in autoscaling pipelines.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/kubernetes-sigs/metrics-server
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/metrics-server
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Music Grabber
description: A self-hosted music acquisition service. Search YouTube, SoundCloud, Soulseek, MP3Phoenix and Monochrome (Tidal lossless), tap a result and it downloads the best quality audio straight into your music library.
hero:
tagline: A self-hosted music acquisition service. Search YouTube, SoundCloud, Soulseek, MP3Phoenix and Monochrome (Tidal lossless), tap a result and it downloads the best quality audio straight into your music library.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/music-grabber.webp
actions:
- text: Source
link: https://gitlab.com/g33kphr33k/musicgrabber
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/music-grabber
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Navidrome
description: Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device.
hero:
tagline: Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/navidrome.webp
actions:
- text: Source
link: https://github.com/navidrome/navidrome
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/navidrome
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Node Feature Discovery
description: Node Feature Discovery is a Kubernetes add-on for detecting hardware features and system configuration.
hero:
tagline: Node Feature Discovery is a Kubernetes add-on for detecting hardware features and system configuration.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kubernetes.webp
actions:
- text: Source
link: https://github.com/kubernetes-sigs/node-feature-discovery
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/node-feature-discovery
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: ntfy
description: ntfy (pronounced "notify") is a simple HTTP-based pub-sub notification service.
hero:
tagline: ntfy (pronounced "notify") is a simple HTTP-based pub-sub notification service.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ntfy.webp
actions:
- text: Source
link: https://github.com/binwiederhier/ntfy
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/ntfy
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Ollama
description: Get up and running with Kimi-K2.5, GLM-5, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
hero:
tagline: Get up and running with Kimi-K2.5, GLM-5, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ollama.webp
actions:
- text: Source
link: https://github.com/ollama/ollama
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/ollama
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: OmniTools
description: Self-hosted collection of powerful web-based tools for everyday tasks. No ads, no tracking, just fast, accessible utilities right from your browser!
hero:
tagline: Self-hosted collection of powerful web-based tools for everyday tasks. No ads, no tracking, just fast, accessible utilities right from your browser!
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/omnitools.webp
actions:
- text: Source
link: https://github.com/iib0011/omni-tools
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/omni-tools
icon: right-arrow
---

View File

@@ -1,19 +0,0 @@
---
title: Outline
description: A fast, collaborative, knowledge base for your team built using React and Node.js.
hero:
tagline: A fast, collaborative, knowledge base for your team built using React and Node.js.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/outline.webp
actions:
- text: Source
link: https://github.com/outline/outline
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/outline
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [outline.alexlebens.dev](https://outline.alexlebens.dev)</Aside>

View File

@@ -1,15 +0,0 @@
---
title: Paperless-ngx
description: A community-supported supercharged document management system; scan, index and archive all your documents.
hero:
tagline: A community-supported supercharged document management system; scan, index and archive all your documents.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/paperless-ngx.webp
actions:
- text: Source
link: https://github.com/paperless-ngx/paperless-ngx
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/paperless-ngx
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Plex
description: Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.
hero:
tagline: Plex organizes video, music and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/plex.webp
actions:
- text: Source
link: https://github.com/linuxserver/docker-plex
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/plex
icon: right-arrow
---

View File

@@ -1,19 +0,0 @@
---
title: Postiz
description: Postiz offers everything you need to manage your social media posts, build an audience, capture leads, and grow your business.
hero:
tagline: Postiz offers everything you need to manage your social media posts, build an audience, capture leads, and grow your business.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/postiz.webp
actions:
- text: Source
link: https://github.com/gitroomhq/postiz-app
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/postiz
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [postiz.alexlebens.dev](https://postiz.alexlebens.dev)</Aside>

View File

@@ -1,15 +0,0 @@
---
title: Prowlarr
description: Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps, supporting management of both Torrent Trackers and Usenet Indexers.
hero:
tagline: Prowlarr is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps, supporting management of both Torrent Trackers and Usenet Indexers.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/prowlarr.webp
actions:
- text: Source
link: https://github.com/Prowlarr/Prowlarr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/prowlarr
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: qBittorrent
description: qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent.
hero:
tagline: qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/qbittorrent.webp
actions:
- text: Source
link: https://github.com/qbittorrent/qBittorrent
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/qbittorrent
icon: right-arrow
---

View File

@@ -1,24 +0,0 @@
---
title: Radarr
description: Radarr is a movie collection manager for Usenet and BitTorrent users.
hero:
tagline: Radarr is a movie collection manager for Usenet and BitTorrent users.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/radarr.webp
actions:
- text: Source
link: https://github.com/Radarr/Radarr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/radarr
icon: right-arrow
- text: Deployment Chart 4K
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/radarr-4k
icon: right-arrow
- text: Deployment Chart Anime
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/radarr-anime
icon: right-arrow
- text: Deployment Chart Stand Up
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/radarr-standup
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Rclone
description: Rclone ("rsync for cloud storage") is a command-line program to sync files and directories to and from different cloud storage providers.
hero:
tagline: Rclone ("rsync for cloud storage") is a command-line program to sync files and directories to and from different cloud storage providers.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rclone.webp
actions:
- text: Source
link: https://github.com/rclone/rclone
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/rclone
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Reloader
description: Reloader is a Kubernetes controller that automatically triggers rollouts of workloads (like Deployments, StatefulSets, and more) whenever referenced Secrets, ConfigMaps or optionally CSI-mounted secrets are updated.
hero:
tagline: Reloader is a Kubernetes controller that automatically triggers rollouts of workloads (like Deployments, StatefulSets, and more) whenever referenced Secrets, ConfigMaps or optionally CSI-mounted secrets are updated.
image:
file: https://raw.githubusercontent.com/stakater/Reloader/refs/heads/master/assets/web/reloader.jpg
actions:
- text: Source
link: https://github.com/stakater/Reloader
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/reloader
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Rook Ceph
description: Rook is an open source cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for Ceph storage to natively integrate with Kubernetes.
hero:
tagline: Rook is an open source cloud-native storage orchestrator for Kubernetes, providing the platform, framework, and support for Ceph storage to natively integrate with Kubernetes.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ceph.webp
actions:
- text: Source
link: https://github.com/rook/rook
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/rook-ceph
icon: right-arrow
---

View File

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

View File

@@ -1,19 +0,0 @@
---
title: Rybbit
description: Rybbit - open-source and privacy-friendly alternative to Google Analytics that is 10x more intuitive.
hero:
tagline: Rybbit - open-source and privacy-friendly alternative to Google Analytics that is 10x more intuitive.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/rybbit.webp
actions:
- text: Source
link: https://github.com/rybbit-io/rybbit
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/rybbit
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [rybbit.alexlebens.dev](https://rybbit.alexlebens.dev)</Aside>

View File

@@ -1,15 +0,0 @@
---
title: S3 Exporter
description: S3 bucket exporter exposing metrics size and number of objects.
hero:
tagline: S3 bucket exporter exposing metrics size and number of objects.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/amazon-s3.webp
actions:
- text: Source
link: https://github.com/molu8bits/s3bucket_exporter
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/s3-exporter
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Searxng
description: SearXNG is a free internet metasearch engine which aggregates results from various search services and databases.
hero:
tagline: SearXNG is a free internet metasearch engine which aggregates results from various search services and databases.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/searxng.webp
actions:
- text: Source
link: https://github.com/searxng/searxng
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/searxng
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Seerr
description: Open-source media request and discovery manager for Jellyfin, Plex, and Emby.
hero:
tagline: Open-source media request and discovery manager for Jellyfin, Plex, and Emby.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/seerr.webp
actions:
- text: Source
link: https://github.com/seerr-team/seerr
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/seerr
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Shelfmark
description: Shelfmark is a self-hosted web interface for searching and downloading books and audiobooks from multiple sources.
hero:
tagline: Shelfmark is a self-hosted web interface for searching and downloading books and audiobooks from multiple sources.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelfmark.webp
actions:
- text: Source
link: https://github.com/calibrain/shelfmark
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/shelfmark
icon: right-arrow
---

View File

@@ -1,15 +0,0 @@
---
title: Shelly Plug
description: Shelly Plug Prometheus exporter.
hero:
tagline: Shelly Plug Prometheus exporter.
image:
file: https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/shelly.webp
actions:
- text: Source
link: https://github.com/geerlingguy/shelly-plug-prometheus
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/shelly-plug
icon: right-arrow
---

View File

@@ -1,19 +0,0 @@
---
title: Site Documentation
description: Personal site made with Astro and Starlight for hosting documentation on my homelab.
hero:
tagline: Personal site made with Astro and Starlight for hosting documentation on my homelab.
image:
file: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg
actions:
- text: Source
link: https://gitea.alexlebens.dev/alexlebens/site-documentation
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/site-documentation
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [docs.alexlebens.dev](https://docs.alexlebens.dev)</Aside>

View File

@@ -1,19 +0,0 @@
---
title: Site Profile
description: Personal site made with Astro for blogging and information about myself.
hero:
tagline: Personal site made with Astro for blogging and information about myself.
image:
file: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg
actions:
- text: Source
link: https://gitea.alexlebens.dev/alexlebens/site-profile
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/site-profile
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [www.alexlebens.dev](https://www.alexlebens.dev)</Aside>

View File

@@ -1,19 +0,0 @@
---
title: Site Sara Lebens
description: Personal site made with Astro for information about Sara Lebens.
hero:
tagline: Personal site made with Astro for information about Sara Lebens.
image:
file: https://web-assets-3bfcb5585cbd63dc365d32a3.nyc3.cdn.digitaloceanspaces.com/alexlebens-net/logo-new-round.svg
actions:
- text: Source
link: https://gitea.alexlebens.dev/alexlebens/site-saralebens
icon: right-arrow
- text: Deployment Chart
link: https://gitea.alexlebens.dev/alexlebens/infrastructure/src/branch/main/clusters/cl01tl/helm/site-saralebens
icon: right-arrow
---
import { Aside } from '@astrojs/starlight/components';
<Aside>This app has public facing endpoint, at [www.saralebens.com](https://www.saralebens.com)</Aside>

Some files were not shown because too many files have changed in this diff Show More