android.moparisthebest.org/source/docs/deploying/index.markdown

84 lines
3.3 KiB
Markdown

---
layout: page
title: Deploying Octopress
date: July 18 2011
sidebar: false
footer: false
---
[« Previous, Configuring Octopress](/docs/configuring)
### Deploying with Rsync via SSH
Add your server configurations to the `Rakefile` under Rsync deploy config. To deploy with Rsync, be sure your public key is listed in your server's `~/.ssh/authorized_keys` file.
ssh_user = "user@domain.com"
document_root = "~/website.com/"
deploy_default = "rsync"
Now if you run `rake deploy` in your terminal, your `public` directory will be synced to your server's document root.
### Deploying to Github Pages
To setup deployment, you'll want to clone your target repository into the `_deploy` directory in your Octopress project.
If you're using Github project pages, clone the repository for that project, eg `git@github.com:username/project.git`.
If you're using Github user or organization pages, clone the repository `git@github.com:usernem/username.github.com.git`.
# For Github project pages:
git clone git@github.com:username/project.git _deploy
rake config_deploy[gh-pages]
# For Github user/organization pages:
git clone git@github.com:username/username.github.com _deploy
rake config_deploy[master]
# Now to deploy, you'll run
rake deploy
The `config_deploy` rake task takes a branch name as an argument and creates a [new empty branch](http://book.git-scm.com/5_creating_new_empty_branches.html), and adds an initial commit.
This also sets `deploy_default = "push"` in your `_config.yml` and prepares your branch for easy deployment. The `rake deploy` task copies the generated blog from the `public` directory to the `_deploy` directory, adds new files, removes old files, sets a commit message, and pushes to Github.
Github will queue your site for publishing (which usually occurs instantly or within minutes if it's your first commit).
### Deploying to a Subdirectory (Github Project Pages does this)
If you're deploying to a subdirectory on your site, or if you're using Github's project pages, make sure you set up your urls correctly in your configs.
You can do this *almost* automatically:
rake set_root_dir[your/path]
# To go back to publishing to the document root
rake set_root_dir[/]
Then update your `_config.yml` and `Rakefile` as follows:
# _config.yml
url: http://yoursite.com/your/path
# Rakefile (if deploying with rsync)
document_root = "~/yoursite.com/your/path"
To manually configure deployment to a subdirectory, you'll change `_config.yml`, `config.rb` and `Rakefile`.
Here's an example for deploying the Octopress website to Github Project Pages:
# _config.yml
destination: public/octopress
url: http://imathis.github.com/octopress
subscribe_rss: /octopress/atom.xml
root: /octopress
# config.rb - for Compass & Sass
http_path = "/octopress"
http_images_path = "/octopress/images"
http_fonts_path = "/octopress/fonts"
css_dir = "public/octopress/stylesheets"
# Rakefile
public_dir = "public/octopress"
# If deploying with rsync, update your Rakefile path
document_root = "~/yoursite.com/your/path"
For more info on deploying a Jekyll Blog, checkout [Jekyll's deployment wiki page](https://github.com/mojombo/jekyll/wiki/Deployment).
[Next, Theming & Customization »](/docs/theming)