Octopress

A blogging framework for hackers.

Deploying With Rsync

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/"
rsync_delete = true
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.

Regarding rsync delete

If you choose to delete on sync, rsync will create a 1:1 match. Files will be added, updated and deleted from your deploy directory to mirror your local copy.

If you do not choose to delete:

  • You can store files beneath your site's deploy directory which aren't found in your local version.
  • Files you have removed from your local site must be removed manually from the server.

Excluding files from sync

If you would like to keep your Octopress files synced but also want the convenience of keeping some files or directories on the server without having to mirror them locally, you can exclude them from rsync.

When syncing, rsync can exclude files or directories locally or on the server. Simply add an rsync-exclude file to the root directory of your project like this:

rsync-exclude
some-file.txt
some-directory/
*.mp4

Note: using excludes will prevent rsync from uploading local files, or if the delete option is specified, it will prevent rsync from deleting excluded items on the server.

Version control

You'll want to keep your blog source in a remote git repository, so either set up a Github repository or host your own and then do this.

# Since you cloned Octopress, you'll need to change the origin remote
git remote rename origin octopress
git remote add origin (your repository url)
# set your new origin as the default branch
git config branch.master.remote origin

Host Your Own Remote Repository

If you want to set up a private git repository on your own server, here's how you'd do it. You'll need SSH access to follow along.

ssh user@host.com
mkdir -p git/octopress.git
cd git/octopress.git
git init --bare
pwd # print the working directory, you'll need it below.
logout

The url for your remote repository is ssh://user@host.com/(output of pwd above)

Deploying to a subdirectory

If for you wanted to host an Octopress blog at http://yoursite.com/blog/ you would need to configure Octopress for deploying to a subdirectory.