Files
KNELCloudronPackages/README.md

9.2 KiB
Raw Blame History

KNEL Cloudron Packages

This repository scaffolds Cloudron packages for Known Element's portfolio. It provides:

  • A reusable application template (output/templates/cloudron-app) matching Cloudron packaging conventions.
  • Automation helpers in output/scripts/ to instantiate per-app scaffolds and run builds inside a dedicated Docker container.
  • A curated catalog (output/apps/catalog.json) that maps Known Element issue IDs to upstream projects.
  • Documentation under output/docs/ to guide packaging, testing, and release workflows.

Quick start

# Build or refresh the devtools image (first run builds automatically)
./output/run/dev.sh python --version

# Generate or refresh a single app scaffold
./output/run/dev.sh python output/scripts/new_app.py --slug apache-apisix

# Regenerate every scaffold (overwrites existing directories)
./output/run/dev.sh python output/scripts/new_app.py --force

# Lint an app and fail on placeholders
./output/run/dev.sh python output/scripts/lint_repo.py --slug apache-apisix --strict

# Update the status dashboard
./output/run/dev.sh python output/scripts/generate_status.py --preserve-timestamp

Packaging shell

# Build the Cloudron packager image (run when Dockerfile changes)
BUILD=1 ./output/run/packager.sh

# Launch an interactive Cloudron packaging shell
./output/run/packager.sh

All other development tasks should also use ./output/run/dev.sh (pass the desired command after the script). The wrapper will build the devtools image if needed and ensure every command executes inside Docker.

Repository layout

  • collab/ shared workspace for operator/agent collaboration (questions, proposals, plans).
  • output/apps/ generated Cloudron app scaffolds and metadata.
  • output/docs/ playbooks, architecture notes, and status dashboards.
  • output/docker/devtools/ Docker image that runs scaffolding, linting, and status tooling.
  • output/docker/packager/ Docker image for Cloudron packaging workflows.
  • output/run/ wrapper scripts for devtools and packager containers.
  • output/scripts/ helper scripts (scaffolding, tooling entrypoints).
  • output/templates/ base Cloudron app template.

Application catalog

