Restructure repository into output workspace

This commit is contained in:
2025-10-02 14:04:13 -05:00
parent fe0ade1dd9
commit 6e3f60cd9d
420 changed files with 256 additions and 220 deletions

View File

@@ -0,0 +1,27 @@
{
"manifestVersion": 2,
"id": "com.knel.rundeck",
"title": "Rundeck",
"author": "Known Element Packaging Team",
"tagline": "TODO: Short one-line pitch",
"description": "TODO: Comprehensive description for the Cloudron App Store entry.",
"changelog": "Initial scaffold",
"website": "https://github.com/rundeck/rundeck",
"supportUrl": "https://projects.knownelement.com/issues/217",
"sourceUrl": "https://github.com/rundeck/rundeck.git",
"version": "0.1.0",
"tags": ["custom", "known-element"],
"healthCheckPath": "/",
"httpPort": 3000,
"memoryLimit": "512M",
"addons": {
"localstorage": {}
},
"optionalAddons": {
"postgresql": {},
"redis": {},
"mysql": {},
"mongodb": {},
"sendmail": {}
}
}

View File

@@ -0,0 +1,39 @@
# syntax=docker/dockerfile:1.6
ARG APP_VERSION=latest
FROM cloudron/base:5.0.0 AS builder
WORKDIR /build
# -----------------------------------------------------------------------------
# TODO: Fetch and build Rundeck
# Example:
# RUN git clone --depth 1 --branch "${APP_VERSION}" https://github.com/rundeck/rundeck.git source \
# && cd source \
# && npm ci \
# && npm run build
# -----------------------------------------------------------------------------
FROM cloudron/base:5.0.0
LABEL org.opencontainers.image.source="https://github.com/rundeck/rundeck.git"
LABEL org.opencontainers.image.description="Cloudron package for Rundeck"
ENV APP_VERSION=${APP_VERSION}
# -----------------------------------------------------------------------------
# TODO: Copy build artefacts from the builder stage
# COPY --from=builder /build/source/dist /app/code
# -----------------------------------------------------------------------------
COPY ./app /app/code
COPY ./start.sh /app/pkg/start.sh
COPY ./test /app/pkg/test
RUN chmod +x /app/pkg/start.sh /app/pkg/test/smoke.sh \
&& mkdir -p /app/data \
&& chown -R cloudron:cloudron /app
USER cloudron
WORKDIR /app/code
CMD ["/app/pkg/start.sh"]

View File

@@ -0,0 +1,20 @@
# Rundeck on Cloudron
- **Upstream repository**: https://github.com/rundeck/rundeck.git
- **Implementation issue**: https://projects.knownelement.com/issues/217
- **Generated**: 2025-10-02T17:19:00Z UTC
## Packaging Checklist
1. Map upstream services (databases, caches, workers) to Cloudron addons; remove unused entries from `optionalAddons` and enable required ones under `addons`.
2. Implement the multi-stage build in `Dockerfile` to fetch/compile the correct release of Rundeck.
3. Update `start.sh` to configure the app from Cloudron environment variables and launch the primary process.
4. Replace the placeholder health checks and smoke test with real coverage.
5. Complete `CloudronManifest.json` (tagline, description, versioning, resource limits, ingress, TCP ports, etc.).
6. Document manual configuration steps, migrations, and known gaps below.
## Notes
- Populate the `app/` directory with runtime overlays or artifacts generated during the build stage.
- Use the shared packaging container (`output/docker/packager`) for `cloudron build/install` to keep the host clean.
- Record decisions and operational requirements under `output/docs/apps/rundeck/` as work progresses.

View File

View File

@@ -0,0 +1,9 @@
{
"slug": "rundeck",
"title": "Rundeck",
"issue": "https://projects.knownelement.com/issues/217",
"repo": "https://github.com/rundeck/rundeck.git",
"additionalRepos": [],
"created": "2025-10-02T17:19:00Z",
"notes": "TODO: capture packaging notes"
}

9
output/apps/rundeck/start.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
# TODO: render configuration files from CLOUDRON_* environment variables
# Example:
# envsubst < /app/pkg/config.tmpl > /run/config.yaml
>&2 echo "start.sh for Rundeck is not implemented yet."
exit 1

View File

@@ -0,0 +1,14 @@
#!/usr/bin/env bash
set -euo pipefail
cloudron_app_origin=${CLOUDRON_APP_ORIGIN:-http://localhost}
http_code=$(curl --silent --show-error --output /tmp/smoke.log --write-out "%{http_code}" "${cloudron_app_origin}/")
if [[ "${http_code}" != "200" ]]; then
>&2 echo "Smoke test failed for Rundeck: expected HTTP 200 from ${cloudron_app_origin}/, got ${http_code}"
>&2 cat /tmp/smoke.log
exit 1
fi
echo "Smoke test placeholder passed for Rundeck"