2
votes

I was trying to deploy a Meteor app onto a DigitalOcean droplet, via its IP address (I have no domain name). I am doing this kind of thing for the first time, so was having a lot of issues with it.

This is my droplet on Digital Ocean:

Digital Ocean droplet

I created a MUP (Meteor Up) directory outside my Meteor app’s repo using mup init, and this is the mup.js file that I have:

module.exports = {
    servers: {
        one: {
            host: '162.243.57.207',
            username: 'cs673f16',
            pem: '/Users/gautambhat/.ssh/id_rsa'
            // password:
            // or leave blank for authenticate from ssh-agent
        }
    },

    meteor: {
        name: 'meetcute',
        path: '/Users/gautambhat/Repos/CS673_team2',
        servers: {
            one: {}
        },
        buildOptions: {
        serverOnly: true,
        },
        env: {
            ROOT_URL: 'http://162.243.57.207',
            PORT : 3000
            //MONGO_URL: 'mongodb://localhost/meteor'
        },

        //dockerImage: 'kadirahq/meteord'
        deployCheckWaitTime: 60
    },

    mongo: {
        oplog: true,
        port: 27017,
        servers: {
            one: {},
        },
    },
};

Also, I don't know my MONGO_URL, or where to find it, so I just commented it out. After running setup, and the running mup deploy, I get this:

=> Starting meteor app on port:80

assert.js:93
  throw new assert.AssertionError({
        ^
AssertionError: "undefined" === "function"
    at wrapPathFunction (/bundle/bundle/programs/server/mini-files.js:77:10)
    at Object.<anonymous> (/bundle/bundle/programs/server/mini-files.js:108:24)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/bundle/bundle/programs/server/boot.js:9:13)
    at Module._compile (module.js:456:26)
-----------------------------------STDOUT-----------------------------------
1

1 Answers

3
votes

After researching a bit online on different sites, I found a fix here

The new kadirahq/mup

The default dockerImage is meteorhacks/meteord:base and thus still uses Node 0.10.43. If someone builds and publishes a new image from the base, it could be easily swapped in. I've gone ahead and provided an abernix/meteord:base image with the necessary changes to run Node 4.4.7 + the benefit of NPM 3 on an updated distro (jessie instead of wheezy). I'm not sure if this is something that kadira will provide soon themselves or not. You can use my image by adding the following in your mup.js, inside the meteor object (see docs for details), and re-deploying with mup deploy:

dockerImage: 'abernix/meteord:base'