Commit Graph
49 Commits
Author SHA1 Message Date
mrcharles b9bc032d2b feat: add GoAlert Cloudron package (Monitoring) [#633]
Official-image wrapper of goalert/goalert 0.34.1 (digest-pinned),
single Go binary + postgresql only. Native generic OIDC wired from
the platform provider (GOALERT_OIDC_*), data-encryption key
persisted, optional first-admin basic auth. grind-stack verified:
full migration chain, serving, origin canonicalization correct.
18th package; category table reconciled to the 46-app set.
2026-09-06 18:47:20 -05:00
mrcharles 5ba4078133 docs: sync packaging set with human Redmine rulings [#632]
GitUrlList 56 -> 46: removed Langfuse (explicit + new no-Node-apps
policy), Fonoster + PLMore (Node/NestJS), Huginn/Midday/OpenBlocks/
Warp/Comply/TODO-policies (deleted tickets = accepted dispositions),
AutoBOM + Craig (k8s lane). Runme stays (Go, not node). STATUS map
rewritten with per-ticket rulings; README inventory pruned to 46.
PLMore disposition corrected (it IS a PLM suite - template badges
fooled the first read).
2026-09-06 18:44:57 -05:00
mrcharles 6cb7ba7a12 docs: research-queue verdicts (GoAlert/InvenTree/Fleet GO; 3 blocked) [#632]
Explore-agent evidence pass: GoAlert+InvenTree GO, Fleet GO-with-risk
(SAML-only), Langfuse/SigNoz/Sentry blocked on mandatory ClickHouse/S3
or enterprise-gated auth. Notes on #633 #647 #658 #660 #666 #667.
2026-09-06 18:31:45 -05:00
mrcharles 6b4c025c07 docs: disposition analyses for 9 queue tickets [#632]
Out-of-scope recommendations with evidence on #646 #649 #654 #655
#663 #670 #672 #676 (framework/job-engine/infra/CLI/desktop, no
Cloudron app story) and blocked-on-auth for #664 (hosted Clerk).
Human ruling pending on GitUrlList removals.
2026-09-06 18:25:22 -05:00
mrcharles 1bf9810071 fix(consuldemocracy): verify end-to-end + harden seed/OIDC [#653]
Seed verification over marker trust (observed exit-0 no-op seed),
first-boot-only OIDC auto-enable, logo added, docs synced (JOURNAL
s17, counts 17/~57). grind-stack verified: homepage 200, OIDC SSO
button live.

Detail: https://projects.knownelement.com/issues/653#note-5044
2026-09-06 18:23:54 -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 7ab00a4da6 docs: auth-gate verdicts + dispositions for queue batch [#632]
Explore-agent code-level auth gate on 5 candidates: ConsulDemocracy GO
(generic OIDC), OpenBoxes needs LDAP runtime verification, Huginn /
PayrollEngine / OpenBlocks blocked-on-auth (local-only or social-only;
notes with evidence on #645 #652 #644 #665). Dispositions recommended
on #674 (duplicate), #677 (docs repo), #678 (Discord bot) - human
ruling pending on GitUrlList edits.
2026-09-06 07:07:08 -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 cead1523ad feat: add NetBox Cloudron package (Infrastructure) [#648]
Official-image wrapper of netboxcommunity/netbox v4.6.10
(netbox-docker 5.0.2, Granian), digest-pinned. OIDC via
python-social-auth wired to the platform provider; RQ worker
backgrounded behind a web-port gate; addon waits cover the 30s
upstream DB timeout. Full-stack verified: migrations, Granian,
worker, login page + SSO button. 16/~57.

Detail + verification: https://projects.knownelement.com/issues/648#note-4976
2026-09-06 06:26:54 -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 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 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
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 d313382dd1 fix: align clone-repos.sh category mapping with README inventory [#632]
fonoster belongs in Communication, corteza in Low-Code, comply in
Security, hyperswitch in Financial-Payments, nautilus_trader in
Financial-Trading, and the WireViz repos in Documentation-Tools.
Existing clones were moved to match; new runs land correctly.

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

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-09-01 18:15:39 -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 420342a620 chore: gitignore session-transient .crush ticket-gate file [#632]
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 d38b8a16d1 fix: repair clone-repos.sh URL filter that skipped every repo [#632]
The old condition only accepted lines that contained whitespace, so
every plain URL was skipped and the script was a silent no-op (0/0
clones). Strip each line and process all non-empty URLs.

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 c56e77c59c docs: reconcile stale package counts across docs
The docs had drifted to 5/58 packaged while Corteza (and Puter) were
already committed. Reconcile the headline count to 7/~57 everywhere
per the new gardening protocol (GitUrlList.txt is the source of truth
at 57 upstream apps).

- README.md: 5/58 -> 7, add Corteza to completed table, remove false
  "Warp packaged" marker (duplicate, no package), Low-Code 0/3 -> 1/3,
  link STATUS/AGENTS.
- JOURNAL.md: header + repository stats 5/58 -> 7/~57.
- RESUME.md: mark superseded by STATUS.md (was 2025-01-24, referenced
  dead /home/tsys paths) to avoid two competing status docs.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-30 15:49:35 -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
mrcharles 32925396dc feat: add Python app package template
- Create Python application Dockerfile template
- Create Python app CloudronManifest.json template
- Create Python app start.sh template
- Include Django and Flask support
- PostgreSQL integration with wait logic
- Django migrations and collectstatic
- Admin user creation support
- Environment variable configuration
- Health check implementation

Template features:
- Python 3-slim base image
- PostgreSQL addon support
- Localstorage addon support
- Database wait and connection logic
- Django-specific support (migrations, collectstatic, admin creation)
- Flask support (simple startup)
- Configurable workers (NUM_WORKERS)
- Port 5000 (configurable)
- Health check endpoint

Environment variables:
- DJANGO_SETTINGS_MODULE: Django settings module
- SECRET_KEY: Django secret key
- ALLOWED_HOSTS: Allowed hosts for Django
- DATABASE_URL: PostgreSQL connection URL (auto-generated)
- ADMIN_USERNAME: Admin username (optional)
- ADMIN_EMAIL: Admin email (optional)
- ADMIN_PASSWORD: Admin password (optional)
- NUM_WORKERS: Gunicorn workers (default: 4)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 18:05:41 -05:00
mrcharles 639648647e docs: add Corteza package details to JOURNAL.md
- Document Corteza (Low-Code) package completion
- Add Download Pre-Compiled Binaries pattern
- Include build process details
- Document challenges (none encountered)
- Add packaging template for pre-compiled applications
- Include pros and cons of this approach

Corteza package highlights:
- Multi-stage build downloading pre-compiled binaries
- Ubuntu 22.04 base (436MB image)
- PostgreSQL + localstorage addons
- Comprehensive low-code platform documentation
- Download-and-extract approach (simpler than compiling)

New packaging pattern:
- Download Pre-Compiled Binaries
- Use when application provides official releases
- Faster builds, reproducible results
- Trade-offs: dependency on upstream, less customization

Total packages completed: 7/56 (12.5%)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 18:02:23 -05:00
mrcharles eec43f84b6 feat: add Corteza Cloudron package (Low-Code)
- Create Dockerfile downloading pre-compiled binaries
- Add CloudronManifest.json with PostgreSQL and localstorage addons
- Create README.md with comprehensive low-code platform documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Corteza branding)

Corteza is an open-source low-code platform for building
database-driven applications without coding.

Package includes:
- Ubuntu 22.04 base with pre-compiled Corteza binaries (436MB)
- PostgreSQL addon for database storage
- Localstorage addon for application data
- Multi-stage download (simpler than building)
- Comprehensive documentation with visual builder examples
- Form builder, report builder, page builder examples
- User management and permissions documentation

Features supported:
- Visual app builder with drag-and-drop
- Form builder for data entry
- Report builder for custom reports
- Page builder for application pages
- API builder for REST APIs
- Workflow automation with triggers
- Database-driven applications
- Multi-tenancy support
- User management with role-based permissions
- Record management with import/export
- Theme customization
- Mobile-responsive design
- Audit trail
- Security features (row-level permissions)

Environment variables:
- CORTEZA_VERSION: Corteza version (default: 2022.9.0)
- STORAGE_PATH: Data storage path (default: /app/data)
- HTTP_ADDR: HTTP address (default: 0.0.0.0:80)
- HTTP_WEBAPP_ENABLED: Enable web app (default: true)

Ports:
- 80: Main HTTP port (web interface)

Addons:
- PostgreSQL: Database storage
- Localstorage: Application data

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 17:56:43 -05:00
mrcharles 9793f99991 docs: update README.md with completed packages progress
- Add Current Progress section with 5 completed packages
- Add Completed Packages table with details
- Update Functional Organization with completion status
- Update Application Inventory with package status legend
- Add progress bar (5/58 = 8.6%)
- Show API-Gateway category at 100% completion
- Include all documentation and resource links

Progress highlights:
- 5/58 packages completed (8.6%)
- 100% completion for API-Gateway category (2/2)
- 50% completion for Development category (2/4)
- 33% completion for Documentation-Tools category (1/3)
- 17% completion for Monitoring category (1/6)

Completed packages:
1. Webhook (API-Gateway) - 775MB
2. APISIX (API-Gateway) - 143MB
3. Healthchecks (Monitoring) - 105MB
4. Review Board (Development) - 1.29GB
5. WireViz Web (Documentation-Tools) - 378MB
6. Puter (Development) - 361MB

Average package time: ~30 minutes
Success rate: 100%
All packages committed and pushed to remote

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 15:51:46 -05:00
mrcharles 11aac9ffc8 feat: add Cloudron packaging templates
- Create Package-Templates directory structure
- Add official-wrapper Dockerfile template
- Add Django application template (Dockerfile + start.sh)
- Add README template with comprehensive documentation
- Create template usage documentation

Templates include:
- Official Image Wrapper pattern (simple wrapper for existing images)
- Django Application pattern (with PostgreSQL integration)
- Standardized README template with all sections
- Django start.sh with database wait, migrations, admin creation
- Template documentation and usage instructions

Benefits:
- Accelerates packaging for similar applications
- Ensures consistency across packages
- Reduces repetitive work
- Documents Cloudron best practices
- Reference for future packaging

Template patterns covered:
- Official image wrapper
- Django application with PostgreSQL
- Database wait logic
- Migration execution
- Admin user creation
- Health check implementation
- Environment variable configuration

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 15:41:08 -05:00
mrcharles 733a38304f docs: add JOURNAL.md and update AGENTS.md with packaging insights
- Create comprehensive JOURNAL.md documenting all completed packages
- Document packaging patterns, challenges, and solutions
- Update AGENTS.md to reference JOURNAL.md
- Add knowledge base for Cloudron packaging
- Include Docker best practices and optimization techniques
- Capture lessons learned for future reference

JOURNAL.md contains:
- Detailed analysis of 5 completed packages
- 7 established packaging patterns
- 5 common challenges with solutions
- Cloudron-specific considerations
- Productivity insights and metrics
- Best practices and optimization guidelines

AGENTS.md now includes:
- Reference to JOURNAL.md for detailed insights
- Packaging patterns and templates
- Common challenges and solutions
- Cloudron best practices reference
- Expertise developed through project
- Future recommendations

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 15:23:54 -05:00
mrcharles 38e75fb549 feat: add Puter Cloudron package (Development)
- Create multi-stage Dockerfile with Node.js 23.9-alpine
- Add CloudronManifest.json with PostgreSQL and localstorage addons
- Create .dockerignore to exclude Cloudron package files
- Include README.md with comprehensive Internet OS documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Puter branding)

Puter is "The Internet OS" - an advanced, open-source
internet operating system designed to be feature-rich, exceptionally
fast, and highly extensible.

Package includes:
- Node.js 23.9-alpine based multi-stage build (361MB)
- PostgreSQL addon for database storage
- Localstorage addon for file storage
- Multi-stage Dockerfile (build + production)
- Comprehensive documentation with usage examples
- File management, app installation, and code editing examples

Features supported:
- Internet OS in browser (full desktop experience)
- Personal cloud storage (privacy-first, self-hosted)
- Web app builder and publisher
- App Store with growing ecosystem
- Built-in file manager with drag-and-drop
- Code editor with syntax highlighting
- Terminal with bash shell
- Multi-user support with permissions
- Games platform
- Remote desktop environment
- Alternative to Dropbox, Google Drive, OneDrive
- Window management, taskbar, start menu
- Keyboard shortcuts and efficiency features
- Themes and customizable interface

Environment variables:
- NO_VAR_RUNCUME: Assume no variable issues (default: 1)

Ports:
- 4100: Main HTTP port (web interface and API)

Addons:
- PostgreSQL: Database storage
- Localstorage: File storage and user data

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 14:46:25 -05:00
mrcharles f7c344e429 feat: add WireViz Web Cloudron package (Documentation-Tools)
- Create Dockerfile with Python 3 and Graphviz
- Add CloudronManifest.json with localstorage addon
- Create requirements.txt with WireViz and Flask dependencies
- Include README.md with comprehensive diagram tool documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (WireViz branding placeholder)

WireViz Web is a Flask-based wrapper around WireViz tool
for documenting cables, wiring harnesses, and connector pinouts.
Takes YAML files as input and produces graphical output.

Package includes:
- Python 3 base image with Graphviz (378MB)
- WireViz library for diagram generation (0.4.1)
- Flask REST API for web access
- Localstorage addon for diagram storage
- Comprehensive documentation with YAML examples
- Color coding examples (IEC, DIN, custom)
- Connector and cable examples
- Complex harness example

Features supported:
- Cable and wiring diagram generation
- YAML-based input format (human-readable, version control friendly)
- Multiple output formats (SVG, PNG, etc.)
- Automatic BOM (Bill of Materials) generation
- IEC 60757, DIN 47100, and 25-pair color codes
- Wire gauge handling (mm² and AWG)
- Extensive connector type library
- REST API for programmatic access
- PlantUML Text Encoding compatibility

Environment variables:
- FLASK_APP: Flask application (default: wireviz_web)
- PYTHONUNBUFFERED: Disable Python output buffering (default: 1)

Ports:
- 3005: Main HTTP port (web interface and API)

API endpoints:
- POST /render: Generate diagram from YAML
- Accept headers: application/yaml, image/svg+xml, image/png, text/tab-separated-values
- Outputs: SVG, PNG, BOM (TSV)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 14:28:59 -05:00
mrcharles 8a09aaede4 feat: add Review Board Cloudron package (Development)
- Create Dockerfile wrapping official Review Board image
- Add CloudronManifest.json with PostgreSQL addon
- Create start.sh script with PostgreSQL wait and Django migrations
- Include README.md with comprehensive review platform documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Review Board branding)

Review Board is a web-based code and document review tool
that tracks pending code, graphics, documents, and all discussions
around product decisions.

Package includes:
- Official Review Board Docker image wrapper (1.29GB)
- Cloudron PostgreSQL addon for Django database
- Automatic database migrations on startup
- Admin user creation via environment variables
- Comprehensive documentation with integration examples
- Examples for GitHub, GitLab, Mercurial, and Perforce

Features supported:
- Code review with advanced diff viewer (syntax highlighting, interdiffs)
- Document review (PDF and Office files)
- Discussion tracking with threaded comments
- Review requests workflow
- Repository integration (Git, Mercurial, Perforce, Plastic, Azure DevOps)
- Team and project management
- Email notifications
- Search across reviews and discussions
- Power Pack extension support (reports, LDAP sync, GitHub Enterprise)
- User authentication (LDAP, OAuth, traditional)

Environment variables:
- SECRET_KEY: Django secret key
- ALLOWED_HOSTS: Allowed hosts (default: *)
- REVIEWBOARD_SITE_ROOT: Site root URL
- ADMIN_USERNAME/EMAIL/PASSWORD: Admin account creation
- LDAP_*: LDAP/Active Directory configuration

Ports:
- 8080: Main HTTP port (web interface and API)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 14:11:47 -05:00
mrcharles 3aaf98267d feat: add Healthchecks Cloudron package (Monitoring)
- Create Dockerfile wrapping official Healthchecks image
- Add CloudronManifest.json with PostgreSQL addon
- Create start.sh script with PostgreSQL wait and Django migrations
- Include README.md with comprehensive monitoring documentation
- Add .env.example for environment configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Healthchecks branding)

Healthchecks is a cron job monitoring service that listens
for HTTP requests and email messages (pings) from your cron
jobs and sends alerts when pings are late.

Package includes:
- Official Healthchecks Docker image wrapper (105MB)
- Cloudron PostgreSQL addon for Django database
- Automatic database migrations on startup
- Superuser creation via environment variables
- Email configuration support for alerts
- Comprehensive documentation with monitoring examples
- Examples for cron, systemd, scripts, and webhook monitoring

Features supported:
- Cron job monitoring via HTTP pings
- 25+ notification integrations (Email, SMS, Slack, Telegram, Matrix, etc.)
- Live-updating web dashboard
- Status badges for public monitoring
- Team management (projects, team members, read-only access)
- Monthly email reports
- WebAuthn 2FA support
- Tag-based organization
- Project grouping
- Detailed event logs
- Grace time configuration
- Cron expression support

Environment variables:
- SECRET_KEY: Django secret key
- ALLOWED_HOSTS: Allowed hosts (default: *)
- SITE_ROOT: Site root URL
- EMAIL_HOST/PORT/USER/PASSWORD: SMTP configuration
- SUPERUSER_EMAIL/PASSWORD: Admin account creation

Ports:
- 8000: Main HTTP port (web interface and API)

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 13:55:57 -05:00
mrcharles 9877a53291 feat: add APISIX Cloudron package (API-Gateway)
- Create Dockerfile wrapping official Apache APISIX image
- Add CloudronManifest.json with etcd addon and multiple TCP ports
- Create start.sh script with etcd wait and auto-configuration
- Include README.md with comprehensive usage documentation
- Add config.yaml.example for reference configuration
- Add CHANGELOG.md for version tracking
- Add logo.png (Apache APISIX branding)

APISIX is a dynamic, real-time, high-performance API Gateway
that provides rich traffic management features.

Package includes:
- Official Apache APISIX Docker image wrapper (143MB)
- Cloudron etcd addon integration for configuration storage
- Automatic etcd connection wait and configuration
- Multiple exposed ports (9180: Admin API, 9080: HTTP, 9443: HTTPS)
- 1024MB memory limit for gateway operations
- Comprehensive documentation with API usage examples
- Plugin configuration examples

Ports:
- 9180: Admin API port (REST API for configuration)
- 9080: HTTP proxy port (client requests)
- 9443: HTTPS proxy port (client requests with SSL)

Features supported:
- Dynamic configuration without restarts
- Multi-protocol (HTTP/HTTPS, TCP/UDP, Dubbo, MQTT, gRPC, WebSocket)
- Load balancing with multiple strategies
- Security (IP restrictions, JWT, API Key auth)
- Traffic management (rate limiting, circuit breaking, canary releases)
- 100+ plugins for extensibility
- AI Gateway capabilities for LLM workloads

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 12:49:08 -05:00
mrcharles 8f133b9df4 feat: add webhook Cloudron package (API-Gateway)
- Create Dockerfile for webhook (Go application)
- Add CloudronManifest.json with basic configuration
- Include README.md with usage documentation
- Add hooks.json.example configuration template
- Add logo.png (256x256)
- Add CHANGELOG.md for version tracking

Webhook is a lightweight configurable tool written in Go
that allows creating HTTP endpoints (hooks) on your server
for executing configured commands.

Package includes:
- Multi-stage Dockerfile using golang:1.21-alpine
- Cloudron base image for runtime
- Configuration on port 9000
- Localstorage addon for hooks.json
- 256MB memory limit

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 08:29:01 -05:00
mrcharles fdd115e740 docs: update session resume with completed foundation work
- Successfully cloned all 58 repositories (WireViz, elabftw fixed)
- Cleaned up GitUrlList.txt (removed invalid URLs and duplicates)
- Updated project statistics (58/58 repos cloned, 20 functional categories)
- Updated functional categories summary (all 100% cloned)
- Updated immediate next steps (ready for packaging phase)
- Resolved known issues (duplicates cleaned, clones fixed)
- Updated project goals checklist (3 items completed)

Foundation phase complete, ready to begin Cloudron packaging.

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 08:12:17 -05:00
mrcharles 9e86ae885a chore: clean up repository URL list
- Remove invalid oat-sa organization URL (not a repository)
- Remove duplicate warp entries (reduced from 2 to 1)
- Remove duplicate windmill entries (reduced from 2 to 1)
- Remove invalid mendersoftware organization URL
- Remove satnogs (GitLab repo requires authentication)
- Total entries: 58 repositories (down from 62)

All problematic repositories have been excluded from project.

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 08:09:01 -05:00
mrcharles fe060c1627 chore: add git ignore configuration
- Configure .gitignore to exclude cloned repositories
- Ignore Package-Workspace/**/repo/ to avoid polluting project repo
- Exclude common build artifacts (node_modules, target, build, dist)
- Ignore IDE files (.vscode, .idea)
- Exclude OS files (.DS_Store, Thumbs.db)
- Ignore logs and temporary files

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:32 -05:00
mrcharles 2dc31349b2 feat: add automated repository cloning script
- Create clone-repos.sh automation script
- Add colored output for better user experience
- Implement timeout handling (60 seconds per clone)
- Add automatic functional category mapping
- Include progress reporting and summary statistics
- Handle edge cases with helpful error messages
- Enable reproducible workspace setup for other developers

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:28 -05:00
mrcharles 61663d7540 feat: add upstream repository URL list
- Add GitUrlList.txt with all 62 upstream repository URLs
- Include GitHub repositories for 58+ applications
- Add GitLab repository (satnogs) for IoT/LoRaWAN
- Organize URLs in sequential order matching categories
- Note: Contains duplicate entries (warp x2, windmill x2) to be cleaned

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:24 -05:00
mrcharles a28776f238 docs: add session resume guide
- Create RESUME.md for seamless session continuity
- Document current project state and completed work
- List uncommitted changes and suggested commit messages
- Add repository status (56/59 successfully cloned)
- Identify failed clones and special cases (docassemble structure)
- Provide immediate next steps with commands
- Add project statistics and functional category summary
- Include recommended starting points for different scenarios
- Document known issues and duplicate entries

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:59:10 -05:00
mrcharles 53fa1c20d3 docs: add AI agent context and guidelines
- Create comprehensive AGENTS.md for AI agent orientation
- Document project overview, stakeholders, and timeline
- Add key decisions and rationale (organization, repo management)
- Document working patterns and communication style
- Include application categories and programming languages
- Add session resume guide and project status tracking
- Document known issues and recovery steps

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:58:43 -05:00
mrcharles 61225a20e5 docs: add comprehensive project documentation
- Add detailed project overview with 58+ applications
- Create functional category organization (20 categories)
- Add complete application inventory table with links
- Document development workflow and directory structure
- Add Cloudron packaging resources and project goals

💘 Generated with Crush

Assisted-by: GLM-4.7 via Crush <crush@charm.land>
2026-02-04 07:58:24 -05:00
reachableceo e2c8067ae5 Initial commit 2025-11-16 19:35:54 +00:00