Running on Heroku
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
$ nesta new mysite.com --git
--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
$ 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
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.