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


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Packaging & Development
  3. Test new cloudron packages locally before on a live server.

Test new cloudron packages locally before on a live server.

Scheduled Pinned Locked Moved App Packaging & Development
cloudronmanifestnewbie
3 Posts 3 Posters 775 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • GrienauerG Offline
      GrienauerG Offline
      Grienauer
      wrote on last edited by
      #1

      Is there an option to test a cloudron app package locally e.g. on my dev computer (an apple MacBook) before installing it on a real server?
      I did my first cloudronManifest and just want to test it locally before I install it on a real live machine, where nothing should crash 😜

      due to the fact it is my first packaging, there will be errors and I would feel more save if I can test it beforehand 🙂

      Drupal CMS and Open Source Expert, Mautic Community lead Secretary

      murgeroM BrutalBirdieB 2 Replies Last reply
      0
      • GrienauerG Grienauer

        Is there an option to test a cloudron app package locally e.g. on my dev computer (an apple MacBook) before installing it on a real server?
        I did my first cloudronManifest and just want to test it locally before I install it on a real live machine, where nothing should crash 😜

        due to the fact it is my first packaging, there will be errors and I would feel more save if I can test it beforehand 🙂

        murgeroM Offline
        murgeroM Offline
        murgero
        App Dev
        wrote on last edited by
        #2

        @grienauer Spin up a VPS something cheap will work fine and use that - just needs a domain which you can get for cheap too

        --
        https://urgero.org
        ~ Professional Nerd. Freelance Programmer. ~

        1 Reply Last reply
        1
        • GrienauerG Grienauer

          Is there an option to test a cloudron app package locally e.g. on my dev computer (an apple MacBook) before installing it on a real server?
          I did my first cloudronManifest and just want to test it locally before I install it on a real live machine, where nothing should crash 😜

          due to the fact it is my first packaging, there will be errors and I would feel more save if I can test it beforehand 🙂

          BrutalBirdieB Online
          BrutalBirdieB Online
          BrutalBirdie
          Partner
          wrote on last edited by
          #3

          @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
          

          Like my work? Consider donating a drink. Cheers!

          1 Reply Last reply
          2
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Bookmarks
            • Search