24 Commits

Author SHA1 Message Date
dc993d59de chore(deps): update helm release cilium to v1.19.1
All checks were successful
lint-test-helm / lint-helm (pull_request) Successful in 15s
lint-test-helm / validate-kubeconform (pull_request) Successful in 26s
2026-03-23 01:36:42 +00:00
6a7a96f167 chore(deps): update harbor.alexlebens.net/images/site-documentation docker tag to v0.5.0 (#4989)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 18s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 2m18s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [harbor.alexlebens.net/images/site-documentation](https://gitea.alexlebens.dev/alexlebens/site-documentation) | minor | `0.3.0` → `0.5.0` |

---

### Release Notes

<details>
<summary>alexlebens/site-documentation (harbor.alexlebens.net/images/site-documentation)</summary>

### [`v0.5.0`](https://gitea.alexlebens.dev/alexlebens/site-documentation/releases/tag/0.5.0)

[Compare Source](https://gitea.alexlebens.dev/alexlebens/site-documentation/compare/0.4.0...0.5.0)

### [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](36be56e450))

### [`v0.4.0`](https://gitea.alexlebens.dev/alexlebens/site-documentation/releases/tag/0.4.0)

[Compare Source](https://gitea.alexlebens.dev/alexlebens/site-documentation/compare/0.3.0...0.4.0)

### [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](5e97a524ba))

##### Features

- add and update pre-commit ([95805dc](95805dcd07))
- add applications, actual ([e21d142](e21d1426d2))
- add argo-workflows ([abde3db](abde3db3c7))
- merge ([a3e6e65](a3e6e65c79))
- remove splash template ([3fecb72](3fecb72e89))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4989
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-23 01:34:27 +00:00
9189706ab1 chore(deps): update unpoller/unpoller to v2.35.0 (#4982)
Some checks failed
lint-test-helm / lint-helm (push) Successful in 17s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Has been cancelled
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/unpoller/unpoller](https://github.com/unpoller/unpoller) | minor | `v2.34.0` → `v2.35.0` |
| [unpoller/unpoller](https://github.com/unpoller/unpoller) | minor | `v2.34.0` → `v2.35.0` |

---

### Release Notes

<details>
<summary>unpoller/unpoller (ghcr.io/unpoller/unpoller)</summary>

### [`v2.35.0`](https://github.com/unpoller/unpoller/releases/tag/v2.35.0)

[Compare Source](https://github.com/unpoller/unpoller/compare/v2.34.0...v2.35.0)

##### Changelog

- [`873202a`](873202ab5b) fix(inputunifi): recover from GetActiveDHCPLeasesWithAssociations panic ([#&#8203;969](https://github.com/unpoller/unpoller/issues/969))
- [`38c74f1`](38c74f19c4) build(deps): bump the all group with 2 updates ([#&#8203;967](https://github.com/unpoller/unpoller/issues/967))
- [`54bb3bf`](54bb3bfe8e) feat(devices): add UDB (UniFi Device Bridge) support ([#&#8203;968](https://github.com/unpoller/unpoller/issues/968))
- [`4248d2e`](4248d2e304) build(deps): bump the all group with 4 updates ([#&#8203;964](https://github.com/unpoller/unpoller/issues/964))
- [`f94d10d`](f94d10d223) build(deps): bump the all group with 3 updates ([#&#8203;960](https://github.com/unpoller/unpoller/issues/960))
- [`a70e521`](a70e52180d) build(deps): bump goreleaser/goreleaser-action in the all group ([#&#8203;961](https://github.com/unpoller/unpoller/issues/961))
- [`074595c`](074595c0a9) Fix remote API (Fabric/API key): 429 handling, NVR filter, updateWeb nil panic ([#&#8203;958](https://github.com/unpoller/unpoller/issues/958))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/4982
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-23 01:33:54 +00:00
ad89a09482 chore(deps): update haproxy docker tag to v3.3.6 (#4991)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 31s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m59s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| haproxy | minor | `3.0.19-alpine` → `3.3.6-alpine` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4991
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-23 01:21:10 +00:00
48a3afd121 Change to Alpine (#4993)
Some checks failed
lint-test-helm / lint-helm (push) Successful in 24s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Has been cancelled
Reviewed-on: #4993
2026-03-23 01:19:46 +00:00
3599b7a8a6 tmp/refactor (#4988)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 2m29s
Reviewed-on: #4988
2026-03-23 01:04:56 +00:00
11b2efd332 tmp/refactor (#4986)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 14s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m40s
Reviewed-on: #4986
2026-03-22 23:43:56 +00:00
de8433f8d5 chore(deps): update dependency av1155/houndarr to v1.6.1 (#4985)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 24s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m43s
2026-03-22 23:02:19 +00:00
f5611385ab Refactor Pass on Helm Charts (#4983)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 29s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m44s
Reviewed-on: #4983
2026-03-22 22:06:55 +00:00
fff6f1b32b ci: set to debug log
All checks were successful
renovate / renovate (push) Successful in 2m2s
2026-03-22 16:04:48 -05:00
bb02431114 tmp/folder (#4980)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 15s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m39s
Reviewed-on: #4980
2026-03-22 17:55:11 +00:00
5e102d7b19 tmp/folder (#4978)
All checks were successful
lint-test-docker / lint-docker-compose (push) Successful in 17s
lint-test-helm / lint-helm (push) Successful in 17s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 2m8s
Reviewed-on: #4978
2026-03-22 17:49:42 +00:00
a6de6e60d6 chore(deps): update dawarich to v1.4.0 (#4976)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 20s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 1m49s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [Freika/dawarich](https://github.com/Freika/dawarich) | minor | `1.3.4` → `1.4.0` |
| [freikin/dawarich](https://github.com/Freika/dawarich) | minor | `1.3.4` → `1.4.0` |

---

### Release Notes

<details>
<summary>Freika/dawarich (Freika/dawarich)</summary>

### [`v1.4.0`](https://github.com/Freika/dawarich/blob/HEAD/CHANGELOG.md#140--Unreleased)

[Compare Source](https://github.com/Freika/dawarich/compare/1.3.4...1.4.0)

##### Added

- Family page now contains a map with family members markers on it.
- Visits page now have "Confirm all" and "Decline all" buttons to quickly confirm or decline all visit suggestions at once.

##### Changed

- Updated look and feel
- The point counting was changed to be more efficient on bigger accounts.
- Redesigned raw data archival system for large instances (10M+ points). Archival now runs per-user via Sidekiq jobs instead of a single sequential process, uses PK cursor-based queries instead of full table scans, and processes in 50K-point chunks with 5K-batch flag updates to minimize DB lock contention. Inline verification removed in favor of daily spot-checks. FK constraint changed from `ON DELETE nullify` to `ON DELETE RESTRICT` to prevent cascading updates on large tables.

##### Fixed

- Fix Lite plan archival warnings sending all three notifications (11-month, 11.5-month, and 12-month) simultaneously when a user's oldest data already exceeds all thresholds. Now only the most severe warning is sent, and lower thresholds are marked as already notified.
- Fix intermittent 502/504 errors caused by `User.reset_counters(:points)` running synchronously during OwnTracks, Overland, and API point creation. The full `COUNT(*)` query blocked web workers for 60–500+ seconds on large accounts, starving all other requests. Counter reset now runs as a background job.
- Misconfigured Prometheus settings will no longer litter logs with error messages, it will make multiple attempts to connect instead and then stop.
- One of previous versions removed a database index making points upload very slow. The index is now added back to fix the issue.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4976
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-22 17:28:11 +00:00
3b13e53f9e ci: group dawarich
All checks were successful
renovate / renovate (push) Successful in 2m27s
2026-03-22 12:18:29 -05:00
8b5209fc4f Merge branch 'main' of https://gitea.alexlebens.net/alexlebens/infrastructure
All checks were successful
render-manifests / render-manifests (push) Successful in 7m59s
renovate / renovate (push) Successful in 1m51s
2026-03-21 22:39:02 -05:00
e95924a9e9 ci: merge actions digests 2026-03-21 22:38:57 -05:00
702ed26cd5 tmp/houndarr (#4972)
All checks were successful
lint-test-helm / lint-helm (push) Successful in 24s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Successful in 2m7s
Reviewed-on: #4972
2026-03-22 03:34:00 +00:00
1093fdd93a chore(deps): pin dependencies (#4970)
All checks were successful
renovate / renovate (push) Successful in 2m6s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ghcr.io/renovatebot/renovate](https://renovatebot.com) ([source](https://github.com/renovatebot/renovate)) | container | pinDigest |  → `9228574` |
| [niniyas/ntfy-action](https://github.com/niniyas/ntfy-action) | action | pinDigest |  → `96acac5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44NC4yIiwidXBkYXRlZEluVmVyIjoiNDMuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4970
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-22 03:29:40 +00:00
1afae8052c ci: add pin to automerge
Some checks failed
renovate / renovate (push) Failing after 1s
2026-03-21 22:28:34 -05:00
e1aee94515 ci: update descriptions
Some checks failed
renovate / renovate (push) Has been cancelled
2026-03-21 22:25:18 -05:00
bef2ff5c44 feat: give plex an lb (#4969)
Some checks failed
lint-test-helm / lint-helm (push) Successful in 1m16s
lint-test-helm / validate-kubeconform (push) Has been skipped
renovate / renovate (push) Has been cancelled
lint-test-docker / lint-docker-compose (push) Successful in 1m11s
Reviewed-on: #4969
2026-03-22 03:23:36 +00:00
c32f993351 feat: automerge renovate
All checks were successful
renovate / renovate (push) Successful in 3m44s
2026-03-21 22:13:58 -05:00
46922a6230 chore(deps): pin dependencies (#4968)
Some checks failed
renovate / renovate (push) Failing after 7s
lint-test-docker / lint-docker-compose (push) Successful in 43s
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [GuillaumeFalourd/branch-exists](https://github.com/GuillaumeFalourd/branch-exists) | action | pinDigest |  → `0092904` |
| [actions/cache](https://github.com/actions/cache) | action | pinDigest |  → `6682284` |
| [actions/checkout](https://github.com/actions/checkout) | action | pinDigest |  → `de0fac2` |
| [actions/setup-node](https://github.com/actions/setup-node) | action | pinDigest |  → `53b8394` |
| [azure/k8s-set-context](https://github.com/azure/k8s-set-context) | action | pinDigest |  → `ae59a72` |
| [azure/setup-helm](https://github.com/azure/setup-helm) | action | pinDigest |  → `1a275c3` |
| docker.io/postgres |  | pinDigest |  → `44d837e` |
| dxflrs/garage |  | pinDigest |  → `45a61ce` |
| [favonia/cloudflare-ddns](https://github.com/favonia/cloudflare-ddns) |  | pinDigest |  → `a4e2089` |
| [ghcr.io/0xerr0r/blocky](https://github.com/0xERR0R/blocky) |  | pinDigest |  → `a6d99f3` |
| ghcr.io/ai-dock/stable-diffusion-webui |  | pinDigest |  → `bc4b2b1` |
| [ghcr.io/dmunozv04/isponsorblocktv](https://github.com/dmunozv04/iSponsorBlockTV) |  | pinDigest |  → `5458565` |
| ghcr.io/gabe565/castsponsorskip |  | pinDigest |  → `f556d27` |
| [ghcr.io/gethomepage/homepage](https://github.com/gethomepage/homepage) |  | pinDigest |  → `b129cb0` |
| ghcr.io/moghtech/komodo-periphery |  | pinDigest |  → `bd79cf9` |
| [ghcr.io/renovatebot/renovate](https://renovatebot.com) ([source](https://github.com/renovatebot/renovate)) | container | pinDigest |  → `9228574` |
| [ghcr.io/tailscale/tailscale](https://tailscale.com/kb/1282/docker) ([source](https://github.com/tailscale/tailscale)) |  | pinDigest |  → `95e5287` |
| ghcr.io/tailscale/tailscale |  | pinDigest |  → `95e5287` |
| [ghcr.io/tecnativa/docker-socket-proxy](https://github.com/Tecnativa/docker-socket-proxy) |  | pinDigest |  → `1f3a6f3` |
| [ghcr.io/traefik/traefik](https://hub.docker.com/_/traefik) ([source](https://github.com/traefik/traefik-library-image)) |  | pinDigest |  → `acfc806` |
| [gitea/gitea](https://github.com/go-gitea/gitea) |  | pinDigest |  → `f846d26` |
| khairul169/garage-webui |  | pinDigest |  → `17c7935` |
| ollama/ollama |  | pinDigest |  → `5a5d014` |
| quay.io/prometheus/node-exporter |  | pinDigest |  → `337ff1d` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41OS4yIiwidXBkYXRlZEluVmVyIjoiNDMuNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: #4968
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2026-03-22 03:06:54 +00:00
9cdd5e85c4 feat: change tz
All checks were successful
renovate / renovate (push) Successful in 2m13s
2026-03-21 22:02:40 -05:00
35 changed files with 440 additions and 159 deletions

View File

@@ -120,7 +120,7 @@ jobs:
echo "----" echo "----"
- name: ntfy Failed - name: ntfy Failed
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: failure() if: failure()
with: with:
url: '${{ secrets.NTFY_URL }}' url: '${{ secrets.NTFY_URL }}'

View File

@@ -209,7 +209,7 @@ jobs:
exit $EXIT_CODE exit $EXIT_CODE
- name: ntfy Failed - name: ntfy Failed
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: failure() if: failure()
with: with:
url: '${{ secrets.NTFY_URL }}' url: '${{ secrets.NTFY_URL }}'
@@ -352,7 +352,7 @@ jobs:
exit $EXIT_CODE exit $EXIT_CODE
- name: ntfy Failed - name: ntfy Failed
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: failure() if: failure()
with: with:
url: '${{ secrets.NTFY_URL }}' url: '${{ secrets.NTFY_URL }}'

View File

@@ -568,7 +568,7 @@ jobs:
echo "----" echo "----"
- name: ntfy Created - name: ntfy Created
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: steps.create-pull-request.outputs.pull-request-operation == 'created' && steps.mode.outputs.is-automerge == 'false' if: steps.create-pull-request.outputs.pull-request-operation == 'created' && steps.mode.outputs.is-automerge == 'false'
with: with:
url: "${{ secrets.NTFY_URL }}" url: "${{ secrets.NTFY_URL }}"
@@ -582,7 +582,7 @@ jobs:
actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]' actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]'
- name: ntfy Updated - name: ntfy Updated
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-request.outputs.pull-request-exists != 'false' && steps.mode.outputs.is-automerge == 'false' if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-request.outputs.pull-request-exists != 'false' && steps.mode.outputs.is-automerge == 'false'
with: with:
url: "${{ secrets.NTFY_URL }}" url: "${{ secrets.NTFY_URL }}"
@@ -596,7 +596,7 @@ jobs:
actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]' actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]'
- name: ntfy Merged - name: ntfy Merged
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: steps.merge-changes.outputs.pull-request-operation == 'merged' if: steps.merge-changes.outputs.pull-request-operation == 'merged'
with: with:
url: "${{ secrets.NTFY_URL }}" url: "${{ secrets.NTFY_URL }}"
@@ -610,7 +610,7 @@ jobs:
actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]' actions: '[{"action": "view", "label": "View PR", "url": "${{ vars.USER_URL }}/${{ github.repository }}/pulls/${{ steps.create-pull-request.outputs.pull-request-number }}", "clear": true}]'
- name: ntfy Failed - name: ntfy Failed
uses: niniyas/ntfy-action@master uses: niniyas/ntfy-action@96acac57fdc91d4c4f50b78486c1ed6f03f9f61c # master
if: failure() if: failure()
with: with:
url: "${{ secrets.NTFY_URL }}" url: "${{ secrets.NTFY_URL }}"

View File

@@ -13,7 +13,7 @@ on:
jobs: jobs:
renovate: renovate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:43@sha256:92285747b3aac062a4f567762c272a12dce037843a20177a02c95b7c420e20cb container: ghcr.io/renovatebot/renovate:43.84.2@sha256:92285747b3aac062a4f567762c272a12dce037843a20177a02c95b7c420e20cb
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
@@ -25,7 +25,7 @@ jobs:
RENOVATE_ENDPOINT: ${{ vars.INSTANCE_URL }} RENOVATE_ENDPOINT: ${{ vars.INSTANCE_URL }}
RENOVATE_REPOSITORIES: alexlebens/infrastructure RENOVATE_REPOSITORIES: alexlebens/infrastructure
RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net> RENOVATE_GIT_AUTHOR: Renovate Bot <renovate-bot@alexlebens.net>
LOG_LEVEL: info LOG_LEVEL: debug
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }} RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }} RENOVATE_GIT_PRIVATE_KEY: ${{ secrets.RENOVATE_GIT_PRIVATE_KEY }}
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }} RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}

View File

@@ -5,11 +5,12 @@ description: Actual
keywords: keywords:
- actual - actual
- budget - budget
home: https://wiki.alexlebens.dev/s/86192f45-94b7-45de-872c-6ef3fec7df5e home: https://docs.alexlebens.dev/applications/actual/
sources: sources:
- https://github.com/actualbudget/actual - https://github.com/actualbudget/actual
- https://github.com/actualbudget/actual/pkgs/container/actual - https://github.com/actualbudget/actual/pkgs/container/actual
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template - https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/volsync-target
maintainers: maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:

View File

@@ -4,20 +4,18 @@ actual:
type: deployment type: deployment
replicas: 1 replicas: 1
strategy: Recreate strategy: Recreate
revisionHistoryLimit: 3
containers: containers:
main: main:
image: image:
repository: ghcr.io/actualbudget/actual repository: ghcr.io/actualbudget/actual
tag: 26.3.0 tag: 26.3.0@sha256:eb8bc26f53025e07e464594c12d77c52c4b95840c8dadd9b95c4f0c4660f8ad2
pullPolicy: IfNotPresent
env: env:
- name: TZ - name: ACTUAL_PORT
value: US/Central value: 5006
resources: resources:
requests: requests:
cpu: 10m cpu: 25m
memory: 128Mi memory: 64Mi
probes: probes:
liveness: liveness:
enabled: true enabled: true
@@ -54,11 +52,8 @@ actual:
- actual.alexlebens.net - actual.alexlebens.net
rules: rules:
- backendRefs: - backendRefs:
- group: '' - name: actual
kind: Service
name: actual
port: 80 port: 80
weight: 100
matches: matches:
- path: - path:
type: PathPrefix type: PathPrefix
@@ -69,7 +64,6 @@ actual:
storageClass: ceph-block storageClass: ceph-block
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 2Gi size: 2Gi
retain: true
advancedMounts: advancedMounts:
main: main:
main: main:

View File

@@ -7,12 +7,13 @@ keywords:
- argo-events - argo-events
- workflows - workflows
- events - events
home: https://wiki.alexlebens.dev/s/a268508f-d81d-4b4b-8bd5-9058edaea635 home: https://docs.alexlebens.dev/applications/argo-workflows/
sources: sources:
- https://github.com/argoproj/argo-workflows - https://github.com/argoproj/argo-workflows
- https://github.com/argoproj/argo-events - https://github.com/argoproj/argo-events
- https://github.com/cloudnative-pg/cloudnative-pg - https://github.com/cloudnative-pg/cloudnative-pg
- https://github.com/argoproj/argo-helm/tree/main/charts - https://github.com/argoproj/argo-helm/tree/main/charts/argo-workflows
- https://github.com/argoproj/argo-helm/tree/main/charts/argo-events
- https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster - https://gitea.alexlebens.dev/alexlebens/helm-charts/src/branch/main/charts/postgres-cluster
maintainers: maintainers:
- name: alexlebens - name: alexlebens

View File

@@ -14,15 +14,9 @@ spec:
data: data:
- secretKey: secret - secretKey: secret
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argo-workflows key: /authentik/oidc/argo-workflows
metadataPolicy: None
property: secret property: secret
- secretKey: client - secretKey: client
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argo-workflows key: /authentik/oidc/argo-workflows
metadataPolicy: None
property: client property: client

View File

@@ -1,28 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: argo-workflows
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: argo-workflows
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- argo-workflows.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: argo-workflows-server
port: 2746
weight: 100

View File

@@ -2,8 +2,6 @@ argo-workflows:
crds: crds:
install: true install: true
keep: true keep: true
# -- Use full CRDs with complete OpenAPI schemas. When false, uses minified CRDs with x-kubernetes-preserve-unknown-fields.
# Full CRDs are very large and are installed via a pre-install/pre-upgrade hook Job that uses server-side apply.
full: true full: true
upgradeJob: upgradeJob:
image: image:
@@ -13,11 +11,6 @@ argo-workflows:
metricsConfig: metricsConfig:
enabled: true enabled: true
persistence: persistence:
connectionPool:
maxIdleConns: 100
maxOpenConns: 0
nodeStatusOffLoad: true
archive: true
postgresql: postgresql:
host: argo-workflows-postgresql-18-cluster-rw host: argo-workflows-postgresql-18-cluster-rw
port: 5432 port: 5432
@@ -32,24 +25,34 @@ argo-workflows:
ssl: false ssl: false
sslMode: disable sslMode: disable
workflowWorkers: 2 workflowWorkers: 2
workflowTTLWorkers: 1 workflowTTLWorkers: 2
podCleanupWorkers: 1 podCleanupWorkers: 2
cronWorkflowWorkers: 1 cronWorkflowWorkers: 2
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 32Mi
serviceMonitor: serviceMonitor:
enabled: true enabled: true
name: workflow-controller
workflowNamespaces: workflowNamespaces:
- argocd
- argo-workflows - argo-workflows
server: server:
authModes: authModes:
- sso - sso
ingress: httproute:
enabled: false enabled: true
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- argo-workflows.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
sso: sso:
enabled: true enabled: true
issuer: https://authentik.alexlebens.net/application/o/argo-workflows/ issuer: https://authentik.alexlebens.net/application/o/argo-workflows/
@@ -66,15 +69,15 @@ argo-workflows:
- openid - openid
- email - email
- profile - profile
useStaticCredentials: true
artifactRepository:
archiveLogs: false
argo-events: argo-events:
crds:
install: true
keep: true
controller: controller:
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 32Mi
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
@@ -84,7 +87,7 @@ argo-events:
resources: resources:
requests: requests:
cpu: 10m cpu: 10m
memory: 128Mi memory: 32Mi
postgres-18-cluster: postgres-18-cluster:
mode: recovery mode: recovery
recovery: recovery:
@@ -98,32 +101,9 @@ postgres-18-cluster:
destinationBucket: postgres-backups destinationBucket: postgres-backups
externalSecretCredentialPath: /garage/home-infra/postgres-backups externalSecretCredentialPath: /garage/home-infra/postgres-backups
isWALArchiver: true isWALArchiver: true
# - name: garage-remote
# index: 1
# destinationBucket: postgres-backups
# externalSecretCredentialPath: /garage/home-infra/postgres-backups
# retentionPolicy: "90d"
# data:
# compression: bzip2
# - name: external
# index: 1
# endpointURL: https://nyc3.digitaloceanspaces.com
# destinationBucket: postgres-backups-ce540ddf106d186bbddca68a
# externalSecretCredentialPath: /garage/home-infra/postgres-backups
# isWALArchiver: false
scheduledBackups: scheduledBackups:
- name: live-backup - name: live-backup
suspend: false suspend: false
immediate: true immediate: true
schedule: "0 0 14 * * *" schedule: "0 0 14 * * *"
backupName: garage-local backupName: garage-local
# - name: weekly-backup
# suspend: true
# immediate: true
# schedule: "0 0 4 * * SAT"
# backupName: garage-remote
# - name: daily-backup
# suspend: true
# immediate: true
# schedule: "0 0 0 * * *"
# backupName: external

View File

@@ -4,10 +4,8 @@ version: 1.0.0
description: Argo CD description: Argo CD
keywords: keywords:
- argo-cd - argo-cd
- delivery
- deployment - deployment
- gitops home: https://docs.alexlebens.dev/applications/argo-cd/
home: https://wiki.alexlebens.dev/s/8a75cf26-b9df-437e-9cc5-2ef47e871a5f
sources: sources:
- https://github.com/argoproj/argo-cd - https://github.com/argoproj/argo-cd
- https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd - https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd

View File

@@ -14,17 +14,11 @@ spec:
data: data:
- secretKey: secret - secretKey: secret
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argocd key: /authentik/oidc/argocd
metadataPolicy: None
property: secret property: secret
- secretKey: client - secretKey: client
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /authentik/oidc/argocd key: /authentik/oidc/argocd
metadataPolicy: None
property: client property: client
--- ---
@@ -44,10 +38,7 @@ spec:
data: data:
- secretKey: ntfy-token - secretKey: ntfy-token
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /ntfy/user/cl01tl key: /ntfy/user/cl01tl
metadataPolicy: None
property: token property: token
--- ---
@@ -67,22 +58,13 @@ spec:
data: data:
- secretKey: type - secretKey: type
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/argocd/credentials/repo/infrastructure key: /cl01tl/argocd/credentials/repo/infrastructure
metadataPolicy: None
property: type property: type
- secretKey: url - secretKey: url
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/argocd/credentials/repo/infrastructure key: /cl01tl/argocd/credentials/repo/infrastructure
metadataPolicy: None
property: url property: url
- secretKey: sshPrivateKey - secretKey: sshPrivateKey
remoteRef: remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/argocd/credentials/repo/infrastructure key: /cl01tl/argocd/credentials/repo/infrastructure
metadataPolicy: None
property: sshPrivateKey property: sshPrivateKey

View File

@@ -1,12 +1,11 @@
argo-cd: argo-cd:
crds: crds:
install: true install: true
keep: true
configs: configs:
cm: cm:
admin.enabled: true admin.enabled: true
accounts.homepage: apiKey accounts.homepage: apiKey
timeout.reconciliation: 100s
timeout.reconciliation.jitter: 60s
url: https://argocd.alexlebens.net url: https://argocd.alexlebens.net
statusbadge.url: https://argocd.alexlebens.net/ statusbadge.url: https://argocd.alexlebens.net/
statusbadge.enabled: true statusbadge.enabled: true
@@ -33,12 +32,53 @@ argo-cd:
g, homepage, role:readonly g, homepage, role:readonly
controller: controller:
replicas: 1 replicas: 1
resources:
requests:
cpu: 15m
memory: 1Gi
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
enabled: true enabled: true
rules:
enabled: true
spec:
- alert: ArgoAppMissing
expr: |
absent(argocd_app_info) == 1
for: 15m
labels:
severity: critical
annotations:
summary: "[Argo CD] No reported applications"
description: >
Argo CD has not reported any applications data for the past 15 minutes which
means that it must be down or not functioning properly. This needs to be
resolved for this cloud to continue to maintain state.
- alert: ArgoAppNotSynced
expr: |
argocd_app_info{sync_status!="Synced"} == 1
for: 12h
labels:
severity: warning
annotations:
summary: "[{{`{{$labels.name}}`}}] Application not synchronized"
description: >
The application [{{`{{$labels.name}}`}} has not been synchronized for over
12 hours which means that the state of this cloud has drifted away from the
state inside Git.
dex: dex:
enabled: true enabled: true
resources:
requests:
cpu: 10m
memory: 64Mi
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
@@ -49,13 +89,57 @@ argo-cd:
enabled: true enabled: true
redis-ha: redis-ha:
enabled: true enabled: true
image:
repository: redis
tag: 8.6.1-alpine@sha256:315270d166080f537bbdf1b489b603aaaa213cb55a544acfa51feb7481abb1c0
persistentVolume:
enabled: true
redis:
resources:
requests:
cpu: 1000m
memory: 64Mi
haproxy:
enabled: true
image:
repository: haproxy
tag: 3.3.6-alpine@sha256:744be2dca649a44d490a4c565d36968d19482dd387f1bdd44c168f4322bc6b1e
resources:
requests:
cpu: 10m
memory: 128Mi
metrics:
enabled: true
serviceMonitor:
enabled: true
exporter:
enabled: true
image: ghcr.io/oliver006/redis_exporter
tag: v1.82.0@sha256:6a97d4dd743b533e1f950c677b87d880e44df363c61af3f406fc9e53ed65ee03
serviceMonitor:
enabled: true
prometheusRule:
enabled: true
interval: 30s
rules:
- alert: RedisPodDown
expr: |
redis_up{job="{{ include "redis-ha.fullname" . }}"} == 0
for: 5m
labels:
severity: critical
annotations:
description: Redis pod {{ "{{ $labels.pod }}" }} is down
summary: Redis pod {{ "{{ $labels.pod }}" }} is down
auth: false auth: false
redisSecretInit: redisSecretInit:
enabled: false enabled: false
server: server:
replicas: 2 replicas: 2
extensions: resources:
enabled: false requests:
cpu: 10m
memory: 64Mi
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
@@ -69,31 +153,56 @@ argo-cd:
namespace: traefik namespace: traefik
hostnames: hostnames:
- argocd.alexlebens.net - argocd.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
repoServer: repoServer:
replicas: 2 replicas: 2
resources:
requests:
cpu: 10m
memory: 64Mi
readinessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
livenessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
enabled: true enabled: true
applicationSet: applicationSet:
replicas: 2 replicas: 2
resources:
requests:
cpu: 10m
memory: 64Mi
metrics: metrics:
enabled: true enabled: true
serviceMonitor: serviceMonitor:
enabled: true enabled: true
livenessProbe:
enabled: true
readinessProbe: readinessProbe:
enabled: true enabled: true
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
livenessProbe:
enabled: true
failureThreshold: 3
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
notifications: notifications:
enabled: true argocdUrl: https://argocd.alexlebens.net
context:
argocdUrl: https://argocd.alexlebens.net
secret: secret:
create: false create: false
name: argocd-notifications-secret name: argocd-notifications-secret
@@ -107,6 +216,10 @@ argo-cd:
headers: headers:
- name: Authorization - name: Authorization
value: Bearer $ntfy-token value: Bearer $ntfy-token
resources:
requests:
cpu: 10m
memory: 64Mi
livenessProbe: livenessProbe:
enabled: true enabled: true
readinessProbe: readinessProbe:

View File

@@ -98,7 +98,7 @@ blocky:
traefik-cl01tl IN A 10.232.1.21 traefik-cl01tl IN A 10.232.1.21
blocky IN A 10.232.1.22 blocky IN A 10.232.1.22
cilium-cl01tl IN A 10.232.1.23 plex-lb IN A 10.232.1.23
;; Application Names ;; Application Names
@@ -117,6 +117,7 @@ blocky:
directus IN CNAME traefik-cl01tl directus IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl feishin IN CNAME traefik-cl01tl
foldergram IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl

View File

@@ -1,6 +1,6 @@
dependencies: dependencies:
- name: cilium - name: cilium
repository: https://helm.cilium.io/ repository: https://helm.cilium.io/
version: 1.18.6 version: 1.19.1
digest: sha256:8ea328ac238524b5b423e6289f5e25d05ef64e6aa19cfd5de238f1d5dd533e9b digest: sha256:bf5e8b3233c18bdb9409bb98c9a7ea4114e0e04e8489a49fdb2d29ded0cfa429
generated: "2026-02-05T12:00:20.15778-06:00" generated: "2026-03-23T01:36:38.412810001Z"

View File

@@ -15,7 +15,7 @@ maintainers:
- name: alexlebens - name: alexlebens
dependencies: dependencies:
- name: cilium - name: cilium
version: 1.18.6 version: 1.19.1
repository: https://helm.cilium.io/ repository: https://helm.cilium.io/
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/cilium.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/cilium.png
# renovate: datasource=github-releases depName=cilium/cilium # renovate: datasource=github-releases depName=cilium/cilium

View File

@@ -26,4 +26,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts repository: oci://harbor.alexlebens.net/helm-charts
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/dawarich.png icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/dawarich.png
# renovate: datasource=github-releases depName=Freika/dawarich # renovate: datasource=github-releases depName=Freika/dawarich
appVersion: 1.3.4 appVersion: 1.4.0

View File

@@ -9,7 +9,7 @@ dawarich:
main: main:
image: image:
repository: freikin/dawarich repository: freikin/dawarich
tag: 1.3.4 tag: 1.4.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
command: ["web-entrypoint.sh"] command: ["web-entrypoint.sh"]
args: ["bin/rails", "server", "-p", "3000", "-b", "::"] args: ["bin/rails", "server", "-p", "3000", "-b", "::"]
@@ -106,7 +106,7 @@ dawarich:
sidekiq: sidekiq:
image: image:
repository: freikin/dawarich repository: freikin/dawarich
tag: 1.3.4 tag: 1.4.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
command: ["sidekiq-entrypoint.sh"] command: ["sidekiq-entrypoint.sh"]
args: ["sidekiq"] args: ["sidekiq"]

View File

@@ -0,0 +1,9 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.8.0
digest: sha256:59100c6fbfb829f9d703b9ee1cf869c4fd77b6ff53c63b0c644a757223027e58
generated: "2026-03-22T12:42:43.150705-05:00"

View File

@@ -0,0 +1,25 @@
apiVersion: v2
name: foldergram
version: 1.0.0
description: Foldergram
keywords:
- foldergram
- pictures
home: https://wiki.alexlebens.dev/
sources:
- https://github.com/foldergram/foldergram
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: foldergram
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
alias: volsync-target-data
version: 0.8.0
repository: oci://harbor.alexlebens.net/helm-charts
icon: https://raw.githubusercontent.com/foldergram/foldergram/refs/heads/main/client/public/icon-512.png
# renovate: datasource=github-releases depName=foldergram/foldergram
appVersion: v1.0.5

View File

@@ -0,0 +1,17 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: foldergram-pictures-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: foldergram-pictures-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: foldergram-pictures-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -0,0 +1,23 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: foldergram-pictures-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: foldergram-pictures-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: /volume2/Storage/Pictures
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -0,0 +1,87 @@
foldergram:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/foldergram/foldergram
tag: 1.0.5
pullPolicy: IfNotPresent
env:
- name: IMAGE_DETAIL_SOURCE
value: original
- name: DERIVATIVE_MODE
value: lazy
- name: DATA_ROOT
value: ./data
- name: GALLERY_ROOT
value: /gallery
- name: CSRF_TRUSTED_ORIGINS
value: https://foldergram.alexlebens.net
resources:
requests:
cpu: 10m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 80
targetPort: 4141
protocol: HTTP
route:
main:
kind: HTTPRoute
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- foldergram.alexlebens.net
rules:
- backendRefs:
- group: ''
kind: Service
name: foldergram
port: 80
weight: 100
matches:
- path:
type: PathPrefix
value: /
persistence:
cache:
forceRename: foldergram-data
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 10Gi
retain: false
advancedMounts:
main:
main:
- path: /app/data
readOnly: false
pictures:
existingClaim: foldergram-pictures-nfs-storage
advancedMounts:
main:
main:
- path: /gallery/pictures
readOnly: true
volsync-target-data:
pvcTarget: foldergram-data
local:
enabled: true
schedule: 46 11 * * *
remote:
enabled: true
schedule: 46 12 * * *
external:
enabled: true
schedule: 46 13 * * *

View File

@@ -161,6 +161,9 @@ gatus:
- name: photoview - name: photoview
url: https://photoview.alexlebens.net url: https://photoview.alexlebens.net
<<: *defaults <<: *defaults
- name: foldergram
url: https://foldergram.alexlebens.net
<<: *defaults
- name: booklore - name: booklore
url: https://booklore.alexlebens.net url: https://booklore.alexlebens.net
<<: *defaults <<: *defaults

View File

@@ -202,6 +202,12 @@ homepage:
href: https://photoview.alexlebens.net href: https://photoview.alexlebens.net
siteMonitor: http://photoview.photoview:80 siteMonitor: http://photoview.photoview:80
statusStyle: dot statusStyle: dot
- Pictures:
icon: https://raw.githubusercontent.com/foldergram/foldergram/refs/heads/main/client/public/icon-512.png
description: Foldergram
href: https://foldergram.alexlebens.net
siteMonitor: http://foldergram.foldergram:80
statusStyle: dot
- Books: - Books:
icon: sh-booklore.webp icon: sh-booklore.webp
description: Grimmory description: Grimmory

View File

@@ -0,0 +1,9 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.6.2
- name: volsync-target
repository: oci://harbor.alexlebens.net/helm-charts
version: 0.8.0
digest: sha256:375d6c2eb2f097717c44c5a28cb162da24f4ff154a971e5a68ccd0e0b77e936f
generated: "2026-03-21T22:31:01.142752-05:00"

View File

@@ -22,4 +22,4 @@ dependencies:
repository: oci://harbor.alexlebens.net/helm-charts repository: oci://harbor.alexlebens.net/helm-charts
icon: https://raw.githubusercontent.com/av1155/houndarr/main/src/houndarr/static/img/houndarr-logo-dark.png icon: https://raw.githubusercontent.com/av1155/houndarr/main/src/houndarr/static/img/houndarr-logo-dark.png
# renovate: datasource=github-releases depName=av1155/houndarr # renovate: datasource=github-releases depName=av1155/houndarr
appVersion: v1.6.0 appVersion: v1.6.1

View File

@@ -14,6 +14,10 @@ houndarr:
env: env:
- name: TZ - name: TZ
value: America/Chicago value: America/Chicago
- name: PUID
value: 1000
- name: PGID
value: 1000
- name: HOUNDARR_SECURE_COOKIES - name: HOUNDARR_SECURE_COOKIES
value: true value: true
- name: HOUNDARR_TRUSTED_PROXIES - name: HOUNDARR_TRUSTED_PROXIES
@@ -64,6 +68,11 @@ houndarr:
readOnly: false readOnly: false
volsync-target-data: volsync-target-data:
pvcTarget: houndarr-data pvcTarget: houndarr-data
moverSecurityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
local: local:
enabled: true enabled: true
schedule: 40 11 * * * schedule: 40 11 * * *

View File

@@ -26,6 +26,7 @@ plex:
service: service:
main: main:
controller: main controller: main
type: LoadBalancer
ports: ports:
http: http:
port: 32400 port: 32400

View File

@@ -11,7 +11,7 @@ site-documentation:
main: main:
image: image:
repository: harbor.alexlebens.net/images/site-documentation repository: harbor.alexlebens.net/images/site-documentation
tag: 0.3.0 tag: 0.5.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
resources: resources:
requests: requests:

View File

@@ -21,4 +21,4 @@ dependencies:
version: 4.6.2 version: 4.6.2
icon: https://camo.githubusercontent.com/c5d07a5b3acfeac8e1c25bf56f440ffe032b86e4e7f15de82357f022a43fc927/68747470733a2f2f756e706f6c6c65722e636f6d2f696d672f6c6f676f2e706e67 icon: https://camo.githubusercontent.com/c5d07a5b3acfeac8e1c25bf56f440ffe032b86e4e7f15de82357f022a43fc927/68747470733a2f2f756e706f6c6c65722e636f6d2f696d672f6c6f676f2e706e67
# renovate: datasource=github-releases depName=unpoller/unpoller # renovate: datasource=github-releases depName=unpoller/unpoller
appVersion: v2.34.0 appVersion: v2.35.0

View File

@@ -9,7 +9,7 @@ unpoller:
main: main:
image: image:
repository: ghcr.io/unpoller/unpoller repository: ghcr.io/unpoller/unpoller
tag: v2.34.0 tag: v2.35.0
pullPolicy: IfNotPresent pullPolicy: IfNotPresent
env: env:
- name: UP_UNIFI_CONTROLLER_0_SAVE_ALARMS - name: UP_UNIFI_CONTROLLER_0_SAVE_ALARMS

View File

@@ -73,7 +73,7 @@ customDNS:
traefik-cl01tl IN A 10.232.1.21 traefik-cl01tl IN A 10.232.1.21
blocky IN A 10.232.1.22 blocky IN A 10.232.1.22
cilium-cl01tl IN A 10.232.1.23 plex-lb IN A 10.232.1.23
;; Application Names ;; Application Names
@@ -92,6 +92,7 @@ customDNS:
directus IN CNAME traefik-cl01tl directus IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl feishin IN CNAME traefik-cl01tl
foldergram IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl

View File

@@ -94,7 +94,7 @@ customDNS:
traefik-cl01tl IN A 10.232.1.21 traefik-cl01tl IN A 10.232.1.21
blocky IN A 10.232.1.22 blocky IN A 10.232.1.22
cilium-cl01tl IN A 10.232.1.23 plex-lb IN A 10.232.1.23
;; Application Names ;; Application Names
@@ -113,6 +113,7 @@ customDNS:
directus IN CNAME traefik-cl01tl directus IN CNAME traefik-cl01tl
excalidraw IN CNAME traefik-cl01tl excalidraw IN CNAME traefik-cl01tl
feishin IN CNAME traefik-cl01tl feishin IN CNAME traefik-cl01tl
foldergram IN CNAME traefik-cl01tl
garage-s3 IN CNAME traefik-cl01tl garage-s3 IN CNAME traefik-cl01tl
garage-webui IN CNAME traefik-cl01tl garage-webui IN CNAME traefik-cl01tl
gatus IN CNAME traefik-cl01tl gatus IN CNAME traefik-cl01tl

View File

@@ -5,7 +5,7 @@
"mergeConfidence:all-badges", "mergeConfidence:all-badges",
":rebaseStalePrs" ":rebaseStalePrs"
], ],
"timezone": "US/Central", "timezone": "America/Chicago",
"labels": [], "labels": [],
"prHourlyLimit": 0, "prHourlyLimit": 0,
"prConcurrentLimit": 0, "prConcurrentLimit": 0,
@@ -31,7 +31,7 @@
"/(^|/)templates/.*\\.yaml$/" "/(^|/)templates/.*\\.yaml$/"
], ],
"matchStrings": [ "matchStrings": [
"# renovate: datasource=(?<datasource>.*?) depName=(?<depName>.*?)\\s+tag: (?<currentValue>.*)" "# renovate: datasource=(?<datasource>[^\\s]+)\\s+depName=(?<depName>[^\\s]+)\\s+tag:\\s*[\"']?(?<currentValue>[^@\"'\\s\n]+)(?:@(?<currentDigest>sha256:[a-f0-9]+))?[\"']?"
] ]
}, },
{ {
@@ -69,6 +69,22 @@
], ],
"enabled": false "enabled": false
}, },
{
"description": "Automerge digests for actions",
"matchManagers": [
"github-actions"
],
"matchUpdateTypes": [
"digest"
],
"addLabels": [
"actions",
"automerge"
],
"enabled": true,
"automerge": true,
"minimumReleaseAge": "1 days"
},
{ {
"description": "Label charts", "description": "Label charts",
"matchDatasources": [ "matchDatasources": [
@@ -110,7 +126,7 @@
"automergeType": "branch" "automergeType": "branch"
}, },
{ {
"description": "Label images, docker", "description": "Label images",
"matchDatasources": [ "matchDatasources": [
"docker" "docker"
], ],
@@ -120,9 +136,10 @@
"automerge": false "automerge": false
}, },
{ {
"description": "Automerge image patches, docker", "description": "Automerge image patches",
"matchUpdateTypes": [ "matchUpdateTypes": [
"patch" "patch",
"pinDigest"
], ],
"matchDatasources": [ "matchDatasources": [
"docker" "docker"
@@ -135,7 +152,26 @@
"minimumReleaseAge": "1 days" "minimumReleaseAge": "1 days"
}, },
{ {
"description": "Allow digest updates for specific packages", "description": "Automerge images, specific packages",
"matchUpdateTypes": [
"patch",
"minor"
],
"matchDatasources": [
"docker"
],
"matchPackageNames": [
"ghcr.io/renovatebot/renovate"
],
"addLabels": [
"image",
"automerge"
],
"automerge": true,
"minimumReleaseAge": "1 days"
},
{
"description": "Automerge digest updates, specific packages",
"matchUpdateTypes": [ "matchUpdateTypes": [
"digest" "digest"
], ],
@@ -145,12 +181,16 @@
"matchPackageNames": [ "matchPackageNames": [
"searxng/searxng" "searxng/searxng"
], ],
"addLabels": [
"image",
"automerge"
],
"enabled": true, "enabled": true,
"automerge": true, "automerge": true,
"minimumReleaseAge": "1 days" "minimumReleaseAge": "1 days"
}, },
{ {
"description": "Label charts and docker, merged", "description": "Label appVersion and images, merged",
"matchManagers": [ "matchManagers": [
"custom.regex", "custom.regex",
"helm-values" "helm-values"
@@ -163,9 +203,10 @@
"automerge": false "automerge": false
}, },
{ {
"description": "Automerge charts and docker, merged", "description": "Automerge appVersion and images, merged",
"matchUpdateTypes": [ "matchUpdateTypes": [
"patch" "patch",
"pinDigest"
], ],
"matchManagers": [ "matchManagers": [
"custom.regex", "custom.regex",
@@ -179,6 +220,19 @@
], ],
"automerge": true, "automerge": true,
"minimumReleaseAge": "1 days" "minimumReleaseAge": "1 days"
},
{
"description": "Group unmatched Dawarich dependencies",
"matchPackageNames": [
"freikin/dawarich",
"freika/dawarich",
"ghcr.io/freikin/dawarich",
"ghcr.io/freika/dawarich",
"docker.io/freikin/dawarich",
"docker.io/freika/dawarich"
],
"groupName": "dawarich",
"groupSlug": "unified-dawarich"
} }
] ]
} }