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

266 Topics 2.4k Posts

Subcategories


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

    35 265
    35 Topics
    265 Posts
    J
    We have a https://git.cloudron.io/playground/ for such repos. TBF, it doesn't matter where your repo is hosted . Your link is equally sharable but you can also use ours if you think yours is more transient.
  • Dockerfile with 2 x FROM sources

    7
    0 Votes
    7 Posts
    1k Views
    timconsidineT
    @fbartels thanks, nice example
  • Passing the Healthcheck on custom app

    18
    1 Votes
    18 Posts
    2k Views
    timconsidineT
    @nebulon thank you, will move the repo over
  • Any need to prune unused images ?

    Solved
    3
    1 Votes
    3 Posts
    645 Views
    timconsidineT
    @girish phew, thank you
  • Error while update npm-package

    Solved
    4
    0 Votes
    4 Posts
    2k Views
    R
    Thanks @mehdi and @nebulon My problem solved by deleting the package-lock.json. After that I can update this app and all works good. Thank you very much.
  • Install cloudron-cli on Code-Server

    code-server cloudron-cli
    6
    0 Votes
    6 Posts
    1k Views
    murgeroM
    @roru2k20 just git clone on a computer you have cloudron-cli installed then follow instructions in readme (skip docker build/push)
  • FORM.IO : attempting custom package

    10
    1
    3 Votes
    10 Posts
    2k Views
    timconsidineT
    @msbt thank you I've decided to 'step over' adjusting them in the config file (because I can't) and adjusted the app code to read the config file e.g. process.env.CLOUDRON_MONGODB_HOST as it is nodejs app Not there yet but making progress
  • Exposing big UDP ports range

    6
    0 Votes
    6 Posts
    1k Views
    girishG
    Right, just use the turn addon - https://docs.cloudron.io/packaging/addons/#turn
  • help me: How to clone private apps?

    2
    0 Votes
    2 Posts
    509 Views
    M
    @alphagroup if it's an actual clone, you can just install the initial app, create a backup and clone the app to a new (sub)domain for each customer. If they don't have access, you might want to check out the Cloudron CLI or API and build some Dashboard around that
  • Will Pay $$ for a custom LAMP app

    1
    1 Votes
    1 Posts
    255 Views
    No one has replied
  • Pass Cloudron ENV variables to pre-built Docker image

    7
    1 Votes
    7 Posts
    2k Views
    C
    @klawitterb Oh I see, good point, that part escaped my notice. Mediafiles are directly served by nginx and only the rest is forwarded to Gunicorn. #serve media files location /media/ { alias /app/data/mediafiles/; } # pass requests for dynamic content to gunicorn location / { proxy_set_header Host $http_host; proxy_pass http://localhost:8080; # -> this gos to Gunicorn } So with the Cloudron Nginx, static files would still be served from Gunicorn. SO I guess, it is worth the effort Thanks for that.
  • Sponsored App Creation

    Moved
    73
    7 Votes
    73 Posts
    21k Views
    robiR
    @privsec why? The two are separate things. Cloudron devs maintain the packaged updates, app maintainers the code.
  • Crowdfund people to package apps for Cloudron

    Moved
    15
    3 Votes
    15 Posts
    2k Views
    E
    @nebulon Great answer, thank you
  • Need help with my qBittorrent app

    6
    1 Votes
    6 Posts
    1k Views
    mehdiM
    @jodumont I believe the problem may come from the --daemon flag that you pass in the start.sh. Can you try removing that ?
  • This topic is deleted!

    1
    0 Votes
    1 Posts
    1 Views
    No one has replied
  • 0 Votes
    3 Posts
    770 Views
    BrutalBirdieB
    @grienauer When I did my testing for the Valheim Server App I wrote this script to make testing easier. Note tho, this only works when not using any addons, but localstorage works with the local mount. #!/bin/bash # Function to get the user to input the needed vars get_vars () { read -p "Cloudron E-Mail: " EMAIL read -p "Cloudron Username: " USERNAME read -s -p "Cloudron Password: " PASSWORD read -p "Cloudron URL: " CLOUDRON_URL read -p "DOCKER REPOSITORY URL: " DOCKER_REPOSITORY_URL read -p "DOCKER USERNAME: " DOCKER_REPOSITORY_USERNAME read -p -s "DOCKER PASSWORD: " DOCKER_REPOSITORY_PASSWORD printf "EMAIL=$EMAIL\n USERNAME=$USERNAME\n PASSWORD=$PASSWORD\n CLOUDRON_URL=$CLOUDRON_URL\n DOCKER_REPOSITORY_URL=$DOCKER_REPOSITORY_URL\n DOCKER_REPOSITORY_USERNAME=$DOCKER_REPOSITORY_USERNAME\n DOCKER_REPOSITORY_PASSWORD=$DOCKER_REPOSITORY_PASSWORD\n " > .env } # check if .env file exists and read it or check if vars exsist if [ -f ".env" ]; then export $(egrep -v '^#' .env | xargs) &> /dev/null else echo ".env File missing - asking for required vars" get_vars fi if [ -z "$EMAIL" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] || [ -z "$CLOUDRON_URL" ] || [ -z "$DOCKER_REPOSITORY_URL" ] || [ -z "$DOCKER_REPOSITORY_USERNAME" ] || [ -z "$DOCKER_REPOSITORY_PASSWORD" ]; then echo "some vars are empty - asking for required vars" get_vars fi echo "=> Login Docker" docker login --username $DOCKER_REPOSITORY_USERNAME --password $DOCKER_REPOSITORY_PASSWORD $DOCKER_REPOSITORY_URL echo "=> Login Cloudron" cloudron login --username $USERNAME --password $PASSWORD my.$CLOUDRON_URL set -x # Get the ID and VERSION from the CloudronManifest.json ID=$(jq -r ".id" CloudronManifest.json) VERSION=$(jq -r ".version" CloudronManifest.json) echo "=> Create Test Data dir" mkdir -p ./cloudron_test/data ./cloudron_test/tmp ./cloudron_test/run echo "=> Cleanup Test Data" rm -rf ./cloudron_test/data/* ./cloudron_test/tmp/* ./cloudron_test/run/* echo "=> Build test image" cloudron build --set-repository $DOCKER_REPOSITORY_URL/$ID # docker build -t $DOCKER_REPOSITORY_URL/$ID:$VERSION . if [[ RUN_IMG = "" ]]; then read -p "Do you want to run the image created image?: (y/N)" RUN_IMG fi if [[ "$RUN_IMG" = "y" || "$RUN_IMG" = "Y" ]]; then echo "=> Run `test` tag of build image" docker run -ti --read-only \ --volume $(pwd)/cloudron_test/data:/app/data:rw \ --volume $(pwd)/cloudron_test/tmp:/tmp:rw \ --volume $(pwd)/cloudron_test/run:/run:rw \ $DOCKER_REPOSITORY_URL/$ID:$VERSION \ bash fi echo "=> Running tests" cd test echo "=> Running ncu - updating deps" ncu -u npm -i echo "=> Installing package.json" npm install if [[ -f ./node_modules/.bin/mocha ]]; then ./node_modules/.bin/mocha ./test.js -b fi if [[ -f ../node_modules/.bin/mocha ]]; then ../node_modules/.bin/mocha ./test.js -b fi # remove installed test instance echo "Cancel now if you wish to keep the app installed" sleep 10 cloudron uninstall --app test.$CLOUDRON_URL
  • Baserow Cloudron app - Airtable alternative

    Locked Solved
    57
    15 Votes
    57 Posts
    9k Views
    nebulonN
    I will lock this topic since the app is published by now and the forum section is https://forum.cloudron.io/category/136/baserow
  • Addon variables erased after restart?

    Solved
    3
    0 Votes
    3 Posts
    562 Views
    ?
    @girish hah, I didn’t realize there was an update! Thanks!!! I’m glad I wasn’t crazy there and it was a platform issue. I redid my package like 4 times thinking I was overriding the environment vars somehow
  • HowTo install Cloudron CLI on Windows

    windows cloudron-cli howto install
    11
    1
    2 Votes
    11 Posts
    2k Views
    murgeroM
    @jodumont If you run the node file for cloudron directly (add it to your PATH) you don't need the set-executionpolicy bit. Node is separate from powershell and as such it can run without that.
  • PMS and mysql

    Solved
    3
    0 Votes
    3 Posts
    688 Views
    ultravioletU
    @nebulon Thanks thought that might be the answer.
  • Create an SQL dump from a cloudron app postgres db

    Solved
    3
    0 Votes
    3 Posts
    612 Views
    ruihildtR
    Thanks, that's perfect.