13 Commits
Author SHA1 Message Date
homelab-updaterandClaude Opus 5.5 dbb17ea5b9 feat(config): manage Trilium (TriliumNext) with a Sunday schedule
ci / check (push) Successful in 1m40s
ci / publish (push) Successful in 1m27s
Auto stays at patch: on 0.x every minor migrates the database one way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 12:01:54 +02:00
homelab-updater 8a56de42f8 fix(config): spread upgrades and keep Compose env files local 2026-09-30 01:15:37 +02:00
homelab-updaterandClaude Opus 5.5 39cd163d42 docs(skills): gitea is public with Keycloak login
ci / check (push) Successful in 1m30s
ci / publish (push) Successful in 1m6s
The IP whitelist was removed from the Gitea router on VM103; the live
DB copy of the skill was updated through the API.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:53:30 +02:00
homelab-updaterandClaude Opus 5.5 3e445221e7 docs(skills): grafana skill without versions, dates or run ids
ci / check (push) Failing after 1m28s
ci / publish (push) Skipped
Only what stays true across updates: services, data paths, the data owner,
how to fix an ownership problem, how to check the result. Versions and the
update path are the workflow's job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 17:45:54 +02:00
homelab-updaterandClaude Opus 5.5 62ce91cf47 docs: InfluxDB 1.12.4 after the first step-by-step update
ci / check (push) Successful in 2m14s
ci / publish (push) Successful in 1m54s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 17:44:01 +02:00
homelab-updaterandClaude Opus 5.5 0cde1fd338 docs: InfluxDB on 1.11.8 after the full-access repair
ci / check (push) Successful in 1m26s
ci / publish (push) Successful in 44s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 17:21:37 +02:00
homelab-updaterandClaude Opus 5.5 ab786cc55b docs(skills): InfluxDB 1.11 runs as uid 1500; fix with user 1000:1000
ci / check (push) Successful in 1m24s
ci / publish (push) Successful in 44s
The data dir is owned by 1000:1000 (mode 700), so 1.11.x crash-loops on
permission denied. The daily vzdump covers the data disk, so a portable
backup is not a STOP condition.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 17:13:15 +02:00
homelab-updaterandClaude Sonnet 5 7e622d80e3 hl exec-rules: the model looks at what it may run; Nextcloud's receipt checks are on the allowlist
ci / check (push) Successful in 1m7s
ci / publish (push) Successful in 44s
The first post-upgrade check on Nextcloud could run nothing: every hl exec, even `id`, was refused by the allowlist (only the
three db:add-* commands were on it, and the model had no way to know). `hl exec-rules` (route /agent/exec-rules) lists the
exact commands the session's project accepts, and the repair and post-upgrade prompts send the model there first. The
allowlist gets the read-only receipt check of the skill: occ status (with and without --output=json), occ config:app:get core
lastcron, occ app:list and pidof crond in the cron service. A test holds the file to this exact list. No new dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 02:32:42 +02:00
homelab-updaterandClaude Sonnet 5 e2cb6e3e6b exec allowlist: the three occ commands that add what a Nextclouds upgrade leaves missing in the database
ci / check (push) Successful in 2m43s
ci / publish (push) Successful in 39s
For the post-upgrade check (owner, 2026-09-20): php occ db:add-missing-indices, db:add-missing-columns and
db:add-missing-primary-keys, as www-data in nextcloud/app, exact argv. Nothing runs them until the owner sets a post-upgrade
executor for nextcloud in Apps. A test holds the committed file to the rule schema and to this exact list. No new dependency.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-20 02:04:12 +02:00
homelab-updater 72cf18239f feat: add read-only agent tasks
ci / check (push) Successful in 48s
ci / publish (push) Successful in 38s
2026-09-20 00:34:31 +02:00
homelab-updaterandClaude Opus 5 aab8d4704c skills: one per compose project, imported from the old SKILL.md files, edited in the app
ci / check (push) Successful in 41s
ci / publish (push) Successful in 21s
Facts about each app for the model (release notes, requirements such as database versions, STOP cases,
checks, the way back): table skills (migration v4), config/skills/<project>.md imported once from
the old system (frontmatter dropped, no secrets), added to the database at driver start when missing
and never overwritten, GET/POST /api/projects/:project/skill and a Skill panel on the app page.
Only the skill of the project the model works on will be loaded.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 22:10:01 +02:00
homelab-updaterandClaude Opus 5 99d637b626 config: database components of gitea, grafana, keycloak and nextcloud; new file entries join a running database
ci / check (push) Successful in 38s
ci / publish (push) Successful in 22s
grafana-influxdb (1.8.x), keycloak-db (postgres 18.x) and nextcloud-db (mariadb 10.6.x) are tracked,
with real updates off; gitea-db (postgres:14) and nextcloud-redis (redis:7-alpine) run floating tags
whose real version is unknown, so they are added disabled with strict patterns: guessing "14" as 14.0
would propose a downgrade. The driver now adds entries of config/apps.json that the database lacks,
after the existing rows, and never changes rows the owner configured.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 21:05:20 +02:00
homelab-updaterandClaude Sonnet 5 fe58ecc06f main: apps file and COMPOSE_ROOT/APPS_FILE settings for real mode
config/apps.json (15 apps, generated once from the old skills, patterns anchored at both
ends, homeassistant off) is loaded into app_config when it is empty. Real mode refuses to
start on a database that still holds demo rows.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-19 12:15:12 +02:00