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
  • Brite
  • 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

Offical apps | Community apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Feature Requests
  3. Private CloudronVersions.json

Private CloudronVersions.json

Scheduled Pinned Locked Moved Feature Requests
17 Posts 7 Posters 1.4k Views 7 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.
  • jamesJ james

    Hello @lanhild

    @Lanhild said:

    its features shouldn't be restricted to publicly accessible URLs

    Although this sounds like a good idea, there is an issue.
    A URL is needed to make the app update process work.
    With just pasted JSON or an uploaded JSON file the app update flow would never work since there is no target to pull the new JSON from.


    If this is also about security, there are some options.
    Haven't tested this, but a password protected URL should work. i.e URL it with ?password=xx.
    Or another security via obscurity way would be to upload the CloudronVersions.json to a LAMP app in a folder with a 'secret' folder.
    For example https://lamp.cloudron.dev/a4ef19b785acd7c11ccd0b5c1551a8bd/CloudronVersions.json, the a4ef19b785acd7c11ccd0b5c1551a8bd is the 'password'.

    A secure approach would be to use a private docker registry for your community app and to give users credentials for the docker registry which they can configure in Cloudron.
    If the community app git repository is not public, there is also no way to just build the docker image yourself.
    This way, other people can have the CloudronVersions.json file but will not be able to pull the image without granted access to the private docker registry.


    @robi said:

    It would be nice if they could be hosted by the local registry app.

    The docker images? That should already work and is close to my above suggestion with a private registry. You'd just need to configure the docker registry in the Cloudron dashboard under /#/docker.
    Or do you mean hosting the CloudronManifest.json file in the registry app as well?


    I believe to understand that this feature request is not about security, hiding or protecting the CloudronVersions.json, but is about comfort and usability.
    If you are fine with losing the automatic app update flow, you can always just run cloudron install --location from the repo, which is not as comfortable as just pasting the JSON but resolves to the same outcome.

    Due to the mentioned disadvantages of just pasting JSON or upload a JSON file, it is my opinion that we should not add this.

    LanhildL Offline
    LanhildL Offline
    Lanhild
    App Dev
    wrote on last edited by
    #7

    @james said:

    @robi said:

    It would be nice if they could be hosted by the local registry app.

    The docker images? That should already work and is close to my above suggestion with a private registry. You'd just need to configure the docker registry in the Cloudron dashboard under /#/docker.

    I believe what @robi meant is to be able to store the CloudronVersions.json in a registry, much like what authentik does with blueprints.

    1 Reply Last reply
    2
    • robiR Offline
      robiR Offline
      robi
      wrote on last edited by
      #8

      Following up on this.. @james how do we make this happen with the registry?

      Conscious tech

      1 Reply Last reply
      0
      • girishG Offline
        girishG Offline
        girish
        Staff
        wrote on last edited by
        #9

        @robi we are working on this. There is a new container registry app which we have made from scratch. Still finishing things up before we can make an announcement .

        robiR 1 Reply Last reply
        4
        • girishG girish

          @robi we are working on this. There is a new container registry app which we have made from scratch. Still finishing things up before we can make an announcement .

          robiR Offline
          robiR Offline
          robi
          wrote on last edited by
          #10

          @girish thanks, can you include basic stats with it?

          Conscious tech

          1 Reply Last reply
          0
          • robiR Offline
            robiR Offline
            robi
            wrote on last edited by
            #11

            Ohh, also one thing missing is distinguishing of different builds by build number in the UI.

            If 2 of 3 are stuck, which ones do I stop?

            Conscious tech

            1 Reply Last reply
            0
            • H Offline
              H Offline
              huehner
              wrote on last edited by
              #12

              Hello,
              reading this thread i was wondering why can't we just use/offer the classic http with "Basic Authentication" with the username + password embedded in the URL ?

              That would (in theory) cloudron avoiding to need to create some separate flow or extra fields
              But just use a single/simple url field to (optionally) carry the auth information.

              https://user:password@domain/path

              That would allow people to use any server / service offering http-basic authentication (essentially any webserver)

              Trying that our in cloudron 'Add community app' that immediately fails with "versionsUrl is not a valid URL".

              Technically that fails in box/src/community.js but it looks like problem is rather in the frontend here in the onSubmit of the CommunityAppDialog

              const [url, version] = versionsUrl.value.split("@");

              which seems to use the @ symbol in the URL for some other cloudron specific purpose and thus rejecting otherwise valid urls ?

              Note that even allowing those url that would probably need some small change on cloudron backend as fetch API apparently doesn't allow url using url with embedded username/password. But that could be easily avoided converting those if present to the Authorization http header and stripping them from the url object itself.

              1 Reply Last reply
              0
              • jamesJ Offline
                jamesJ Offline
                james
                Staff
                wrote on last edited by
                #13

                Hello @huehner
                That should already be possible.
                Maybe you can try that?

                H 1 Reply Last reply
                0
                • jamesJ james

                  Hello @huehner
                  That should already be possible.
                  Maybe you can try that?

                  H Offline
                  H Offline
                  huehner
                  wrote on last edited by
                  #14

                  Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                  Trying to explain a bit better what i mean

                  Problem seems to be that this line in your frontend code
                  const [url, version] = versionsUrl.value.split("@");

                  For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                  The http-request send by the Admin-UI is
                  /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                  which can be seen in Browser Developer tools.

                  As the frontend code seems use the @ character for its own purpose.
                  I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                  With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                  63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                  My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                  3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                  and then is no longer a valid URL.

                  That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                  J jamesJ girishG 3 Replies Last reply
                  1
                  • H huehner

                    Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                    Trying to explain a bit better what i mean

                    Problem seems to be that this line in your frontend code
                    const [url, version] = versionsUrl.value.split("@");

                    For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                    The http-request send by the Admin-UI is
                    /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                    which can be seen in Browser Developer tools.

                    As the frontend code seems use the @ character for its own purpose.
                    I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                    With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                    63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                    My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                    3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                    and then is no longer a valid URL.

                    That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                    J Offline
                    J Offline
                    joseph
                    Staff
                    wrote on last edited by
                    #15

                    @huehner said:

                    With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here

                    it is git.cloudron.io

                    1 Reply Last reply
                    0
                    • H huehner

                      Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                      Trying to explain a bit better what i mean

                      Problem seems to be that this line in your frontend code
                      const [url, version] = versionsUrl.value.split("@");

                      For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                      The http-request send by the Admin-UI is
                      /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                      which can be seen in Browser Developer tools.

                      As the frontend code seems use the @ character for its own purpose.
                      I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                      With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                      63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                      My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                      3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                      and then is no longer a valid URL.

                      That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                      jamesJ Offline
                      jamesJ Offline
                      james
                      Staff
                      wrote on last edited by
                      #16

                      Hello @huehner

                      One could also integrate an access token into the URL like I have mentioned here:
                      https://forum.cloudron.io/post/123049

                      When we prototyped the community app store I even tested this and it worked.

                      1 Reply Last reply
                      3
                      • H huehner

                        Hello @james. I tried that before and it fails with the error message i mentioned "versionUrl is not a valid URL".

                        Trying to explain a bit better what i mean

                        Problem seems to be that this line in your frontend code
                        const [url, version] = versionsUrl.value.split("@");

                        For URL entered in the Cloudron Admin UI of value https://user:password@domain/path

                        The http-request send by the Admin-UI is
                        /api/v1/community/app?access_token=<redacted>&url=https://user:password&version=domain/path
                        which can be seen in Browser Developer tools.

                        As the frontend code seems use the @ character for its own purpose.
                        I'm not sure what it is trying to do as in the Publishing documentation there's no information about an @ symbol or some version value in the URL.

                        With gitlab.cloudron.io not accessible i can't share code link what i talk about for 'split' by @ is this code here
                        63b1ae78-0d9a-40a1-923a-bb74d919b2a8-image.jpeg

                        My guess is that this then too short url from that split reaches the backend here: box/src/community.js
                        3e9e9b46-f845-4656-bd62-0093b38aeec0-image.jpeg
                        and then is no longer a valid URL.

                        That is just a theory i might be totally wrong (and i don't have a test system i can add some debugging right now)

                        girishG Offline
                        girishG Offline
                        girish
                        Staff
                        wrote on last edited by
                        #17

                        @huehner a workaround for now is to use ?username=xx&password=yy . I have fixed the issue that you reported in any case and it will be part of the next release. With the fix you can pass username:password in the URL .

                        1 Reply Last reply
                        2

                        Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                        Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                        With your input, this post could be even better 💗

                        Register Login
                        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