I have been packaging apps for a while and looking to get back into the swing of it - if anyone would like to see any apps, please reply with it below, I'll see if I can mix up one or two. 
AppDev
Cloudron App Packagers
Posts
-
Looking for an App? -
How to create Sender from outbound mail ?Mar 03 15:37:42 2026-03-03T21:37:42.190 request_id=GJlyiUIE9OJthqsAAMcB [info] GET /admin/shared-senders/new Mar 03 15:37:42 2026-03-03T21:37:42.202 request_id=GJlyiUIE9OJthqsAAMcB [info] Sent 500 in 11ms Mar 03 15:37:42 2026-03-03T21:37:42.203 request_id=GJlyiUIE9OJthqsAAMcB [error] ** (Phoenix.Template.UndefinedError) Could not render "_config.html" for KeilaWeb.SenderView, please define a matching clause for render/2 or define a template at "lib/keila_web/templates/sender/*". The following templates were compiled: Mar 03 15:37:42 %{form: %Phoenix.HTML.Form{source: #Ecto.Changeset<action: nil, changes: %{config: #Ecto.Changeset<action: :insert, changes: %{type: "ses"}, errors: [], data: #Keila.Mailings.Sender.Config<>, valid?: true, ...>}, errors: [], data: #Keila.Mailings.SharedSender<>, valid?: true, ...>, impl: Phoenix.HTML.FormData.Ecto.Changeset, id: "form", name: "shared_sender", data: %Keila.Mailings.SharedSender{__meta__: #Ecto.Schema.Metadata<:built, "mailings_shared_senders">, id: nil, name: nil, config: nil, inserted_at: nil, updated_at: nil}, action: nil, hidden: [], params: %{}, errors: [], options: [method: "post", id: "form", multipart: false, class: "mt-8 max-w-md flex flex-col gap-4", "@change": "setUnsavedReminder(true)", "x-data": true], index: nil}, sender_adapters: ["ses"]} Mar 03 15:37:42 (keila 0.19.0) lib/keila_web/controllers/shared_sender_admin_controller.ex:1: KeilaWeb.SharedSenderAdminController.action/2 Mar 03 15:37:42 (keila 0.19.0) lib/keila_web/templates/shared_sender_admin/edit.html.heex:60: anonymous fn/3 in KeilaWeb.SharedSenderAdminView."edit.html"/1 Mar 03 15:37:42 (phoenix 1.7.21) lib/phoenix/controller.ex:1008: anonymous fn/5 in Phoenix.Controller.template_render_to_iodata/4 Mar 03 15:37:42 (phoenix 1.7.21) lib/phoenix/controller.ex:974: Phoenix.Controller.render_and_send/4 Mar 03 15:37:42 (phoenix_live_view 1.1.24) lib/phoenix_live_view/engine.ex:130: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/1 Mar 03 15:37:42 (phoenix_live_view 1.1.24) lib/phoenix_live_view/engine.ex:142: Phoenix.HTML.Safe.Phoenix.LiveView.Rendered.to_iodata/3 Mar 03 15:37:42 (phoenix_view 2.0.4) lib/phoenix_view.ex:694: Phoenix.View.__not_found__!/3 Mar 03 15:37:42 (telemetry 1.3.0) /app/code/deps/telemetry/src/telemetry.erl:324: :telemetry.span/3 -
IsoMan on Cloudron β ISO Image Management Made Simple@joseph I tried implementing the proxyAuth addon, but I wasnβt able to properly sync it with OIDC or LDAP.
The only way I managed to make it work was with a static login defined via environment variables stored in the app data. Iβm not really comfortable with that approach, so I rolled it back for now

Iβm going to study the original project more deeply to see if I can implement a proper unique token mechanism for downloads instead. Iβm not a big fan of keeping secrets in a file.
-
Ente for cloudron, help for testing wanted.@Muhanand Definitely possible. But this app just by nature requires a more sophisticated manual setup.
-
Bisq (decentralised P2P bitcoin exchange) on CloudronBISQ API (headless) :
- added a SKILL.md for use with Nanobot / Openclaw
-
Bisq (decentralised P2P bitcoin exchange) on Cloudronv0.0.2 : BISQ GUI released
Git repo : https://git.cloudron.io/timconsidine/cloudron-bisqgui
Will make a Community App after I move to 9.1
Notes :
- makes Bisq desktop app accessible in a browser
- access from any device
- reduces cumulative start-up time compared to desktop, which might often be closed and opened only when needed (each close/open requires Tor connection and market info to be loaded)
- decentralised P2P so no exchange-based purchases with associated KYC blocks and trade identity leakage.
Security:
- protected by Cloudron proxyAuth
- but it is essentially a single-use app, so make the app visibility and access in Cloudron app dashboard single user also
- make sure you set a wallet password
- don't put your life savings in it (for me this is short-term trades only, long-term trades/position holding is done with Trezor cold wallet)
- consider purchasing on BISQ then moving purchases to a cold wallet for longer term holding
-
How to get music in?Another way to import music fast :
In-place import means Funkwhale indexes your music files without copying them β it reads the metadata (tags) and creates database entries, then streams directly from the original location.
In the Cloudron context, it would work like this:
- Mount the volume at /app/data/music in Cloudron's Storage settings
- Files are immediately visible to Funkwhale - MUSIC_DIRECTORY_PATH already points there
- Import via CLI from the web terminal:
/app/code/manage.sh import_files <library_id> "/app/data/music/" --in-place --recursive- (Get your library ID from the Funkwhale web UI, create a library first if you haven't)
- Streaming works because nginx already serves /_protected/music/ from /app/data/music/ via X-Accel-Redirect, the files are served directly, no duplication
The package even has scheduler tasks for maintaining in-place imports:
- check_inplace_files_check - dry-run to see if any referenced files are missing
- check_inplace_files_apply - actually update the database for missing files
So the key point for the user: mount at /app/data/music, then in-place import just works out of the box. Their files stay on the mounted volume, Funkwhale only stores metadata in PostgreSQL, and nginx serves the audio directly from disk.
-
How to get music in?@jdaviescoates you should mount the volume at
/app/data/musicin Cloudron's Storage settings instead of/media/Music.The package already expects music files at
/app/data/music/, nginx already serves from there, and the env vars already point there. No env.sh changes needed, just change the mount point in Cloudron's UI.I have not tested with a volume mount (I'm still loading all my collection within
/app/data/musicnatively in the container, but I will transition to volume mount soon -
Funkwhale is now availableYay !! glad to see it landing on the store !
I'll investigate how best I can transition from my custom package to yours so that I can benefit from futur upgrades
-
IsoMan on Cloudron β ISO Image Management Made SimpleMorning on my side

Here we go:
https://raw.githubusercontent.com/vitetj/Cloudron-isoman/master/CloudronVersions.jsonItβs working for me
