Commit Graph
20 Commits
Author SHA1 Message Date
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 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 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 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 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 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 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 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