Slug Issue Upstream
apache-apisix https://projects.knownelement.com/issues/179 https://github.com/apache/apisix.git
target-goalert https://projects.knownelement.com/issues/204 https://github.com/target/goalert.git
consuldemocracy https://projects.knownelement.com/issues/189 https://github.com/consuldemocracy/consuldemocracy.git
fleetdm-fleet https://projects.knownelement.com/issues/195 https://github.com/fleetdm/fleet.git
fonoster https://projects.knownelement.com/issues/227 https://github.com/fonoster/fonoster.git
healthchecks https://projects.knownelement.com/issues/192 https://github.com/healthchecks/healthchecks.git
hyperswitch https://projects.knownelement.com/issues/209 https://github.com/juspay/hyperswitch
netbox-docker https://projects.knownelement.com/issues/201 https://github.com/netbox-community/netbox-docker.git
openboxes-docker https://projects.knownelement.com/issues/205 https://github.com/openboxes/openboxes-docker.git
openfile https://projects.knownelement.com/issues/316 https://github.com/openfiletax/openfile.git
sniperphish https://projects.knownelement.com/issues/211 https://github.com/GemGeorge/SniperPhish-Docker.git
datahub https://projects.knownelement.com/issues/309 https://github.com/datahub-project/datahub.git
easy-gate https://projects.knownelement.com/issues/54 https://github.com/wiredlush/easy-gate.git
payroll-engine https://projects.knownelement.com/issues/208 https://github.com/Payroll-Engine/PayrollEngine.git
huginn https://projects.knownelement.com/issues/194 https://github.com/huginn/huginn.git
grist https://projects.knownelement.com/issues/191 https://github.com/gristlabs/grist-core
docassemble https://projects.knownelement.com/issues/277 https://github.com/jhpyle/docassemble.git
database-gateway https://projects.knownelement.com/issues/273 https://github.com/kazhuravlev/database-gateway.git
rundeck https://projects.knownelement.com/issues/217 https://github.com/rundeck/rundeck.git
slurm https://projects.knownelement.com/issues/222 https://github.com/SchedMD/slurm.git
rathole https://projects.knownelement.com/issues/225 https://github.com/rathole-org/rathole.git
jenkins https://projects.knownelement.com/issues/234 https://github.com/jenkinsci/jenkins.git
runme https://projects.knownelement.com/issues/322 https://github.com/runmedev/runme.git
seatunnel https://projects.knownelement.com/issues/301 https://github.com/apache/seatunnel
docker-webhook https://projects.knownelement.com/issues/271 https://github.com/thecatlady/docker-webhook
inventree https://projects.knownelement.com/issues/173 https://github.com/inventree/InvenTree.git
tak-server https://projects.knownelement.com/issues/180 https://github.com/Cloud-RF/tak-server
midday https://projects.knownelement.com/issues/178 https://github.com/midday-ai/midday.git
killbill https://projects.knownelement.com/issues/181 https://github.com/killbill/killbill.git
chirpstack https://projects.knownelement.com/issues/184 https://github.com/chirpstack/chirpstack.git
craig https://projects.knownelement.com/issues/185 https://github.com/CraigChat/craig.git
elabftw https://projects.knownelement.com/issues/188 https://github.com/elabftw/elabftw.git
jamovi https://projects.knownelement.com/issues/196 https://github.com/jamovi/jamovi.git
kibot https://projects.knownelement.com/issues/197 https://github.com/INTI-CMNB/KiBot.git
resgrid https://projects.knownelement.com/issues/214 https://github.com/Resgrid/Core
reviewboard https://projects.knownelement.com/issues/216 https://github.com/reviewboard/reviewboard.git
satnogs-kaitai https://projects.knownelement.com/issues/218 https://gitlab.com/librespacefoundation/satnogs/docker-kaitai.git
satnogs-webgui https://projects.knownelement.com/issues/218 https://gitlab.com/librespacefoundation/satnogs/docker-satnogs-webgui.git
sdrangel https://projects.knownelement.com/issues/219 https://github.com/f4exb/sdrangel-docker
signoz https://projects.knownelement.com/issues/221 https://github.com/SigNoz/signoz.git
warp https://projects.knownelement.com/issues/228 https://github.com/sebo-b/warp.git
drawio https://projects.knownelement.com/issues/272 https://github.com/jgraph/docker-drawio
openblocks https://projects.knownelement.com/issues/274 https://github.com/openblocks-dev/openblocks.git
wireviz-web https://projects.knownelement.com/issues/276 https://github.com/wireviz/wireviz-web.git
autobom https://projects.knownelement.com/issues/278 https://github.com/opulo-inc/autobom.git
plmore https://projects.knownelement.com/issues/279 https://github.com/PLMore/PLMore
manyfold https://projects.knownelement.com/issues/282 https://github.com/manyfold3d/manyfold.git
langfuse https://projects.knownelement.com/issues/283 https://github.com/langfuse/oss-llmops-stack.git
puter https://projects.knownelement.com/issues/286 https://github.com/HeyPuter/puter.git
windmill https://projects.knownelement.com/issues/285 https://github.com/windmill-labs/windmill.git
swupdate https://projects.knownelement.com/issues/326 https://github.com/sbabic/swupdate.git
mender-server https://projects.knownelement.com/issues/300 https://github.com/mendersoftware/mender-server.git
wireflow https://projects.knownelement.com/issues/50 https://github.com/vanila-io/wireflow.git
nautilus-trader https://projects.knownelement.com/issues/226 https://github.com/nautechsystems/nautilus_trader.git
mirlo TBD https://github.com/funmusicplace/mirlo.git

All entries are initially marked as todo; update individual READMEs as progress is made.

Local Verification

Run quality checks via the devtools wrapper:

# Fail if placeholders remain in the target manifest/start script
./output/run/dev.sh python output/scripts/lint_repo.py --slug apache-apisix --strict

# Refresh output/docs/APP_STATUS.md without changing the existing timestamp
./output/run/dev.sh python output/scripts/generate_status.py --preserve-timestamp

Use ./output/run/packager.sh whenever you need the Cloudron CLI to build, install, or push packages—it drops you into the dedicated packaging container.

CI/CD

The workflow .gitea/workflows/ci.yml mirrors the same commands by invoking the devtools container inside the runner. To reproduce the pipeline locally, run:

./output/run/dev.sh python output/scripts/lint_repo.py --strict --slug apache-apisix
./output/run/dev.sh python output/scripts/generate_status.py --preserve-timestamp
BUILD=1 ./output/run/packager.sh    # optional: rebuild packager image before smoke tests

Once a Gitea Actions runner is available, enable the workflow and it will build knel/cloudron-devtools/knel/cloudron-ci automatically.

Refer to output/docs/PACKAGING_GUIDE.md and AGENTS.md for detailed operating procedures.