Commit Graph
13 Commits
Author SHA1 Message Date
mrcharles 6ed4cf9647 docs: mark 6 landed tickets in build map header [#669]
Map header said 46 open; #639 #640 #650 #651 #668 #669 have landed,
leaving 40 open.
2026-09-02 20:00:02 -05:00
mrcharles 1cc0063e03 feat: add eLabFTW Cloudron package (Business-Apps) [#669]
Official-image wrapper of elabftw/elabimg 5.6.12 (tag+digest pinned);
localstorage + mysql + ldap addons; httpPort 443 via DISABLE_HTTPS.
No OIDC upstream -> native LDAP flagged auth-risk. First mysql-addon
and first Business-Apps package; 15/~57. Build verified green under
ukrrs-batch.slice. Docs synced (JOURNAL s15, README, STATUS).

Detail + verification: https://projects.knownelement.com/issues/669#note-3938
2026-09-02 19:58:59 -05:00
mrcharles 0d7543704b feat: add ChirpStack Cloudron package (Infrastructure) [#668]
ChirpStack 4.19.1 (LoRaWAN network server) as the 14th package:
official-image wrapper, digest-pinned, with only bash added to the
upstream alpine runtime. Native OIDC login wired to the Cloudron
platform provider (openid_connect backend, config regenerated every
start); postgresql + redis addons; diesel migrations auto-run.
Operator config (NetID, US915 region, gateway MQTT backend) lives in
seeded files under /app/data/config. Build green; config generation
validated through chirpstack's own TOML parser. Docs gardened to 14
packages.

Ticket: https://projects.knownelement.com/issues/668

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-01 19:55:23 -05:00
mrcharles 10e2b7c7ed feat: add FX Cloudron package (DevOps-Tools) [#640]
FX 0.9.48 ("poor man's function as a service") as the 13th package:
pre-compiled goreleaser release binary with sha256 pin on
cloudron/base:4.0.0. fx is a CLI with no user concept, so the package
is a workstation: pinned binary + persistent workspace
(functions/ssh/kube) driven from the Cloudron web terminal, with an
auth-proxied landing page as the only HTTP surface (httpAuth proxy).
Deploys target remote Docker hosts over key-based SSH or Kubernetes
via FX_KUBECONF. Build green; runtime smoke (landing page, workspace
seeding, fx -v) green. Docs gardened to 13 packages.

Ticket: https://projects.knownelement.com/issues/640
2026-09-01 19:39:53 -05:00
mrcharles 3d38c507e8 feat: add Database-Gateway Cloudron package (Infrastructure) [#639]
Database Gateway 0.24.0 as the 12th package: multi-stage Go build
(CGO required by the libpg_query parser, hence an alpine:3.23 runtime
matching upstream), native OIDC wired to the Cloudron platform identity
provider, postgresql addon storage with goose migrations applied at
start, jq-generated config + OPA policy seeded to /app/data. Verified
end-to-end against a throwaway postgres (migrations, policy compile,
startup to the OIDC handoff). Docs gardened to 12 packages.

Ticket: https://projects.knownelement.com/issues/639
2026-09-01 19:28:06 -05:00
mrcharles f918a90c3b feat: add Rathole Cloudron package (Infrastructure) [#650]
Server-mode Rathole 0.5.0 as the 11th package: pinned upstream binary
(sha256 gate) on cloudron/base:4.0.0, control port 2333 plus a 100-port
tunnel exit range, hot-reloading config in /app/data, auth-proxy verdict
(no user concept). Verified end-to-end with a live client tunnel.
Docs gardened (STATUS/README/JOURNAL to 11 packages).

Ticket: https://projects.knownelement.com/issues/650
2026-09-01 19:02:51 -05:00
mrcharles 8d0b0f42f6 feat: add Easy-Gate Cloudron package (Infrastructure) [#651]
Easy Gate 2.0.3 dashboard hub: multi-stage Go build (static binary on
cloudron/base 3.2.0), config persisted at /app/data/easy-gate.json with
real-time hot reload. No user model (IP-subnet groups only), so the app
ships behind the Cloudron auth proxy (httpAuth.type=proxy); localstorage
addon only, no database. Build validated green + smoke test HTTP 200.
Docs synced (STATUS/README/JOURNAL at 10/~57).

Ticket: https://projects.knownelement.com/issues/651

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-01 18:34:29 -05:00
mrcharles c17788d6bf docs: record SniperPhish upstream 404 in known issues [#657]
Detail: https://projects.knownelement.com/issues/657

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-01 18:16:09 -05:00
mrcharles b93d0a2d69 docs: add build ticket map and Redis/inventory corrections [#632]
46 build tickets filed (#633-#678) under umbrella #632 in Redmine
project 55; STATUS.md carries the full map. NetBox re-rated as a strong
candidate (Cloudron HAS a redis addon - earlier claim was wrong). README
inventory reconciled to GitUrlList.txt (57 rows); grist-core excluded
(packaged upstream); disposition flags on warp/policies/craig.

Detail: https://projects.knownelement.com/issues/632#note-1

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-01 18:04:26 -05:00
mrcharles 10e558500f feat: add Windmill Cloudron package (Automation)
Windmill is an open-source workflow-automation / internal-apps platform
that turns scripts (Python, JS/TS, Go, Bash, SQL, Rust, ...) into HTTP
endpoints, scheduled jobs, and visual flows. It is PostgreSQL-only —
it uses Postgres LISTEN/NOTIFY for job queuing, so no Redis is required,
making it a clean Cloudron fit.

- Wraps the official ghcr.io/windmill-labs/windmill:1.514.1 image in
  single-container server mode (embedded default worker)
- start.sh composes DATABASE_URL from the Cloudron postgresql addon and
  waits for the DB (bash /dev/tcp, no pg_isready dependency)
- HTTP port 8000, health check on /api/version, 2GB memory limit
- OIDC/SAML supported via the in-app Admin Settings UI (post-install)
- Validated end-to-end: throwaway postgres + windmill ran migrations and
  returned /api/version => "CE v1.514.1", HTTP 200

Gardening: STATUS/README/JOURNAL updated (9/~57 packaged; Automation
1/4). Windmill logged as a new OIDC-preferred completed package.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:15:23 -05:00
mrcharles ac82c22af3 feat: add draw.io Cloudron package (Documentation-Tools)
draw.io (diagrams.net) is a client-side diagramming app. It has no user
model and no server-side state (diagrams live in the browser or cloud
storage), so this is the first package to use the Cloudron
authentication-proxy pattern: httpAuth.type=proxy gates access at the
platform edge — the admin restricts who can reach it and the browser
challenges for Cloudron credentials.

- Wraps the official jgraph/drawio:24.7.17 Tomcat image (pinned, verified)
- No database / no persistent storage; installs curl for the health check
- HTTP port 8080, health check on /
- Validated: docker build + run return HTTP 200, container healthy

Gardening: STATUS/README/JOURNAL updated (8/~57 packaged); new
"official-image wrapper + auth proxy" pattern documented in JOURNAL.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:08:48 -05:00
mrcharles 06a2205949 docs: add mandatory authentication policy to AGENTS and STATUS
Establishes a hard auth gate before any app is packaged: OIDC is
preferred, LDAP is acceptable (flagged risk), auth-proxy for user-less
utility apps, and local-only-auth apps are blocked from packaging
until they gain SSO.

- AGENTS.md: new "Authentication Policy" section with the verdict table
  and Cloudron OIDC/LDAP/proxy-auth wiring notes.
- STATUS.md: new "Auth Status" matrix assessing all 7 completed
  packages + the next candidates (draw.io proxy-eligible, Windmill
  OIDC, NetBox OIDC but Redis-blocked, Gophish blocked-on-auth).
  Flags tech debt: Webhook/WireViz need httpAuth proxy added; Puter
  auth needs revisit.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 16:07:56 -05:00
mrcharles cbb6c8c75c docs: establish gardening protocol with STATUS.md and agent guide
Mirror the agent workflow used across sibling TSYS/KNEL repos
(PFVCluster, KNEL-AIMiddleware): a living agent-maintained STATUS.md
plus a concise AGENTS.md carrying Git Policy and an Automatic Gardening
Protocol that keeps all docs in sync.

- Add STATUS.md: completed packages table (7), per-category progress,
  known issues, next priorities, repo summary. Human read-only; agents
  own it.
- Rewrite AGENTS.md (384 -> 140 lines): repo layout, git policy
  (atomic, conventional, commit+push without prompting), gardening
  protocol, packaging quick-reference. Fixes active model (GLM-4.7 ->
  GLM-5.2), stale counts, and dead /home/tsys paths.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 15:49:31 -05:00