Trying to reconfig an old MUP deployment

I’ve got an old install of the Telescope meteor app that was deployed at the end of 2016. The app is hosted on digital ocean and the database is on Compose. It’s been running smooth for years, never messed with it.

Recently, Compose required me to upgrade my database. In doing so, the Mongo URL has changed. I need to tell my meteor app where the new database lives.

Unfortunately, it’d been so long, I had to re-install meteor and npm and mup. When I went to run ‘mup reconfigure’ it couldn’t find the necessary files because inside my folder is:

  • mup.json
  • settings.json

But it is apparently looking for a file called mup.js

Any clues what I can do in this situation to repair my site?

IIRC, mup used to use .json files for configuration until a certain version, and then switched over to a .js file with similar content. Converting this should be pretty straightforward. You can find the structure of the new configuration file here:

http://meteor-up.com/docs.html

Some options have changed over time, of course, e.g. the way SSL was configured. Nowadays, mup is able to auto-configure it and update letsencrypt certificates automatically, which is really nice. So some adjustments might be necessary.

I think I’m getting this…

But I’m not sure what to do for these fields:

docker: {
image: ‘abernix/meteord:base’
},

serverOnly: false

The docker image is important, as it depends on the Meteor version you’re deploying.

As the docs state, you should use abernix/meteord:base on newer versions and kadirahq/meteord on Meteor 1.3 and below.

(I am actually using abernix/meteord:node-8-base, which was recommended for a while and is still working fine. I don’t know exactly what the difference is, but obviously it’s node version related).

You have to set serverOnly to false if you want to build iOS and Android target files and deploy them to the server. This is required for Hot Code Push to mobile applications. If you don’t use mobile apps to access your server, you can set this to true, which speeds up build and deployment time.

But I think this only makes a real difference if you have added the iOS and Android platforms in the first place, e.g. for testing purposes. Otherwise, Meteor should skip building them anyways. You’d also need a working mobile build toolstack if you want to build these targets, which is somewhat cumbersome as Meteor requires specific Android SDK tool versions. Otherwise, you get errors during mup deployment.

Thus, unless you really want to target mobile, set serverOnly to true.

Thank you!

I checked the files that were originally deployed to this droplet several years ago, and the /.meteor/release file says it is running meteor 1.2.1 (METEOR@1.2.1) — so it sounds like ‘kadirahq/meteord’ is the better option for me.

When I try and run: ‘mup reconfig’, I’m getting an error “module is undefined”

Is there an issue with me trying to run ‘reconfig’ just to link my app to a new database? Do I have to actually redeploy the entire thing instead? I’m worried cause I must be running some older versions of everything cause this was deployed multiple years ago.