Versions/Background
I'm using version 0.7.6 of meteor-up (mup), Meteor 1.0.2.1 which uses Mongo v0.10.33 from what I've read.
I'm using a small Ubuntu Server 14.04 LTS (HVM), SSD Volume Type - ami-3d50120d
EC2 instance on AWS as a destination for my Meteor application.
My domain is pointing at the ami-3d50120d
instance's Elastic IP (I'll call it domain-name
here).
I'm able to do mup setup
on the new ami-3d50120d
where I install Mongo and Node successfully, with an output that looks like so:
[domain-name.com] - Installing Node.js
[domain-name.com] ✔ Installing Node.js: SUCCESS
[domain-name.com] - Setting up Environment
[domain-name.com] ✔ Setting up Environment: SUCCESS
[domain-name.com] - Copying MongoDB configuration
[domain-name.com] ✔ Copying MongoDB configuration: SUCCESS
[domain-name.com] - Installing MongoDB
[domain-name.com] ✔ Installing MongoDB: SUCCESS
[domain-name.com] - Configuring upstart
[domain-name.com] ✔ Configuring upstart: SUCCESS
Steps to recreate Error Condition
- created a new Ubuntu instance
- assigned the Elastic IP that's linked to my domain
- configured my mup.json file (will detail below)
- did a mup setup -> everything installed successfully
- ssh'd into my instanced and did a
node -v
-> v0.10.33 - back on my OSX box -> did a
node -v
-> v0.10.32 - did a mup deploy -> error condition occurs
Error condition
[domain-name.com] - Uploading bundle
[domain-name.com] ✔ Uploading bundle: SUCCESS
[domain-name.com] - Setting up Environment Variables
[domain-name.com] ✔ Setting up Environment Variables: SUCCESS
[domain-name.com] - Invoking deployment process
✘ Invoking deployment process: FAILED
-------STDERR----
Warning: Permanently added 'domain-name.com,55.555.5.555' (RSA) to the list of known hosts. sudo: node-gyp: command not found
-------STDOUT-----
=> re-installing binary npm module 'bcrypt' of package 'npm-bcrypt'
Note
I guess I have node v0.10.32 installed on my OSX box (and node v0.10.33 installed on my amazon instance), but this shouldn't affect my node version for Meteor version 1.2.1, as it has its own version of node as far as I know.
mup Configuration
My mup.json, where domain-name.com
is pointing to my Elastic IP assigned to the instance, looks like so:
{
// Server authentication info
"servers": [
{
"host": "domain-name.com",
"username": "ubuntu",
// or pem file (ssh based authentication)
"pem": "/Users/user-name/Meteor/pem-file-name.pem"
}
],
// Install MongoDB in the server, does not destroy local MongoDB on future setup
"setupMongo": true,
// WARNING: Node.js is required! Only skip if you already have Node.js installed on server.
"setupNode": true,
// WARNING: If nodeVersion omitted will setup 0.10.33 by default. Do not use v, only version number.
"nodeVersion": "0.10.33",
// Install PhantomJS in the server
"setupPhantom": false,
// Application name (No spaces)
"appName": "application-name",
// Location of app (local directory)
"app": "/Users/user-name/Meteor/application-name",
// Configure environment
"env": {
"PORT": 80,
"ROOT_URL": "http://domain-name.com",
"MONGO_URL": "mongodb://localhost:27017/clients-database"
},
// Meteor Up checks if the app comes online just after the deployment
// before mup checks that, it will wait for no. of seconds configured below
"deployCheckWaitTime": 30
}