Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content

App Packaging & Development

300 Topics 2.8k Posts

App package development & help

Subcategories


  • Looking to collaborate? Post here if you need help or willing to offer help.

    36 284
    36 Topics
    284 Posts
    osoboO
    Hi @andreasdueren, Thanks for reaching out. I’m currently using the paid cloud version of Kitsu. The Docker version works for testing purposes. I installed it locally following this tutorial: . I understand that many professional studios self-host and use this app for production, but it requires technical skills for setup and maintenance, as many of the Docker files seem to be deprecated. As well as the GitHub page, there is a dedicated Kitsu community Discord server where users can discuss installation and usage issues: https://discord.gg/kJ7SmmUPM Best whises
  • Cloudron CLI - Updates

    Pinned
    24
    0 Votes
    24 Posts
    3k Views
    girishG
    [7.1.0] Add cloudron sync push and cloudron sync pull subcommands Merge all binaries into single cloudron command
  • App contributions hall of fame

    Pinned Moved
    42
    10 Votes
    42 Posts
    18k Views
    LanhildL
    @girish Missed that message. Yeah, Open WebUI is the one that made it to published. I've made several other things but they're mostly to learn packaging/tests (such as a standalone DB app, etc.)
  • Read first before starting to package an app

    Pinned
    10
    8 Votes
    10 Posts
    7k Views
    nebulonN
    I guess the current link would be https://docs.cloudron.io/packaging/tutorial/
  • 1 Votes
    11 Posts
    283 Views
    F
    To be honest, the only tricky part (in general for cloudron apps) are the env vars. When updating an app, always make sure to FIRST set the new env vars (it only works when the app is running... and if the app depends on a var to start, well.... ) and THEN update the container. I'm using Buddy selfhosted as my CI/CD and build a template which i can just duplicate for every cloudron app. Push to git -> build image -> push image -> set env vars on cloudron -> update cloudron
  • Dockerfile flexibility

    5
    0 Votes
    5 Posts
    30 Views
    rosanoR
    @nebulon I see. Ok this solves it for me. Yes build build left me spinning last week but I understood eventually
  • XMPP Server - Prosody

    66
    4 Votes
    66 Posts
    20k Views
    L
    We ran an automated assessment of how difficult it would be to package and then maintain Prosody as an application on Cloudron. The assessment is here (TL/DR - it would be a lot more feasible than Ejabberd): https://wanderingmonster.dev/blog/monster-manual-prosody/ https://enjoys.rocks/?8957edc0c6a1b7fa#DdSoHsPAZQwxnUHuNVfiQcdFd6soCFf8XLRogrXTNpgy
  • Community App - required environment variables?

    8
    0 Votes
    8 Posts
    100 Views
    timconsidineT
    @ekevu123 if you have a startup.sh or other launch script, it is common to have the script touch /app/data/initialized during first setup, all setup inside a test whether .initialized is present or not. If so, skip setup. If not, then do setup. Setup including key generation. I haven't reviewed how you launch the app, so not sure how viable it is for you, but it's very common for other apps. if [ ! -f /app/data/.initialized ]; then cp -a -n /app/code/defaults/config/. /app/data/config/ || true touch /app/data/.initialized fi
  • Community Apps workflow observations

    7
    1
    3 Votes
    7 Posts
    103 Views
    timconsidineT
    Thanks @girish TBH, most people don't read docs despite all this Yep, true Soon there won't be any docs. AI coding agent utility will produce some illegible binary asset "cloudron.aifood", which another agent will use. We humans won't need to know or read anything. Thanks @nebulon maybe better some https://foo.bar/changelog link nice idea, let me think about that. testing my build script which makes it a mandatory input (to overcome my lack of discipline )
  • Community App changelog as .md?

    3
    1 Votes
    3 Posts
    48 Views
    nebulonN
    Yes the format is described in https://docs.cloudron.io/packaging/manifest#changelog Using the .md extension is not really relevant, however it might render the file better in git hosting apps.
  • Update on community packages

    32
    3
    14 Votes
    32 Posts
    915 Views
    timconsidineT
    Stubborn dog-with-a-bone that I am, I did more research, and hopefully this can put to bed my diversion of the thread (sorry), and maybe help others with a similar use case / workflow objective to mine : Forgejo (official Cloudron AppStore) provides standard git source code functionality AND it has a built-in container registry functionality so no need to consider changes to the official docker registry app for public pulls forgejo supports private and public repos (which git.cloudron.io does not) forgejo supports public image pulls (like hub.docker.com) but also multiple private containers (hub.docker.com only allows 1) I can uninstall docker registry app and gitea/gitlab apps, multiple used for segregating cloudron community work from closed app dev, using Forgejo organization instead. So the answer for my bandwidth-limited brain of 1 app for (almost) everything seems to be Forgejo (available today, no dev work). However, @girish made valuable comment that hosting container images is a disk/network usage risk. Even for a small dev footprint like mine, this could be critical (let alone Cloudron scale). I need to think & test out, but maybe Forgejo actions can automate container push to hub.docker.com, and do automated cleanup in the instance. So from dev point of view it's a single answer (Forgejo) with CI/CD offloading disk/network risks to hub.docker.com (or whatever).
  • Custom app - how to use cloudron authentication?

    3
    0 Votes
    3 Posts
    30 Views
    timconsidineT
    You already got it, but often proxyAuth is the simplest.
  • 1 Votes
    1 Posts
    27 Views
    No one has replied
  • example apps in packaging tutorial not building / installing

    4
    3 Votes
    4 Posts
    84 Views
    jamesJ
    Hello @aaaaargzombies @aaaaargZombies said: TLDR I'm on version 9.0.17 and should try upgrading. Yes, you should update to Cloudron 9.1.3 for cloudron install to work without the need to build and push the image before installing.
  • 7 Votes
    14 Posts
    620 Views
    jamesJ
    Hello @themeerkat I have added your package to the list: https://forum.cloudron.io/topic/15172/community-apps
  • RomM App For Cloudron

    Moved
    23
    2
    4 Votes
    23 Posts
    4k Views
    murgeroM
    @eyecreate amazing! I'll be installing this I think
  • Ente for cloudron, help for testing wanted.

    26
    9 Votes
    26 Posts
    3k Views
    andreasduerenA
    @Muhanand Definitely possible. But this app just by nature requires a more sophisticated manual setup.
  • Orb Stack

    6
    1
    5 Votes
    6 Posts
    2k Views
    timconsidineT
    @marcusquinn your prompt reminded me about it. I will take off the very dusty shelf and look at it again.
  • Cloudron API - exposes domain email config ?

    6
    1
    1 Votes
    6 Posts
    375 Views
    timconsidineT
    @James absolutely ! Very cool ! That was actually a break-through moment to get over blind poking and assessing output. So thank you again.
  • Matrix Signal Bridge

    4
    5 Votes
    4 Posts
    274 Views
    robiR
    @timconsidine challenge accepted? You grow either way.
  • Matrix WhatsApp Bridge

    30
    6 Votes
    30 Posts
    6k Views
    andreasduerenA
    @Eliahou I packaged the signal bridge and now wanted to see how I can make encryption work. Root Cause: Synapse 1.141+ explicitly blocks appservice users from using /sync. The mautrix bridges were configured to poll /sync for encryption data, which caused HTTP 500 errors. Solution: Enabled appservice mode for end-to-bridge encryption, which uses MSC3202/MSC2409 to receive encryption data via appservice transactions instead of /sync. In specific this means: Changes Made Synapse: Added experimental features to homeserver.yaml: experimental_features: msc3202_transaction_extensions: true msc2409_to_device_messages_enabled: true Added org.matrix.msc3202: true to both bridge registration files Signal Bridge: Updated start.sh to set encryption.appservice = true Built and deployed andreasdueren/mautrix-signal:1.0.2 WhatsApp Bridge: Updated start.sh to set encryption.appservice = true Built and deployed andreasdueren/mautrix-whatsapp:2.0.2