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

App package development & help

254 Topics 2.3k Posts

Subcategories


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

    33 Topics
    259 Posts
    D

    @klawitterb sure i will be contacting you

  • App contributions hall of fame

    Pinned Moved
    42
    10 Votes
    42 Posts
    5k 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.)

  • Translators hall of fame

    Pinned Moved
    25
    15 Votes
    25 Posts
    2k Views
    nebulonN

    Public registration is off on that, but we do add language maintainers manually if needed. See https://docs.cloudron.io/i18n/#maintaining-translations

    Since we have native German speakers on the team, we are maintaining that internally, however you can suggest changes via the weblate instance for any strings and I will review those then.

  • Read first before starting to package an app

    Pinned
    10
    8 Votes
    10 Posts
    3k Views
    nebulonN

    I guess the current link would be https://docs.cloudron.io/packaging/tutorial/

  • Building custom packages

    Pinned
    6
    4 Votes
    6 Posts
    2k Views
    girishG

    @Grienauer

    We haven't yet had a case where different data directories of apps cannot be symlinked to a subdirectory /app/data . It keeps backup/restore logic simple if we limit to one folder. Do you have an app in mind which cannot do this?

    Usually, we manage to change apps to use supervisor and thus package multiple containers into one. I guess it's possible to implement this, we haven't yet.

  • Writing automated tests for packages

    Pinned
    12
    8 Votes
    12 Posts
    2k Views
    BrutalBirdieB

    @nebulon Yea I just wanted to reply never mind, I copied the tests from the alltube app which do not even use selenium so yeeaa my mistake.

    Now I took the nextcloud tests and will learn from them šŸ™‚

  • Cloudron Non-App Store Packaged Apps

    Pinned
    27
    11 Votes
    27 Posts
    4k Views
    T

    @matbrgz added to the post at the top!

  • Using AI to build a package

    5
    2 Votes
    5 Posts
    91 Views
    robiR

    Here is an example session of how to better "talk to" the AI so it understands what you're doing.
    https://skylarbpayne.com/posts/cursed-cursor

    Having it analyze a similar app and start with the manifest, then have a template process to follow will get it closer to what you want. It's all about clearer communication on your part.

  • 1 Votes
    7 Posts
    55 Views
    SansGuidonS

    I'm not 100% sure about that, I mean the total of ubuntu base images on my instance is around 80GB, each image from the app store takes between 2 and 4GB. Next to those, my alpine image is less than 100MB. Yet I find that 100MB is still way too big, I can likely reduce that.

    And based on docker images listing and du, each image seems to really take an average 2.9GB.

    ~# df -h Filesystem Size Used Avail Use% Mounted on tmpfs 1.6G 3.3M 1.6G 1% /run /dev/sda3 588G 77G 482G 14% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda2 2.0G 170M 1.7G 10% /boot u426552@u426552.your-storagebox.de:/home/storage/music 1.0T 63G 962G 7% /mnt/volumes/8c4c2f7f0e8a44e090fc857a64b1f316 u426552@u426552.your-storagebox.de:/home 1.0T 63G 962G 7% /mnt/cloudronbackup overlay 588G 77G 482G 14% /var/lib/docker/overlay2/941561b6b216ede950e95d525f676defe98425be86c02edd6737e95e848d3487/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/a47d7cd82e5ba37dc642d53159323dd0be0e080d0c59f44656ff39e86fd8077f/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/84c4252012d0d027e49529377605b19cdde5385594120b9215ec8f4b601997f1/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/e4fd2d9876ba48aa5b1a3890192af605268b1b06914f074cd51538e5cd8e732e/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/4186641821aa776be6f3453c44e5f6999dfd62ecea985da3b799034ac42c4805/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/e5f5b26adf7f4c491b7e00976b47eafd6e11211d0b9cd87232636495ac0fa69c/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/2128a944d0c3beea65ecf91c51172fd22877df72bda73a0b69019d575472e9b9/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/e8f3a7b55229fe43505b9c71a78887dd80a514e2dfde620d561b7e63295451c3/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/ca7099594dd0c471f3ee269f64c04c57784b6ac97d42a1ccea7e5c23f45adfcf/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/32ba3a826dc24b5096484b1a18f4e0fd4b490f8d0f8ee8dbcbfd0ef024683340/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/06f378a7b62b5c9385871a9cdf43d8cdfe100dc563f398c99a5a4aa0ff923de1/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/65d95b78cba9b8a6dbfa86dc8f87646ede5af06e197ff6b9e1208dfaf7bbc9c5/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/2be16e71c52c9d9028e5ae2ddafa21afe897006148999bc20e1c041cc2afd16c/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/3af0a5bce6cc8b11c29471214209ea182602078d062d05d098a8872eabc40429/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/7a0800829a76a92d356ff710b3882c3f12612d376d3797d7676f044e9ad62214/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/b15f684ada5eb3ef784fcedf484738c56a051c47597ad20da548f46a937fe571/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/3da17d53de6c6daa5898d644eb74c1e2099a1a192ccfb0ed827911a23980bde1/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/a37ad3291da4944e667e16342124417d1ac66370c87ad7e8278979ab42c71c8e/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/792eecae61fcc06c5bf9ed01839c2a6c5b41e097efb3aa1cd529b7ad441a9392/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/68bf9a6faa884822bf107ae36daa4fdec7a090281370cbfbc49bffe4b7a5bd0d/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/c8fb2e965fa85ce289436eb96e56584a06765cade5f2cd7d43f77b930fefb928/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/992c00fe84e55e8aa06eafa32ccac9251ce194af33082a711ea6ef7812818285/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/704413a277d07d199ae7801cd9c812ec9db6f61870582468ad0c34c855924af5/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/13e0b0ac613a3bb2769e75def0d88c476399849faf55b0b54a44c11ffd693040/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/2afe0cb63975cfb247549d41319f40d1b2eab5ece8645fccbb999715da1472d2/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/e159b65ba533df6c3df4d9b6b5c4ebbbb53c337e9cf882e6b104072f535826fa/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/19aa6f3f67da9f897ca14b16f3dd58e776481c8f88a7df6147f6b9d0c3dc5229/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/c1867646b12beaad46d3332f566dd9ef3acccc39f459dd93259679965ab0b2ce/merged overlay 588G 77G 482G 14% /var/lib/docker/overlay2/1863229ae55deed6b180bcb7086b166041bcf84caf862dc7162eb1f4cb0cdadb/merged tmpfs 1.6G 0 1.6G 0% /run/user/0 root@vmi1545666:~# docker images REPOSITORY TAG IMAGE ID CREATED SIZE cloudron/org.navidrome.cloudronapp 202412221800040000 955f3ed8bda9 29 hours ago 2.26GB <REDACTED_MY_APP_REF> 1.0.9 342c00f06dd1 41 hours ago 95.5MB cloudron/app.miniflux.cloudronapp 202412202203500000 3ab5b7255d6f 3 days ago 2.23GB cloudron/com.invoiceninja.cloudronapp2 202412201425110000 114bf2ee41e6 3 days ago 4.32GB cloudron/com.github.bitwardenrs 202412201132130000 b07e9c5ab7d5 3 days ago 3.55GB cloudron/calibreweb.janeczku.github 202412200520170000 c4c0b840c65a 3 days ago 3.49GB cloudron/lamp.cloudronapp.php74 202412180703290000 35ef2ed19d95 5 days ago 2.64GB cloudron/io.changedetection.cloudronapp 202412170520280000 5d612c3fbb5c 6 days ago 3.99GB cloudron/io.gitea.cloudronapp 202412131720400000 fec9c8c07eca 10 days ago 2.8GB cloudron/com.github.shaarli 202412081824370000 f174ed03ee2d 2 weeks ago 2.23GB cloudron/net.syncthing.cloudronapp2 202412031651540000 c7a0a056a716 2 weeks ago 2.24GB cloudron/org.wordpress.cloudronapp 202411220220380000 f04002c311c5 4 weeks ago 2.37GB cloudron/info.privatebin.cloudronapp 202411161255100000 c3b260ef0b6d 5 weeks ago 2.21GB cloudron/org.getgrav.cloudronapp 202410281158520000 d52bf6ab8b2b 8 weeks ago 2.29GB cloudron/tech.ittools.cloudron 20241022-105954-145356468 387ecffe94e3 2 months ago 2.22GB registry.docker.com/cloudron/redis 3.5.4 edcfcc0608c6 2 months ago 2.22GB registry.docker.com/cloudron/sftp 3.8.9 c595fcbbe0a3 4 months ago 2.23GB registry.docker.com/cloudron/postgresql 5.2.3 c0270fdfd54f 5 months ago 2.75GB registry.docker.com/cloudron/mysql 3.4.3 f1c143716f42 5 months ago 2.53GB registry.docker.com/cloudron/mail 3.13.1 ac386518998a 6 months ago 2.89GB cloudron/sh.ntfy.cloudronapp 20240514-072708-5696fd1ad 2a1124f439c9 7 months ago 2.26GB registry.docker.com/cloudron/mongodb 6.0.0 4b95d24318a2 10 months ago 2.69GB cloudron/com.docker.registry 20240208-085138-349b78ba6 68797f159e9f 10 months ago 2.24GB cloudron/com.rssbridgeapp.cloudronapp 20240203-090049-661e61c5a 6990eceaa76a 10 months ago 2.21GB cloudron/org.yourls.cloudronapp 20231024-061626-421eac647 e89d47b182e4 14 months ago 2.22GB registry.docker.com/cloudron/graphite 3.4.3 dbd026164ada 14 months ago 2.28GB registry.docker.com/cloudron/turn 1.7.2 152b1fb9690e 15 months ago 2.22GB registry.docker.com/cloudron/base 4.2.0 6ec7c1ab3983 15 months ago 2.21GB

    I'm used to replacing GBs worth of binaries/code and services and thousands-dollars worth SaaS with simple shell scripts and python scripts, it's all fun for me to see how little things can avoid the bloat and costs we are used to with modern software and architecture. We shouldn't need 4GB worth of code to generate a pdf (invoiceninja), I mean it's literally done with 4K worth of python code.
    A base image being 2.2GB in size is a red flag for me (at work but not only).
    Anyway, I won't start a crusade, this base image solves problems, but I'm not gonna base my minimalist stuff on something 20 times as big as my big Docker image šŸ˜„

  • Custom APP - EvolutionAPI Unofficial WhatsAPP API

    4
    1 Votes
    4 Posts
    88 Views
    A

    Hi @dcpagotto , any news about Evolutio API integration into Cloudron?

  • Developer perspective

    Moved
    6
    10 Votes
    6 Posts
    709 Views
    A

    Paying cloudron customers view...I went for cloudron because of its easy automated mail server, and the nextcloud app. The other fluff was just nice to haves initially. Even now theres no app thats essential to me. I think cloudrons popularity is due to them getting it right, and app devs getting their apps on cloudron acts mostly as a promotion of the app they make. ie I'd never heard of clearflask, until your post here.

  • 0 Votes
    1 Posts
    36 Views
    No one has replied
  • cloudron gitlab 404s on create new project

    Solved
    4
    0 Votes
    4 Posts
    92 Views
    eyecreateE

    Yep, that worked!

  • Blossom Server package

    6
    6 Votes
    6 Posts
    206 Views
    jdaviescoatesJ

    @robi said in Blossom Server package:

    @girish said in Blossom Server package:

    Will get back! Meanwhile, if others have any comments, would be good to hear.

    You may get more feedback once the unstable package is available in the App Store. šŸ˜‰

    Yeah, I've so far never installed a custom app, only app store apps.

  • Publish an Official App Packaging Roadmap

    9
    3 Votes
    9 Posts
    218 Views
    necrevistonnezrN

    @humptydumpty said in Publish an Official App Packaging Roadmap:

    As for app packaging, if Iā€™m not mistaken, Cloudron staff take over and handle any future updates if itā€™s added to the App Store. I donā€™t expect every niche app will get adopted but the highly voted/starred apps that fill a gap in CRā€™s ecosystem will have a higher chance.

    CR could enhance/simply how custom repos/apps are added. Some of the regulars on here have shared their own packaged apps, but the process isnā€™t clear to me yet. Thatā€™s something worth looking into though. Sigh, too much to do and not enough time!

    That's the main difference to platforms like Yunohost, where you have a ton of user packaged apps.... - that don't work, break, become unmaintained etc.

  • 1 Votes
    11 Posts
    222 Views
    V

    Wow thanks @nebulon . I think it would have been necessary one day or another with the current AI hype.

    By the way I'd be glad to share my "cloudron packaging prompt engineering" techniques some when. I'll make a second try with another app, I am thinking appsmith šŸ™‚

  • J-Lawyer on Cloudron

    3
    0 Votes
    3 Posts
    97 Views
    C

    ok. thanks for the fast answer.

  • PackagingĀ an app (tutorial)

    2
    2 Votes
    2 Posts
    76 Views
    girishG

    @mdc773 there is a video at https://forum.cloudron.io/topic/2843/read-first-before-starting-to-package-an-app which @fbartels made

  • Cloudron Typescript App Example Using Old Docker Base Image

    Moved Solved
    2
    0 Votes
    2 Posts
    63 Views
    nebulonN

    Thanks for the reminder, I have updated that file now with the new base image.

  • XMPP Server - Prosody

    34
    4 Votes
    34 Posts
    3k Views
    D

    @girish - Given that the only blocker (that I know of so far) is the TLD certificate availability, would it be a decent workaround to package this entire thing as an application, and then run a one-time command to symlink the TLD certificate into the application directory? This would allow the sys admin to choose which application deserves access to the TLD certificate, ensure the app always has access to the latest certificate, and work around the current limitation of apps not being able to request the TLD cert.

  • Need help resolving Error with Monero Node in Cloudron.

    Moved
    4
    2 Votes
    4 Posts
    245 Views
    J

    I think that is just the docker image and not the docker file - https://hub.docker.com/r/jacobmatrktippetts/monero-node