Feature request: Add custom app to App Store for local Cloudron
d19dotca last edited by girish
This may not make much sense if I've understood anything about custom apps, so please correct me if I'm wrong, but I think it'd be great to have a sort of "baseline" image somewhere in Cloudron to deploy from as easy as deploying from the App Store, but local to the Cloudron server. In other words, if I push my first custom app to the Cloudron server, it'd be great to be able to re-deploy it again and again from the Cloudron UI rather than needing to have access to the CLI tooling. This would allow some easier administration from computers that aren't my own (thus no CLI installed), and a mobile device if needed.
Is something like this possible at all? Does it already exist and I missed it somehow? I'm fairly new to packaging, have played with it a bit over the last year but haven't really gotten anything solid that I use in the Cloudron server yet that I can call "my own", so I may be overthinking this feature request.
@d19dotca The closest we have to what you are asking for is the 'clone' feature. Install the 'baseline' image the first time, take a backup and stop the app. Then you can just clone new apps from there.
I think this is how many people create app templates right now. For example, create a properly configured WP installation installing many plugins and customizing theme. And then just clone from there.
@girish yes that’s what I do already, but it’s be nice to not have so many template apps laying around as it starts to grow. Would be nice to hide that and deploy the template from the App Store area of Cloudron. Maybe a tab in the App Store for custom local apps or something.
marcusquinn last edited by
@d19dotca App Tags?
@marcusquinn App tags don't really solve the problem I'm describing though. If you think they do though, can you please elaborate? In general I've refrained from using app tags except for my primary infrastructure apps, because it's just a PITA to manage them when I'm managing so many apps.
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).
while I think your use case could also be satisfied (maybe even better?) with some sort of CI, I have been thinking about 3rd party stores for a while as well.
But getting back to the CI. When its just a single server where you want to update/deploy to then this could be relatively trivial. I did spent a bit of time on packaging up the cloudron cli for Drone some weeks ago, but paused because of having troubles with docker in docker.
@girish Yes I think that’d work well. In some way, it could be as simple as making an app with the intention of being a custom app template, marking it with some feature tag called maybe “custom app template” or something like that, which then just moves it out of the main Cloudron dashboard display and into the App Store deployment page. This would keep the dashboard cleaner (imagine several template apps taking up two rows, all removed with this feature), and force more of the mindset in deploying apps using the App Store page. That’s one idea anyways.
@fbartels Would CI/CD tooling work well from a mobile device or tablet, do you think? If so, then this is an option too. The main reason I didn’t want to use any tooling that requires installs or CLI is because there may be times where I need to do something like that from someone else’s computer, or a tablet, and places where I wouldn’t have access to those tools without having to install them. This is what I am hoping to avoid by sort of using the App Store deployment model. That way it’s only needed for the very first deployment of the custom app, then it can all be done from the Cloudron GUI. Will also save a bunch of “template” apps in the dashboard from clogging up display space.
@d19dotca I guess that depends exactly on what you want to use the cloudron cli for. A workflow could look like the following:
- change/update version of a package in the app
- commit the change to git (you could edit and commit directly in e.g. gitea or gitlab)
- this automatically triggers the ci platform
- this one could do some verification
- create the updated docker image
- deploy it to your cloudron
The simples form of this could be a post-commit hook in your git hosting tool.