KNEL Cloudron Packages
This repository scaffolds Cloudron packages for Known Element's portfolio. It provides:
- A reusable application template (
templates/cloudron-app
) matching Cloudron packaging conventions. - Automation helpers in
scripts/
to instantiate per-app scaffolds and run builds inside a dedicated Docker container. - A curated catalog (
apps/catalog.json
) that maps Known Element issue IDs to upstream projects. - Documentation under
docs/
to guide packaging, testing, and release workflows.
Quick start
# Generate all app scaffolds from the catalog
python3 scripts/new_app.py
# Or regenerate scaffolds via Makefile
make scaffold
# Work on a single app skeleton
python3 scripts/new_app.py --slug apache-apisix
# Update the status table
make status
# Lint generated apps
make lint
# Run the full CI harness locally
make ci-local
# Build and enter the Cloudron packager container
BUILD=1 scripts/run_packager.sh
scripts/run_packager.sh
Within the container, use the Cloudron CLI to build, test, and publish packages without touching the host environment:
cloudron login my.example.cloudron
cloudron build
cloudron install --app my-example
cloudron push
Refer to docs/PACKAGING_GUIDE.md
for detailed guidance.
See docs/APP_STATUS.md
for the automatically generated status table.
Repository layout
apps/
– generated app scaffolds and metadatadocs/
– playbooks and architecture notesdocs/CI_CD_GITEA.md
– instructions for running CI/CD and publishing images via the Gitea instancedocker/packager/
– Docker image for Cloudron packaging workflowsscripts/
– helper scripts (scaffolding, tooling entrypoints)templates/
– base Cloudron app template
Application catalog
All entries are initially marked as todo
; update individual READMEs as progress is made.
Local Harness
Run ./scripts/ci_local.sh
(or make ci-local
) to execute the same lint and smoke tests that the future Gitea runner will use. Install git hooks via ./scripts/hooks/install_hooks.sh
so pre-commit, post-commit, and pre-push events invoke the harness automatically. Export SKIP_CI_HOOKS=1
to bypass them when necessary. See docs/LOCAL_TESTING.md
for full details.
CI/CD
Once a runner is provisioned, enable .gitea/workflows/ci.yml
to call the same harness remotely (it currently requires manual workflow_dispatch
). Mirror actions/checkout@v4
and label the runner ubuntu-22.04
. See docs/CI_CD_GITEA.md
for setup details.