Deploying Meteor app to heroku with Meteorite and MongoLab
It's been a bit of a hassle to deploy my Meteor (0.6+) apps to heroku, so I thought I'd share my history and recipe..
I'll presume you already have your Heroku and MongoLab accounts setup as well as git set on your box. Make sure you installed Heroku toolbelt too..
This was my first try
heroku create <appname> --stack cedar --region eu --buildpack https://github.com/ondrej-kvasnovsky/heroku-buildpack-meteor.git
that buildpack is no longer valid and will fail (until rPowell's pull request is accepted), it tries to bundle with 'meteor' instead of 'mrt' and throws and error
heroku create <appname> --stack cedar --region eu --buildpack https://github.com/rpowelll/heroku-buildpack-meteor.git
This one works but sets up MongoHQ local vars and installs the Heroku plugin. So you need to uninstall the plugin and set your MONGOURL var to point to your MongoLab DB which is a bit of a hassle_
So I forked the buildpack and made it DB agnostic. Now it works like a charm. I'll detail the process.
git init
touch README.md
git add .
git commit -a -m "first deploy"
heroku create <appname> --stack cedar --region eu --buildpack https://github.com/kazlan/heroku-buildpack-meteorite.git __Set appname and region as needed__
heroku config:set MONGO_URL=mongodb://<username>:<password>@ds027308.mongolab.com:27308/<dbname>
heroku config:set ROOT_URL=<appname>.herokuapp.com
git push heroku master
As of version 0.6.6.1 of Meteor I needed to add the following to package.json in the root directory of the apps
{
"name": "App_Name",
"Version": "0.1",
"engines": {
"node": "0.10.20"
}
}
All set and deployed!
Hope it helped
Written by Jorge mollon
Related protips
9 Responses
I don't have a heroku / mongolab account yet, but I've been wanting to... since I am a big Meteor fan, this tip will help me to pull that trigger :) thx!
$ heroku create
is missing --buildpack
before the GitHub URL.
Indeed, thanks. Just fixed :)
@Jorge I get an error and the logs show the following. fibers.node is missing. Try reinstalling node-fibers?
as of version 0.6.6.1 I needed to set "node": "0.10.20" in package.json to get thru that problem.. will add an example package.json to the tip.
Thanks @kazlan. Life on the bleeding edge! I am running the latest Meteor 0.6.6.2, pushed it to Heroku with Node 0.10.20. Got an Application Error. Logs said Meteor 0.6.6.2 needs Node 0.10.21. Fired up a new node box and now my inital push fails with a SyntaxError: Unexpected token ILLEGAL
when installing meteorite. Will I ever get my Meteor app on to Heroku.....
got me there.. My last one was a 0.6.6.1 app, will try it up tomorrow with a new one and see what happens.
I forked your buildpack and made the needed updates for Meteor 0.6.6.2 and Node 0.10.21 as done by https://github.com/areed
File comparison: https://github.com/benstr/heroku-buildpack-meteorite/compare/kazlan:master...master
My buildpack: https://github.com/benstr/heroku-buildpack-meteorite
Here are instructions for hosting Meteor 0.8.2 on Heroku, which can be challenging the first time around: http://stackoverflow.com/a/24706472/111948