Deploying to Heroku
Deploying Nesta to Heroku works out of the box. If you haven't already done so, signup for Heroku and install the heroku toolbelt.
Before you can deploy your site you need to get it running properly on your own computer. You'll also need to check it into a Git repository. If you've already done that you can skip ahead, but just in case we'll cover it here quickly with an example.
Setting up git
When you generate a new Nesta site you can tell Nesta that you want to
manage it with Git by adding the --git
switch:
$ nesta new mysite.com --git
The --git
switch just creates a new repository for you, and commits
the freshly created site. If you're deploying a site that has been
created without a git repository, create a git repository as follows:
$ cd mysite.com
$ git init
$ git add .
$ git commit -m "Initial commit"
You'll need to store your content in a content
directory directly
inside the top level Nesta directory (which is the default) and check it
into the same repository as your copy of Nesta. If you've not already
written any content create a test article now and add it to your Git
repository:
$ cd mysite.com
$ mkdir -p content/pages
$ cat > content/pages/test.mdown
Date: 16 June 2010
# Demo article
Woohoo!
^D # <- press Ctrl-D
$ git add .
$ git commit -m "Added an article."
Running the site locally
Start the server up locally (run bundle exec mr-sparkle config.ru
) and make
sure you can browse to http://localhost:8080/
. You should be able to see your
content.
Deploying to Heroku
There's no need to push these changes to a remote git repository such as GitHub -- we're going to cut out the middle man and push your repository directly to Heroku.
Make sure that you fill in config/config.yml
properly (the most
important thing is to ensure that caching is off, as we can't write to
Heroku's file system).
$ heroku create
$ git push heroku master
Check whether your deployment worked by visiting your special Heroku URL
(which you can find in the output of the heroku info
command). See the
Heroku documentation for instructions on how to change this
URL to something more suitable.
To run Nesta on your own domain you just need to configure Heroku's custom domains.
That's it, you're done.
A note on caching: Experienced Heroku users may be wondering whether Nesta automatically enables any HTTP compliant caching on Heroku. The answer is "not yet", but it's under discussion. In the meantime, as Nesta is a simple Sinatra app you can configure caching just as you would for any other Sinatra app.