I've been dabbling with trying to create a Windmill on Cloudron container. It's more difficult than other apps. Some notes:
There is a hard-coded set of ROLEs required of the postgres database: windmill_admin, and windmill_user. Windmill uses these in DB migration scripts as well as during runtime to control access and access levels (see this section). As far as I can tell, Cloudron's postgres does not offer flexibility to add new roles in the database.
Windmill's LSP (Language Server Protocol) is itself a docker container with various programming languages (node, deno, python, etc.) pinned to certain versions. Because of these pinned versions, it is difficult to integrate into a single container along with the rest of Windmill. This suggests the docker Cloudron addon may be necessary.
Windmill also runs workers within docker containers. This may also require the docker Cloudron addon.
In my effort to get most of Windmill running inside the same container, I have supervisord running with the following processes:
caddy
windmill-server
windmill-worker
Caddy (or similar) is needed in order to act as reverse proxy for both windmill-server and the windmill-lsp container's websocket service.
The biggest issue at this point is the hard-coded windmill_admin and windmill_user postgres roles. I'm not sure how to get around this other than to create a separate postgres DB, unfortunately.