Commit Graph
7 Commits
Author SHA1 Message Date
vpengops 26f335ed5a refactor(scripts): grind-stack fidelity - readonly rootfs, chown, sbom cmd
- emulate the Cloudron 8 app contract: --read-only + /tmp,/run tmpfs
- chown /app/data to the image uid (localstorage contract)
- wire the previously unreachable sbom subcommand into dispatch
- probe containers use --entrypoint (images wrap start.sh)

Umbrella: https://projects.knownelement.com/issues/632
2026-09-07 10:02:16 -05:00
vpengops e5a758ec6e feat: VpEngOps identity + SBOM/GLPI plans wired into lifecycle [#834]
Commits now authored as VpEngOps (vault: creds/vpengops-vpentops);
reachableceo is the human personal account. grind-stack gains `sbom`
(CycloneDX via pinned syft container, run before sweep) per #834;
GLPI catalog entries planned in #835 gated on #801 write access.
AGENTS.md packaging steps extended; questions-v1.md opened for the
founder (netbird scope, SigNoz reopen, SBOM format).
2026-09-06 20:08:41 -05:00
mrcharles 69d0d3e896 feat: add InvenTree Cloudron package (Business-Apps) [#658]
Official-image wrapper of inventree/inventree 1.5.2 (digest-pinned).
allauth OIDC provider JSON built from the platform env; invoke update
on boot; RQ worker behind the web-port gate; admin seeded with a
generated password. grind-stack: lowercase image names. 19th package.
Verified: health 200, SSO route 302s to issuer, migrations clean.

Detail: https://projects.knownelement.com/issues/658#note-5086
2026-09-06 19:12:02 -05:00
mrcharles 7c65dc18d3 feat(consuldemocracy): add initial Cloudron package
Build from source on ruby:3.4.10-trixie (trimmed from the upstream dev
Dockerfile: no Chromium, no sudo, fixed non-root user). Uses the
postgresql and localstorage addons; start.sh regenerates
database.yml/secrets.yml under /app/data every boot, seeds the DB once
(marker file) with a local admin, runs memcached in-container, and
backgrounds a delayed_job worker gated on migrations. Platform OIDC is
wired into secrets.yml; local login stays for the seeded admin.

Also drop --rm from the app container in grind-stack.sh so a crashed
container keeps its logs for `logs`.
2026-09-06 18:03:58 -05:00
mrcharles b9d963e7c5 feat: add grind-stack verify lifecycle for package work [#632]
Serial one-at-a-time test harness: builds under ukrrs-batch.slice,
ephemeral pg/redis/mysql per manifest addons, app driven by the real
CLOUDRON_* env contract. All resources labeled cloudron.grind=1 so
down/sweep cannot touch fleet containers. AGENTS.md documents the
per-package lifecycle (up/curl/logs/down/sweep) + host resource rules.
2026-09-06 06:36:20 -05:00
mrcharles ee5344f5a5 fix: repair memlimits script and finish #685 apply pass
Env var name mismatch (CLOUDRON_API_TOKEN), dash echo corrupting the
1MB apps JSON (backslash escapes), scheme-prefixed fqdn filter that
matched nothing, unset curmbMB under set -u, and the wrong endpoint
(POST /configure/memory_limit is the real route). Apply now complete:
15/16 were already at target; photos floor-limited 4096->3584 (Immich
manifest floor), task 15687, healthy.

Detail: https://projects.knownelement.com/issues/685
2026-09-06 05:34:46 -05:00
mrcharles 8a613b4f7d right-size app memory limits via Cloudron API [#685]
Staged during the postgres/connection exhaustion fix; limits had grown to
160GB total on a 62GB box while chasing the flapping. Plan/canary/apply
modes, ~28GB of slider headroom reclaim.
2026-09-02 18:13:25 -05:00