I do have Meteor installed on my Heroku app. Due to some vulnerabilities concern Heroku is asking me to update Node.js version which is possible by updating the Meteor version as directed here
But how would I run the update on my heroku.
Currently I'm using command:
heroku run meteor update --release 1.5.1 -a myappname
I think you need to go to your Meteor project (repo) with your code editor, do the update, make sure everything runs ok on "local". A good opportunity to run "npm outdated" too and see if there is anything to do in that area, then push to production.
I am pretty sure you should not update Meteor via Heroku CLI or command line.
The solution to update Meteor and Node version for Heroku aplication is given below:
Update Node version for Meteor app deployed to Heroku
Related
I've deployed my Meteor app to Heroku using the https://github.com/jordansissel/heroku-buildpack-meteor buildpack. My Meteor is v1.0+.
How do I access a server console to my app? Normally on my local dev machine I would run $ meteor shell.
Similarly, how can I meteor reset?
Thanks
If you used the oortcloud meteor buildpack, or a fork of it, the build uses a production mode build of meteor. meteor shell is a development tool and not available for use in production mode.
This is a tradeoff. You could theoretically use use a development mode instance in production but you would have terrible performance. Meteor in development struggles to cope with > 10 users. In production mode the figure is much larger.
meteor reset on the other hand clears the database of the development mode database. To clear up your database log into your database using mongo and drop all the collections. Alternatively run use db.dropDatabase(); (in mongo)
How can i update a deployed app using meteor.
So i deploy my app using
meteor deploy xxxxxxx
and to delete i do
meteor deploy --delete xxxxxx
how can i update?
It is not in the command line help also
when i type
meteor deploy --help
I get
Options:
--delete, -D permanently delete this deployment
--debug deploy in debug mode (don't minify, etc)
--settings set optional data for Meteor.settings
--star a star (tarball) to deploy instead of the current Meteor app
Is your app hosted on meteor.com?
If so you only need to issue a
Meteor deploy XXXXX
Command again and it will update your app.
Meteor Deploy uses the same hotcode reload that the apps use.
Just refresh the web page where you're making the changes and the meteor server will make itself restart! :)
I have upgraded 2 meteor apps to 0.9.3. Now, when attempting to deploy the apps to meteor.com the app is appearing to not deploy and hang. For example, here is what is displayed:
$ meteor deploy myapp.meteor.com
$ [blinking cursor here]
Note that the myapp is substituted with my actual app name. Any ideas?
Here's a workaround I found:
Downgrade to 0.9.1
Deploy
Login with your developer account when it asks
Upgrade again to 0.9.3
Deploy
I think Meteor was failing to show the login prompt for whatever reason.
Here is what I did to solve the issue.
Deleted the local directories with the meteor apps.
Pulled fresh copies of the apps from my github repos.
Opened the apps via the terminal and was able to publish.
I am sure that there was something deeper that was the issue, but this solved it.
I had the same issue but it was solved when i loged into my meteor account using $ meteor login
I created a meteor app which works fine on my localhost.
I recently just deployed my app to meteors server for testing and each time I visit the app I get a page with the text
This site is down. Try again later.
When I deploy I type:
meteor deploy [app-name]
It deploys successfully but when I actually visit the site, it says it is down.
I’ve tried the following:
Deleting the deployed app and re-uploading, but I experience the same error.
Deploying a brand new meteor app, still says same site is down error.
Deleting the app, reseting my local database with meteor reset, and redeploying. Same error.
Can I do something to fix this, or is this an error with Meteor's servers?
--------------------UPDATE-----------------------
The site is not showing because it is crashing. Using Meteor logs [app-name] I was able to find out that it was crashing because it cannot find module async.
I have my meteor project setup for NPM integration. I used npm install async and use
async = Meteor.require('async')
But I think the issue is with my package.json file.
Here is my current package.json
{
"async": "0.9.0"
}
Is meteor not able to install async on the server because this package.json file is incorrect? Everything works on my localhost but I used npm install async specifically.
----------------------------UPDATE 2-----------------------
I fixed it with the help of this thread:
How can I deploy node modules in a Meteor app on meteor.com?
You have to be a bit careful with NPM modules. meteor deploy doesn't support binary npm or installing npm modules via npm install from a package.json.
This may be what is causing you issues. Unfortunately, there isn't a way passed this. You could use your own server via DigitalOcean or AWS to get passed this.
I recently created a droplet on Digital Ocean, and then just used Meteor Up to deploy my site to it.
As awesome as it was to not have to mess with all of the details, I'm feeling a little worried and out of the loop about what's happening with my server.
For example, I was using the console management that Digital Ocean provides, and I tried to use the meteor mongo command to investigate what was happening with my database. It just errored, with command not found: meteor.
I know my database works, since records are persistent across accesses, but it seems like Meteor Up accomplished this without retaining any of the testing and development interfaces I grew used to on my own machine.
What does it do??? And how can I get a closer look at things going on behind the scenes?
Meteor Up installs your application to the remote server, but does not install the global meteor command-line utilities.
For those, simply run curl https://install.meteor.com | /bin/sh.
MUP does a few things. Note that this MUP is currently under active development and some of this process will likely change soon. The new version will manage deployment via Docker, add support for meteor build options, and other cool stuff. Notes on the development version (mupx) can be found here: https://github.com/arunoda/meteor-up/tree/mupx.
mup setup installs (depending on your mup.json file) Node, PhantomJS, MongoDB, and stud (for SSL support). It also installs the shell script to setup your environment variables, as well as your upstart configuration file.
mup deploy runs meteor build on your local machine to package your meteor app as a bundled and zipped node app for deployment. It then copies the packaged app to the remote server, unbundles it, installs npm modules, and runs as a node app.
Note that meteor build packages your app in production mode rather than the debug mode that runs by default on localhost when you call meteor or meteor run. The next version of MUP will have a buildOptions property in mup.json that you can use to set the debug and mobileSettings options when you deploy.
Also, since your app is running directly via Node (rather than Meteor), meteor mongo won't work. Instead, you need to ssh into the remote server and call mongo appName.
From there, #SLaks is right about how it sets things up on the server (from https://github.com/arunoda/meteor-up#server-setup-details):
This is how Meteor Up will configure the server for you based on the given appName or using "meteor" as default appName. This information will help you customize the server for your needs.
your app lives at /opt/<appName>/app
mup uses upstart with a config file at /etc/init/<appName>.conf
you can start and stop the app with upstart: start <appName> and stop <appName>
logs are located at: /var/log/upstart/<appName>.log
MongoDB installed and bound to the local interface (cannot access from the outside)
the database is named <appName>