Python Web App Stack (Flask w/ LDAP)
-
There are tons of use cases for a python analogue to the LAMP stack app.
While this could perpetually live as custom deploys in our private docker images, I think it would be handy to have a version published in the cloudron app store.
Some thoughts on implementation:
- Database URL provided in config(?) Given cloudron apps can be configured to talk to each other over the private/internal cloudron network -- seems reasonable to either just leave a database off this app and take a Database URL in a config file, if a database is needed at all. User can then select whichever backend is most appropriate.
- Read in and install from Requirements.txt (?) If I can hit deploy on cloudron, drop in a requirements.txt file from "pip freeze" somewhere to have additional dependencies installed, and then have a python app with LDAP user directory already good to go, life will be good.
Or do you guys think this is better left to just custom app deploys?
If you've already deployed a custom Flask app (even better if it uses the LDAP directory) on Cloudron and are willing to share your setup, I'd definitely appreciate not spending time re-inventing the wheel.
-
@tshirt-chihuahu Wondering if https://www.cloudpanel.io/supported-applications/ might be more useful to you for that sort of thing?
-
@girish @nebulon I realise your initial target-audience may have been making home-user self-hosting easier, but there's definitely value in giving developers some loving too, as the more developers Cloudron attracts, the more capable people will join the community with the experience and motivation to contribute in apps, and perhaps one-day core code.
-
@marcusquinn agreed. Main issue is that developer apps don't work quite well on Cloudron since the packaging was designed for running pre-made apps and not custom apps. Like a person who wants python app might suddenly want Java 17 and Yarn 3 to go with it. I think creating a custom Dockerfile and then building for Cloudron is the only way to support developer apps. After all, this is what is done in non-developer world too.
The other idea is maybe to build a PaaS (like Google App Engine, Heroku). These are opinionated stacks. You can't just install whatever version of software other than what is already provided.
-
@marcusquinn thanks for this resource. I hadn't seen this service before.
It doesn't replace deploying an app on cloudron (especially if the app mashes up several other cloudron apps.) But useful nonetheless!
-
@girish After thinking about this a bit more, it seems the optimal solution for "developer apps" isn't a published app, but some git repos of a few starter custom apps (dockerfile + ldap login + config instructions for a database if needed) specifically.
I know all the published cloudron app repos can be viewed (as linked in the packaging tutorial). Perhaps that is sufficient.
I'm building what is effectively a cloudron mashup (tying multiple apps together, LDAP, + private dns so API calls are local).
I'll provide further feedback if the current tutorial materials seem insufficient.