Deploy Meteor on EC2 (or your own server)
The easiest way to install (or update) meteoric
is using curl:
$ curl https://raw.github.com/justinriggio/meteoric.sh/master/install | sh
Added sudo
You may need to sudo
in order for the script to symlink meteoric
to your /usr/local/bin
.
Create a conf file named meteoric.config.sh
in your project's folder, setting the following environment variables:
# IP or URL of the server you want to deploy to
APP_HOST=meteor.julien-c.fr
# If you want a different ROOT_URL, when using a load balancer for instance, set it here
#ROOT_URL=mycustom.url.com
# Comment this if your host is not an EC2 instance
EC2_PEM_FILE=~/.ssh/proxynet.pem
# What's your project's Git repo?
GIT_URL=https://username:password@github.com/username/reponame.git
# Does your project use meteorite, or plain meteor?
METEORITE=true
# If not using Meteorite, you need to specify this
METEOR_RELEASE=0.6.4
#If you have an external service, such as Google SMTP, set this
#MAIL_URL=smtp://USERNAME:PASSWORD@smtp.googlemail.com:465
#URL encoded %40 mailgun example
#MAIL_URL=smtp://postmaster%40domain.mailgun.org:password@smtp.mailgun.org:587
# What's your app name?
APP_NAME=microscope
# If your app is not on the repository root, set this
APP_PATH=.
# If you would like to use a different branch, set it here
GIT_BRANCH=master
# Kill the forever and node processes, and deletes the bundle directory and tar file prior to deploying
FORCE_CLEAN=false
# Setup a listening port for your instance / default is 80
#PORT=8000
# If you want to do something before forever starts Meteor, you can do it here
# NOTE: Don't forget to use a semi-colon at the end of every command
#PRE_METEOR_START="export ENVIRONMENT=prod;"
Then just run:
$ meteoric setup
$ meteoric deploy
If you'd like to use a different location for meteoric.config.sh, supply it as a second parameter:
$ meteoric setup /path/to/your.config.sh
$ meteoric deploy /path/to/your.config.sh
- Ubuntu 13.04
- Ubuntu 12.10
Hat tip to @netmute for his meteor.sh script. In our case though, we think having to rebuild native packages like fibers
kind of defeats the whole point of bundling the Meteor app. Additionally, our approach enables hot code fixes (you don't have to stop/start your node server, and your users' apps shouldn't be disrupted).
This script is also based on this previous post: How to deploy Meteor on Amazon EC2.
Cheers!