MongoDB for general usage
jamesgallagher last edited by girish
I was having a look at some of the previous questions/discussions around using the mongodb instance that Cloudron itself makes use of. My take away understanding is that there's no intention to expose that instance to end-users. Which I can appreciate.
Having an instance I can access as an end-user came to mind recently. I've returned to my Cloudron instance with the intention of making better use of it: This has led to installing Metabase for a poke around and to access data I have in Atlas. In turn, I've then thought if I start to scale up my Atlas usage I need to start looking at cost and deciding if I should self-host mongodb. I can see why Cloudron wouldn't want to slot into the hosted DB type of role but interested in other folks views.
marcusquinn last edited by
@jamesgallagher Have you tried the Directus app? Maybe I'm barking up the wrong tree but I like it a lot as a MySQL manager and GraphQL API.
@jamesgallagher Welcome back
For general usage, if you are looking to host an app that uses mongo, this is easy to do - https://docs.cloudron.io/custom-apps/tutorial/ . This way your app has access to mongodb. If you are looking to access the mongodb of an existing app, maybe you can use an ssh tunnel for this (for example, maybe you want to connect it to your IDE)? Something like https://forum.cloudron.io/topic/3237/remote-sql-support-on-a-per-app-basis/2 .
The case which we aren't supporting right now is where you want to host an app outside Cloudron and provision a database inside Cloudron. This is almost like having a managed database. Is this the case what you are after?
This does seem similar to my managed DB request, if thats what OP is asking. From a developer standpoint I like it but mostly because I want to be able to specifically host CouchDB (for those sweet sweet realtime connections to the DB)
That raises maybe two options. One a mongodb app, with maybe some mongodb webui to manage the database freely without exposing the addon mongodb. The other option is the exposure of the addon mongodb instance, which I think would not be a good idea, plus in that case the user would not get full access to the database to configure it.
jamesgallagher last edited by
Yes, I'm effectively looking for a managed DB on the cheap (CouchDB may come onto my horizon too @atrilahiji - this is an area I'm getting into a bit more lately)
Nice suggestion @marcusquinn but it's not quite what I'm looking for this time around.
@jamesgallagher and @atrilahiji Yeah, I've run across maybe two or three apps recently that use PouchDB, which needs a public instance of CouchDB in order to sync their data. I have no idea if we should package CouchDB for cloudron as an app, but it sure seems like it could be useful.
Hey, I've (mostly) packaged MongoDB for use on Cloudron, I am happy to share/add it to a GitLab repo.
@girish Would it be ok to get a repo created for this? If you feel this is not something suited for Cloudron and don't want it on the App Store, I understand.
necrevistonnezr last edited by necrevistonnezr
Keep in mind that MongoDB has a quite specific license now (SSPL) and offering MongoDB as a service has several implications as it might „infect“ code using said service: https://www.mongodb.com/licensing/server-side-public-license/faq
Section 13 of the SSPL reads as follows:
a. “If you make the functionality of the Program or a modified version available to third parties as a service, you must make the Service Source Code available via network download to everyone at no charge, under the terms of this License. Making the functionality of the Program or modified version available to third parties as a service includes, without limitation, enabling third parties to interact with the functionality of the Program or modified version remotely through a computer network, offering a service the value of which entirely or primarily derives from the value of the Program or modified version, or offering a service that accomplishes for users the primary purpose of the Software or modified version.”
b. “Service Source Code” means the Corresponding Source for the Program or the modified version, and the Corresponding Source for all programs that you use to make the Program or modified version available as a service, including, without limitation, management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that a user could run an instance of the service using the Service Source Code you make available.“
robi last edited by
@necrevistonnezr there are better options