Deploying a Meteor app with MUP to a droplet

July 21, 2016 4.7k views
Deployment DigitalOcean MongoDB Nginx Node.js

As are many others, I am trying to deploy a Meteor app to my Digital Ocean droplet using MUP, although I seem to be one of the few getting stuck at mup setup.

I have configured an SSH key pair for my droplet, and can login remotely from my Mac terminal. I have also created another user (aside from root) and disabled root access (which may be the source of my problem?). No password is needed to establish a connection with my droplet as the user via my SSH key pair.

When using mup setup it fails when trying to install Node from the beginning of the process due to permissions:

[128.199.143.49] ✘ Installing Node.js: FAILED

        -----------------------------------STDERR-----------------------------------
        Warning: Permanently added '128.199.143.49' (ECDSA) to the list of known hosts.
        Permission denied, please try again.
        Permission denied, please try again.
        Permission denied (publickey,password).
        -----------------------------------STDOUT-----------------------------------
        ----------------------------------------------------------------------------

here is the mup.json info for "servers":

{
      "host": "128.199.143.49",
      "username": "user1",
      //"password": "pw"
      // or pem file (ssh based authentication)
      "pem": "~/.ssh/id_rsa"
    }

If I try to run mup setup as root, I get prompted for a password, even though I have removed the password:

Started TaskList: Setup (linux)
[128.199.143.49] - Installing Node.js
root@128.199.143.49's password: 
root@128.199.143.49's password: 
root@128.199.143.49's password: 
[128.199.143.49] ✘ Installing Node.js: FAILED

        -----------------------------------STDERR-----------------------------------
        Warning: Permanently added '128.199.143.49' (ECDSA) to the list of known hosts.
        Permission denied, please try again.
        Permission denied, please try again.
        Permission denied (publickey,password).
        -----------------------------------STDOUT-----------------------------------
        ----------------------------------------------------------------------------
Completed TaskList: Setup (linux)

Before I removed the password, I tried mup setup as root with the password and was unsuccessful.

If there is any other information that I can provide that would help, please let me know.

Here is my mup.json file for good measure:

{
  // Server authentication info
  "servers": [
    {
      "host": "128.199.143.49",
      "username": "user1",
      //"password": "pw"
      // or pem file (ssh based authentication)
      "pem": "~/.ssh/id_rsa"
    }
  ],

  // 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.36 by default. Do not use v, only version number.
  "nodeVersion": "3.9.6",

  // Install PhantomJS in the server
  "setupPhantom": true,

  // Show a progress bar during the upload of the bundle to the server. 
  // Might cause an error in some rare cases if set to true, for instance in Shippable CI
  "enableUploadProgressBar": true,

  // Application name (No spaces)
  "appName": "foundation",

  // Location of app (local directory)
  "app": "../",

  // Configure environment
  "env": {
    "ROOT_URL": "http://ryan-neil.com"
  },

  // 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": 60
}

Thanks!

2 comments
  • The instructions about setting your MUP install up for SSH keys may be helpful here. It looks like you've done some of this, but you may want to review this again just in case: https://github.com/arunoda/meteor-up#ssh-based-authentication.

    Additionally, you could try installing node.js separately of the installer.

  • Hello Brook, thanks for the response :)

    Finally got it working. Long story short, needed to use mupx instead of mup. That solved my permissions problems after once more running back through the Github page for MUP and getting stuck with 403 errors.

    After successfully running mupx setup the deploy process went through smoothly, except that I got errors that port80 was already in use. Rebuilt my droplet, ran through mupx setup and deploy again, and voila.

    Hope that helps anyone else.

    Thanks again!
    Ryan

2 Answers
BrookDO July 25, 2016
Accepted Answer

(From Ryan)

Hello Brook, thanks for the response :)

Finally got it working. Long story short, needed to use mupx instead of mup. That solved my permissions problems after once more running back through the Github page for MUP and getting stuck with 403 errors.

After successfully running mupx setup the deploy process went through smoothly, except that I got errors that port80 was already in use. Rebuilt my droplet, ran through mupx setup and deploy again, and voila.

Hope that helps anyone else.

Thanks again!
Ryan

Have another answer? Share your knowledge.