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
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Build the PostgreSQL connection URL from the Cloudron postgresql addon.
|
||||
export DATABASE_URL="postgres://${CLOUDRON_POSTGRESQL_USERNAME}:${CLOUDRON_POSTGRESQL_PASSWORD}@${CLOUDRON_POSTGRESQL_HOST}:${CLOUDRON_POSTGRESQL_PORT}/${CLOUDRON_POSTGRESQL_DATABASE}?sslmode=disable"
|
||||
|
||||
# Single-container server mode (server embeds a default worker).
|
||||
export MODE="${MODE:-server}"
|
||||
|
||||
# Wait for PostgreSQL to accept connections before starting. Windmill runs SQL
|
||||
# migrations on startup, so the DB must be reachable. Uses bash /dev/tcp (no
|
||||
# pg_isready dependency).
|
||||
echo "Waiting for PostgreSQL at ${CLOUDRON_POSTGRESQL_HOST}:${CLOUDRON_POSTGRESQL_PORT} ..."
|
||||
for i in $(seq 1 60); do
|
||||
if (exec 3<>"/dev/tcp/${CLOUDRON_POSTGRESQL_HOST}/${CLOUDRON_POSTGRESQL_PORT}") 2>/dev/null; then
|
||||
exec 3>&- 3<&- || true
|
||||
echo "PostgreSQL is reachable."
|
||||
break
|
||||
fi
|
||||
echo " not ready yet, retrying in 2s ($i/60)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
cd /usr/src/app
|
||||
exec windmill
|
||||
Reference in New Issue
Block a user