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. Feature Requests
  3. Feature request: Add custom app to App Store for local Cloudron

Feature request: Add custom app to App Store for local Cloudron

Scheduled Pinned Locked Moved Feature Requests
custom-appsappstoreclonefeature-request
29 Posts 10 Posters 4.7k Views 9 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.
  • d19dotcaD Offline
    d19dotcaD Offline
    d19dotca
    wrote on last edited by
    #11

    I know a long time has passed now, but I'm re-wondering about this again... any update on if we could get our own private sort of app-store such as we can with Portainer (we can use Portainer to point to our own Github of Docker scripts for example) and others? Would really love to see this in the future to avoid needing to make a bunch of template apps.

    In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

    One thing that made me wonder about this was perhaps trying to make my own small tweaks off existing app packages, but wanting to have them deployed no different than the Cloudron App Store as it is today. Would this be something we could consider in the future?

    --
    Dustin Dauncey
    www.d19.ca

    girishG 2 Replies Last reply
    2
    • d19dotcaD d19dotca

      I know a long time has passed now, but I'm re-wondering about this again... any update on if we could get our own private sort of app-store such as we can with Portainer (we can use Portainer to point to our own Github of Docker scripts for example) and others? Would really love to see this in the future to avoid needing to make a bunch of template apps.

      In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

      One thing that made me wonder about this was perhaps trying to make my own small tweaks off existing app packages, but wanting to have them deployed no different than the Cloudron App Store as it is today. Would this be something we could consider in the future?

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

      @d19dotca said in Feature request: Add custom app to App Store for local Cloudron:

      One thing that made me wonder about this was perhaps trying to make my own small tweaks off existing app packages, but wanting to have them deployed no different than the Cloudron App Store as it is today. Would this be something we could consider in the future?

      For this one, in 7.2, there is a way to give backups a name and to preserve them forever. So, you can clone with that backup for future apps. I understand the UI is maybe not that ideal like an appstore view but maybe something you can use already.

      1 Reply Last reply
      0
      • d19dotcaD d19dotca

        I know a long time has passed now, but I'm re-wondering about this again... any update on if we could get our own private sort of app-store such as we can with Portainer (we can use Portainer to point to our own Github of Docker scripts for example) and others? Would really love to see this in the future to avoid needing to make a bunch of template apps.

        In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

        One thing that made me wonder about this was perhaps trying to make my own small tweaks off existing app packages, but wanting to have them deployed no different than the Cloudron App Store as it is today. Would this be something we could consider in the future?

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

        @d19dotca said in Feature request: Add custom app to App Store for local Cloudron:

        In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

        A totally custom app store is a lot of work but maybe having a way to import a specific app is doable. This has some security implications, running random docker images on your server is always a security risk. Cloudron's sandboxing is not perfect and it's mostly reliably only because we have a bit of control over the packages.

        d19dotcaD robiR 2 Replies Last reply
        0
        • girishG girish

          @d19dotca said in Feature request: Add custom app to App Store for local Cloudron:

          In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

          A totally custom app store is a lot of work but maybe having a way to import a specific app is doable. This has some security implications, running random docker images on your server is always a security risk. Cloudron's sandboxing is not perfect and it's mostly reliably only because we have a bit of control over the packages.

          d19dotcaD Offline
          d19dotcaD Offline
          d19dotca
          wrote on last edited by
          #14

          Ah yes, I know the various workarounds such as cloning from backups, but ideally I'd love to see the ability to actually install an app we write (not in the App Store) via the same method we install all other Cloudron-packaged apps. πŸ™‚

          @girish said in Feature request: Add custom app to App Store for local Cloudron:

          A totally custom app store is a lot of work but maybe having a way to import a specific app is doable.

          I don't think a "totally custom app store" is really needed here. I'd think it could be something similar to what already exists out there that Cloudron can model off of such as Portainer's additional scripts feature where you can point to your own GitHub repo for example for custom apps, and it's simply in addition to the existing ones baked into Portainer. I believe CapRover does the same type of thing too. I don't think we need to totally re-invent the wheel, just need to define a structure that anyone can throw into a Git repo and have their own apps merged into the list with the official ones too.

          Of course I get that it's way easier said than done so I appreciate that it'll still be a lot of work, but I don't think it needs to be overly complicated and can re-use parts of what already exists out there which should help keep the work down a bit.

          --
          Dustin Dauncey
          www.d19.ca

          1 Reply Last reply
          1
          • girishG girish

            @d19dotca said in Feature request: Add custom app to App Store for local Cloudron:

            In my mind, I almost see a good workflow being someone pointing Cloudron to a Git repo somewhere where there's a particular expectation of folder hierarchies and files, and we can use that to build our own Cloudron apps from there.

            A totally custom app store is a lot of work but maybe having a way to import a specific app is doable. This has some security implications, running random docker images on your server is always a security risk. Cloudron's sandboxing is not perfect and it's mostly reliably only because we have a bit of control over the packages.

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

            @girish what about adding another category to the existing app store, where a collection of unpackaged apps can be browsed and installed based on the contributed configuration by someone who got it to work as such.

            Maybe the requirement is it must be a functional git repo and minimal script/dockerfile to get it up and running.

            This feels like 10% on the road to packaging already.

            Later if there was a UI to accept incremental changes to the script to bump up that % completion, apps as they are used would end up self-progressing towards being fully packaged by user need.

            Conscious tech

            1 Reply Last reply
            2
            • nebulonN Offline
              nebulonN Offline
              nebulon
              Staff
              wrote on last edited by
              #16

              I do wonder though, why the current approach of cloning such a git repo locally and just using cloudron build && cloudron install on the cli is not sufficient? In the end it seems this then is just a UI bit to those three steps. Maybe an official list of such git repos is lacking mostly?

              timconsidineT d19dotcaD 2 Replies Last reply
              1
              • nebulonN nebulon

                I do wonder though, why the current approach of cloning such a git repo locally and just using cloudron build && cloudron install on the cli is not sufficient? In the end it seems this then is just a UI bit to those three steps. Maybe an official list of such git repos is lacking mostly?

                timconsidineT Offline
                timconsidineT Offline
                timconsidine
                App Dev
                wrote on last edited by
                #17

                @nebulon I kinda agree, but for some (many?) they are not too comfortable with terminal and git clone concepts, or it is just a hassle if you don't do it regularly.

                I certainly confess to some 'fear / ignorance / laziness' until I overcame. Maybe tutorials (discussed elsewhere, especially the terminal screen cast) can help overcome this for some.

                Having said that, the Cloudron one-click deploy is a pure joy, so it cannot do other than help Cloudron's adoption to have a GUI type process.

                Personally I'm happy with current situation, but I can understand others would welcome a GUI.

                1 Reply Last reply
                2
                • nebulonN nebulon

                  I do wonder though, why the current approach of cloning such a git repo locally and just using cloudron build && cloudron install on the cli is not sufficient? In the end it seems this then is just a UI bit to those three steps. Maybe an official list of such git repos is lacking mostly?

                  d19dotcaD Offline
                  d19dotcaD Offline
                  d19dotca
                  wrote on last edited by
                  #18

                  @nebulon said in Feature request: Add custom app to App Store for local Cloudron:

                  I do wonder though, why the current approach of cloning such a git repo locally and just using cloudron build && cloudron install on the cli is not sufficient? In the end it seems this then is just a UI bit to those three steps. Maybe an official list of such git repos is lacking mostly?

                  That’s an option too. However where I think that falls short is it’d require me to be at my desktop anytime I wanted to deploy a new custom app like that, wouldn’t it? Where-as if I already have the custom app installed / loaded from a repo to Cloudron, I could easily be remote and launch a new app instance from my phone or another persons computer if needed.

                  --
                  Dustin Dauncey
                  www.d19.ca

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

                    Would not having Portainer as an App allow us to manage containers and allow for trying any new unpackaged apps straight from dockerhub or other repos?

                    This works well having tried the demo in Runtipi.

                    This would solve the single DB App needs, custom LAMP setups and all the cool new stuff we want to try.

                    Another option would be to have an empty Appless App where one can manually install any other app, managing things oneself.

                    A nifty option is using Docker-in-Docker via Nestybox where in one container you can run further docker images nested and more isolated with better security.

                    All these need a way to configure the ports, via App settings or during install, so it's accessible via the system Nginx reverse proxy.

                    One app solving many requests, yes?

                    Conscious tech

                    1 Reply Last reply
                    0
                    • infogulchI Offline
                      infogulchI Offline
                      infogulch
                      wrote on last edited by
                      #20

                      The main issue is that a "Cloudron App" is both 1. A Docker image, and 2. Metadata that includes CloudronManifest.json, thumbnails, screenshots, etc. For official apps this metadata is hosted in an index on Cloudron.io servers, and for the cli metadata is uploaded from the current directory. If there was a good way to host and retrieve the metadata, one might imagine a "local app store" which the owner could add to their instance by simply entering its docker registry image uri.

                      Note that this metadata hosting problem is non-trivial. For example, if the Cloudron team allowed third parties to list their own apps on the cloudron store then they would be responsible if the apps contained something bad (regardless of any waivers to disclaim responsibility), so that's a nonstarter. Alternatively, dropping the metadata files in the image would require the server to download the whole image just to list the metadata -- not very practical.

                      To that end, last year I started developing docker artifact (hosted with Gitea on my cloudron! πŸ˜› ) which I believe will be able to treat individual image layers hosted on a docker registry as a generic 'artifact repository' which would allow you to precisely and efficiently download just the docker layers that contain the files you specify (say, CloudronManifest.json and images...). I believe this would make alternative 2 from the previous paragraph practical to implement as long as you take some care when you build your image. Currently it's stalled on technical issues (see issue 10 with my notes), but check out the README for my aspirations for the project.

                      robiR 1 Reply Last reply
                      1
                      • infogulchI infogulch

                        The main issue is that a "Cloudron App" is both 1. A Docker image, and 2. Metadata that includes CloudronManifest.json, thumbnails, screenshots, etc. For official apps this metadata is hosted in an index on Cloudron.io servers, and for the cli metadata is uploaded from the current directory. If there was a good way to host and retrieve the metadata, one might imagine a "local app store" which the owner could add to their instance by simply entering its docker registry image uri.

                        Note that this metadata hosting problem is non-trivial. For example, if the Cloudron team allowed third parties to list their own apps on the cloudron store then they would be responsible if the apps contained something bad (regardless of any waivers to disclaim responsibility), so that's a nonstarter. Alternatively, dropping the metadata files in the image would require the server to download the whole image just to list the metadata -- not very practical.

                        To that end, last year I started developing docker artifact (hosted with Gitea on my cloudron! πŸ˜› ) which I believe will be able to treat individual image layers hosted on a docker registry as a generic 'artifact repository' which would allow you to precisely and efficiently download just the docker layers that contain the files you specify (say, CloudronManifest.json and images...). I believe this would make alternative 2 from the previous paragraph practical to implement as long as you take some care when you build your image. Currently it's stalled on technical issues (see issue 10 with my notes), but check out the README for my aspirations for the project.

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

                        @infogulch

                        One option would be to include all the Metadata as a layer for the image, making it self contained and having its own layer ID.

                        That way we're tagging what is needed.

                        JFrog did this in a similar way, see https://jfrog.com/knowledge-base/what-is-the-docker-image-layer-marker/

                        Much simpler than tagging files across multiple image layers, etc.

                        Conscious tech

                        infogulchI 1 Reply Last reply
                        1
                        • robiR robi

                          @infogulch

                          One option would be to include all the Metadata as a layer for the image, making it self contained and having its own layer ID.

                          That way we're tagging what is needed.

                          JFrog did this in a similar way, see https://jfrog.com/knowledge-base/what-is-the-docker-image-layer-marker/

                          Much simpler than tagging files across multiple image layers, etc.

                          infogulchI Offline
                          infogulchI Offline
                          infogulch
                          wrote on last edited by
                          #22

                          @robi Yes that's the idea, the docker artifact tool is a mechanism to identify and tag the layers so that the layer that contains the metadata is queryable via the docker registry api.

                          robiR 1 Reply Last reply
                          0
                          • infogulchI infogulch

                            @robi Yes that's the idea, the docker artifact tool is a mechanism to identify and tag the layers so that the layer that contains the metadata is queryable via the docker registry api.

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

                            @infogulch that's a bit odd IMO to have to find them, as they should be explicitly defined.

                            Perhaps make a post in App Dev section to get assistance with the solution you're working on, as a step in the right direction.

                            Conscious tech

                            1 Reply Last reply
                            0
                            • T Offline
                              T Offline
                              tennox
                              wrote on last edited by
                              #24

                              Am I reading this topic right that there is currently no way to install an app from a git repo apart from either:

                              • submitting to official app store
                              • using CLI
                                ?

                              Would love to make our app available to install in an easy way, but not ready for app store publication (yet) πŸ€”

                              marcusquinnM 1 Reply Last reply
                              2
                              • T tennox

                                Am I reading this topic right that there is currently no way to install an app from a git repo apart from either:

                                • submitting to official app store
                                • using CLI
                                  ?

                                Would love to make our app available to install in an easy way, but not ready for app store publication (yet) πŸ€”

                                marcusquinnM Offline
                                marcusquinnM Offline
                                marcusquinn
                                wrote on last edited by marcusquinn
                                #25

                                Hi @tennox, welcome to Cloudron! What's your app? Does it have a Wishlist post?

                                • https://forum.cloudron.io/category/5/app-wishlist

                                Web Design https://www.evergreen.je
                                Development https://brandlight.org
                                Life https://marcusquinn.com

                                1 Reply Last reply
                                2
                                • T Offline
                                  T Offline
                                  tennox
                                  wrote on last edited by
                                  #26

                                  Hi there @marcusquinn πŸ™‚

                                  I'm working on packaging a ready-to-roll IPFS node with:

                                  • kubo (which was requested in this wishlist ... by you πŸ˜…)
                                  • a ucan proxy to enable an authenticated upload API

                                  See this ipfs forum post for the origin story

                                  I have successfully packaged it & deployed it to our cloudron, with a few open questions left (like configuration), and when it's ready I would submit it to the cloudron app store - but I would love to be able to give users an option to install it without needing to clone the repo and running CLI πŸ€”

                                  robiR 1 Reply Last reply
                                  4
                                  • T tennox

                                    Hi there @marcusquinn πŸ™‚

                                    I'm working on packaging a ready-to-roll IPFS node with:

                                    • kubo (which was requested in this wishlist ... by you πŸ˜…)
                                    • a ucan proxy to enable an authenticated upload API

                                    See this ipfs forum post for the origin story

                                    I have successfully packaged it & deployed it to our cloudron, with a few open questions left (like configuration), and when it's ready I would submit it to the cloudron app store - but I would love to be able to give users an option to install it without needing to clone the repo and running CLI πŸ€”

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

                                    @tennox said in Feature request: Add custom app to App Store for local Cloudron:

                                    I would love to be able to give users an option to install it without needing to clone the repo and running CLI

                                    I think you can build a custom webUI to do just that with the Cloudron API, perhaps coopting n8n for any initial testing.

                                    This is a greater need in general, and could include other useful features like migrating apps from one Cloudron to another leveraging the App install/restore process.

                                    Conscious tech

                                    1 Reply Last reply
                                    2
                                    • girishG girish

                                      Extending an appstore is an option but it's a bit of work. I am trying to see if we can do some trick to make this less work. What is you could download a "template" and then we had a button in appstore view that says install from "template" ? I know this is not as cool as integrating with appstore but will it get the job done for now?

                                      (Reason I ask is we already have the backup config download feature. If we add the docker image id or appstore id to it, it's already a template at this point).

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

                                      @girish said in Feature request: Add custom app to App Store for local Cloudron:

                                      I am trying to see if we can do some trick to make this less work. What is you could download a "template" and then we had a button in appstore view that says install from "template" ? I know this is not as cool as integrating with appstore but will it get the job done for now?

                                      (Reason I ask is we already have the backup config download feature. If we add the docker image id or appstore id to it, it's already a template at this point).

                                      How difficult would it be to make this happen in a few hours? Like in a separate DEV section of the App Store view?

                                      Option 1: accept backup templates link from custom running apps for install

                                      Option 2: accept valid git repos link of custom packaged apps for install

                                      This doesn't disturb the release box code, need separate registries or cli installs.

                                      Conscious tech

                                      1 Reply Last reply
                                      1
                                      • bmannB Offline
                                        bmannB Offline
                                        bmann
                                        wrote on last edited by
                                        #29

                                        I think git link / image registry link is the most flexible.

                                        Essentially it could run the code that Cloudron CLI runs anyway.

                                        1 Reply Last reply
                                        1
                                        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