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

3.3 KiB

layout title date sidebar footer
page Deploying Octopress July 18 2011 false false

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 generate   # If you haven't generated your blog yet
    rake deploy     # Syncs your blog via ssh

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 user or organization pages, clone the repository git@github.com:username/username.github.com.git.

With Github User/Organization pages

    git clone git@github.com:username/username.github.com _deploy
    rake config_deploy[master]

With Github Project pages (gh-pages)

    git clone git@github.com:username/project.git _deploy
    rake config_deploy[gh-pages]

The config_deploy rake task takes a branch name as an argument and creates a new empty branch, 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).

Now you should be set up to deploy, just run

    rake generate   # If you haven't generated your blog yet
    rake deploy     # Pushes your generated blog to Github

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"