Multiple application instances on Galaxy

Let me start by saying I’m pretty clueless about devops.

I’m looking at hosting a Meteor app on Galaxy but there should be multiple instances so looking for some advice.

The application will be sold to multiple companies and each company should have their own instance on a subdomain. Is this possible on Galaxy and will we be able to do code updates to all of the instances easily? Also require SSL etc.

Has anyone else achieved this? What is the process to do this on mLab for the DBs?

If you really have multiple installs of the app you need at least one Galaxy container for each company. Then off course you can connect the right subdomain to that app.

It does however not fit great with the structure Galaxy has to scale. You will have lots of servers not being used at the same time because they will only serve a specific client each.

Is the code really different and do you really have no option to make it multi-tenant?

Thanks for responding.

The code will be the same but security is of utmost importance hence the need to use different instances. Also, a dedicated subdomain is important for this particular clientele.

Isn’t this more to do with the data(base) than the code?

Ok, if separation is a ready made decision then you can do for example this in a simple SH file in your delivery pipeline:

#!/bin/sh
DEPLOY_HOSTNAME=galaxy.meteor.com meteor deploy subdomainclientx.domain.com --settings settings-client-x.json
DEPLOY_HOSTNAME=galaxy.meteor.com meteor deploy subdomainclienty.domain.com --settings settings-client-y.json

Simple to expand and will deploy your latest version of software to each Galaxy application.

So you will manually create a new Galaxy app for each client. Tick the SSL box, that’s simple with let’s encrypt, and then you can deploy your app. For the database provider you do the same, create a database, store the credentials and that’s it.

So you have a little initial effort, but is very repeatable, and then updating the code goes on it’s own.

Yes, more to do with DB but also settings.

Thanks for this. Not even sure what an SH file is lol. I understand the commands though.

SH can be used on osX command line to run commands, just a shell.

You can put the database settings in the settings file. Best is to have that on a locked down machine in your integration pipeline. Example I posted just uses a local file.