--- layout: page title: "Deploying with rsync" date: 2011-09-10 17:53 sidebar: false footer: 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. ``` ruby ssh_user = "user@domain.com" document_root = "~/website.com/" rsync_delete = true deploy_default = "rsync" ``` Now if you run ``` sh 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: ```sh 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](https://github.com/repositories/new) or [host your own](#self_hosted_git) and then do this. ```sh # 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 ``` {% render_partial docs/deploying/_self_hosted_git.markdown %} ## 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](/docs/deploying/subdir).