Hey guys. I am kicking myself for some trouble with deploying an old Meteor app with some small changes. Specifically, I built this app in 2014 on Meteor 0.7.1.2, with a bunch of mrt
packages, and I had been deploying it manually with a script based on the instructions from here: https://www.digitalocean.com/community/tutorials/how-to-deploy-a-meteor-js-application-on-ubuntu-14-04-with-nginx. My nginx and meteor are just running on a Linode ubuntu server, but I’m using MongoDB hosted by mlab.com.
I’m working on a rewrite of the app, as it uses Blaze and Bootstrap, and I’d like it to use React and mess with some other CSS. But I had a customer request for some changes, so I have been patching the legacy app too. Up until a few weeks ago, I could re-run my old homemade deploy script just fine.
A few days ago though, confident I could put the app right back up, I took it down and went to redeploy from a branch… and I started getting errors around bcrypt and node-gyp. I can’t remember the exact errors… my environment has been torn apart since then. But it’s all tracked in git, so I might go back and try my original deploy script again and see what the specific problem was after I post this. Meanwhile, the app is down. I threw a static “sorry, down for maintenance” page on the domain, and for the last few days I’ve been just trying to do anything I can to get my old app back online.
I decided to throw out the custom deploy script, and get a brand new Ubuntu 16.04 server instance running to try and deploy this thing with mup. I have had a lot of success with mup
on Meteor 1+, and so I thought I would try and use it for the Meteor 0.7 monstrosity. Well… it seems like it almost works, but I get weird errors. I got something about node versions at one point, so I tried a few of the different docker images for mup, and with one of them i was getting something about needing to reinstall fibers
. I have also tried both mupx and mup-legacy (as published on npm under those names) with various settings, with no luck and some similar errors.
One particularly laughable part of this problem is, somewhere between Meteor 0.7 and today, the “meteor bundle” command was removed and replaced with “meteor build”. And meteor is smart enough to run the older command line tools that came with the Meteor release I’m trying to use… but mup doesn’t know about the command changing… so I run “mup deploy” and I get “meteor build is not a command.” SMH. I worked around that by just doing “meteor bundle ~/tmp/bundle.tar.gz” and then “mup deploy --cached-build” with buildLocation set to ~/tmp in my mup configuration. But I still get errors from inside the docker image about problems with the Node environment.
In a desperate attempt to just leave Meteor 0.7 behind and deploy a version of my Blaze app with the latest Meteor, I started embarking on the journey of updating it to the latest Meteor release and using mup… but it’s using a grab bag of old meteorite packages and I really don’t know if I have time to finish that endeavor, and in that branch I’m still getting errors about using Handlebars wrong.
Can anyone help me just get this damn bundle on the internet? The app runs fine locally on Meteor 0.7. What am I doing wrong?