diff --git a/.gitignore b/.gitignore
index b41831908..5bec99de0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,5 @@ _junk/
rclone
rclonetest/rclonetest
upload
+build
+rclone.org/public
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..056d45a92
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,22 @@
+rclone:
+ go build
+
+clean:
+ go clean
+ find . -name \*~ | xargs -r rm -f
+ rm -rf build rclone.org/public
+
+website:
+ cd rclone.org && hugo
+
+upload_website: website
+ ./rclone sync rclone.org/public memstore://www-rclone-org
+
+upload:
+ rsync -avz build/ www.craig-wood.com:public_html/pub/rclone/
+
+cross:
+ ./cross-compile
+
+serve:
+ cd rclone.org && hugo server -v -w
diff --git a/graphics/cover.jpg b/graphics/cover.jpg
new file mode 100644
index 000000000..d51f8c4c8
Binary files /dev/null and b/graphics/cover.jpg differ
diff --git a/graphics/rclone.png b/graphics/rclone.png
new file mode 100644
index 000000000..95e5be1bc
Binary files /dev/null and b/graphics/rclone.png differ
diff --git a/graphics/rclone.xcf b/graphics/rclone.xcf
new file mode 100644
index 000000000..1bf2567d8
Binary files /dev/null and b/graphics/rclone.xcf differ
diff --git a/rclone.org/config.yaml b/rclone.org/config.yaml
new file mode 100644
index 000000000..d500e7b63
--- /dev/null
+++ b/rclone.org/config.yaml
@@ -0,0 +1,5 @@
+indexes:
+ tag: 'tags'
+ group: 'groups'
+ menu: 'menu'
+baseurl: 'http://rclone.org'
diff --git a/rclone.org/content/about.md b/rclone.org/content/about.md
new file mode 100644
index 000000000..bfb4f8979
--- /dev/null
+++ b/rclone.org/content/about.md
@@ -0,0 +1,38 @@
+---
+title: "Rclone"
+description: "rclone syncs files to and from Google Drive, S3, Swift and Cloudfiles."
+type: page
+date: "2014-03-19"
+groups: ["about"]
+---
+
+Rclone
+======
+
+[](http://rclone.org/)
+
+Sync files and directories to and from
+
+ * Google Drive
+ * Amazon S3
+ * Openstack Swift / Rackspace cloud files / Memset Memstore
+ * The local filesystem
+
+Features
+
+ * MD5SUMs checked at all times for file integrity
+ * Timestamps preserved on files
+ * Partial syncs supported on a whole file basis
+ * Copy mode to just copy new/changed files
+ * Sync mode to make a directory identical
+ * Check mode to check all MD5SUMs
+ * Can sync to and from network, eg two different Drive accounts
+
+Links
+
+ * [Home page](http://rclone.org/)
+ * [Github project page for source and more instructions](http://github.com/ncw/rclone)
+ * Google+ page
+ * [Downloads](http://www.craig-wood.com/nick/pub/rclone/)
+
+rclone is brought to you by Nick Craig-Wood
diff --git a/rclone.org/content/contact.md b/rclone.org/content/contact.md
new file mode 100644
index 000000000..30a4bfcbe
--- /dev/null
+++ b/rclone.org/content/contact.md
@@ -0,0 +1,12 @@
+---
+title: "Contact"
+description: "Contact the rclone project"
+date: "2014-03-19"
+---
+
+Contact the rclone project
+
+ * [Github project page for source and reporting bugs](http://github.com/ncw/rclone)
+ * Google+ page for general comments
+
+Or email [Nick Craig-Wood](mailto:nick@craig-wood.com)
diff --git a/rclone.org/content/docs.md b/rclone.org/content/docs.md
new file mode 100644
index 000000000..d32ef7c18
--- /dev/null
+++ b/rclone.org/content/docs.md
@@ -0,0 +1,152 @@
+---
+title: "Documentation"
+description: "Rclone Documentation"
+date: "2014-03-19"
+---
+
+Install
+-------
+
+Rclone is a Go program and comes as a single binary file.
+
+[Download the relevant binary.](http://www.craig-wood.com/nick/pub/rclone/)
+
+Or alternatively if you have Go installed use
+
+ go get github.com/ncw/rclone
+
+and this will build the binary in `$GOPATH/bin`.
+
+You can then modify the source and submit patches.
+
+Configure
+---------
+
+First you'll need to configure rclone. As the object storage systems
+have quite complicated authentication these are kept in a config file
+`.rclone.conf` in your home directory by default. (You can use the
+`-config` option to choose a different config file.)
+
+The easiest way to make the config is to run rclone with the config
+option:
+
+ rclone config
+
+See below for detailed instructions for
+
+ * [Google drive](/drive/)
+ * [Amazon S3](/s3/)
+ * [Swift / Rackspace Cloudfiles / Memset Memstore](/swift/)
+ * [Local filesystem](/local/)
+
+Usage
+-----
+
+Rclone syncs a directory tree from one storage system to another.
+
+Its syntax is like this
+
+ Syntax: [options] subcommand
+
+Source and destination paths are specified by the name you gave the
+storage system in the config file then the sub path, eg
+"drive:myfolder" to look at "myfolder" in Google drive.
+
+You can define as many storage paths as you like in the config file.
+
+Subcommands
+-----------
+
+ rclone copy source:path dest:path
+
+Copy the source to the destination. Doesn't transfer
+unchanged files, testing first by modification time then by
+MD5SUM. Doesn't delete files from the destination.
+
+ rclone sync source:path dest:path
+
+Sync the source to the destination. Doesn't transfer
+unchanged files, testing first by modification time then by
+MD5SUM. Deletes any files that exist in source that don't
+exist in destination. Since this can cause data loss, test
+first with the -dry-run flag.
+
+ rclone ls [remote:path]
+
+List all the objects in the the path.
+
+ rclone lsd [remote:path]
+
+List all directoryes/objects/buckets in the the path.
+
+ rclone mkdir remote:path
+
+Make the path if it doesn't already exist
+
+ rclone rmdir remote:path
+
+Remove the path. Note that you can't remove a path with
+objects in it, use purge for that.
+
+ rclone purge remote:path
+
+Remove the path and all of its contents.
+
+ rclone check source:path dest:path
+
+Checks the files in the source and destination match. It
+compares sizes and MD5SUMs and prints a report of files which
+don't match. It doesn't alter the source or destination.
+
+General options:
+
+```
+ --checkers=8: Number of checkers to run in parallel.
+ --transfers=4: Number of file transfers to run in parallel.
+ --config="~/.rclone.conf": Config file.
+ -n, --dry-run=false: Do a trial run with no permanent changes
+ --modify-window=1ns: Max time diff to be considered the same
+ -q, --quiet=false: Print as little stuff as possible
+ --stats=1m0s: Interval to print stats
+ -v, --verbose=false: Print lots more stuff
+```
+
+Developer options:
+
+```
+ --cpuprofile="": Write cpu profile to file
+```
+
+License
+-------
+
+This is free software under the terms of MIT the license (check the
+COPYING file included in this package).
+
+Bugs
+----
+
+ * Doesn't sync individual files yet, only directories.
+ * Drive: Sometimes get: Failed to copy: Upload failed: googleapi: Error 403: Rate Limit Exceeded
+ * quota is 100.0 requests/second/user
+ * Empty directories left behind with Local and Drive
+ * eg purging a local directory with subdirectories doesn't work
+
+Contact and support
+-------------------
+
+The project website is at:
+
+ * https://github.com/ncw/rclone
+
+There you can file bug reports, ask for help or contribute patches.
+
+Authors
+-------
+
+ * Nick Craig-Wood
+
+Contributors
+------------
+
+ * Your name goes here!
diff --git a/rclone.org/content/drive.md b/rclone.org/content/drive.md
new file mode 100644
index 000000000..ce0dd0431
--- /dev/null
+++ b/rclone.org/content/drive.md
@@ -0,0 +1,73 @@
+---
+title: "Google drive"
+description: "Rclone docs for Google drive"
+date: "2014-03-19"
+---
+
+Paths are specified as `drive:path`
+
+Drive paths may be as deep as required, eg
+`drive:directory/subdirectory`.
+
+The initial setup for drive involves getting a token from Google drive
+which you need to do in your browser. `rclone config` walks you
+through it.
+
+Here is an example of how to make a remote called `remote`. First run:
+
+ rclone config
+
+This will guide you through an interactive setup process:
+
+```
+n) New remote
+d) Delete remote
+q) Quit config
+e/n/d/q> n
+name> remote
+What type of source is it?
+Choose a number from below
+ 1) swift
+ 2) s3
+ 3) local
+ 4) drive
+type> 4
+Google Application Client Id - leave blank to use rclone's.
+client_id>
+Google Application Client Secret - leave blank to use rclone's.
+client_secret>
+Remote config
+Go to the following link in your browser
+https://accounts.google.com/o/oauth2/auth?access_type=&approval_prompt=&client_id=XXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=urn%3XXXXX%3Awg%3Aoauth%3XX.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state
+Log in, then type paste the token that is returned in the browser here
+Enter verification code> X/XXXXXXXXXXXXXXXXXX-XXXXXXXXX.XXXXXXXXX-XXXXX_XXXXXXX_XXXXXXX
+--------------------
+[remote]
+client_id =
+client_secret =
+token = {"AccessToken":"xxxx.x.xxxxx_xxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","RefreshToken":"1/xxxxxxxxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxx","Expiry":"2014-03-16T13:57:58.955387075Z","Extra":null}
+--------------------
+y) Yes this is OK
+e) Edit this remote
+d) Delete this remote
+y/e/d> y
+```
+
+You can then use it like this,
+
+List directories in top level of your drive
+
+ rclone lsd remote:
+
+List all the files in your drive
+
+ rclone ls remote:
+
+To copy a local directory to a drive directory called backup
+
+ rclone copy /home/source remote:backup
+
+Modified time
+-------------
+
+Google drive stores modification times accurate to 1 ms.
diff --git a/rclone.org/content/local.md b/rclone.org/content/local.md
new file mode 100644
index 000000000..0f89d3969
--- /dev/null
+++ b/rclone.org/content/local.md
@@ -0,0 +1,19 @@
+Local Filesystem
+----------------
+
+Local paths are specified as normal filesystem paths, eg `/path/to/wherever`, so
+
+ rclone sync /home/source /tmp/destination
+
+Will sync `/home/source` to `/tmp/destination`
+
+These can be configured into the config file for consistencies sake,
+but it is probably easier not to.
+
+Modified time
+-------------
+
+We read and write the modified time using an accuracy determined by
+the OS. Typically this is 1ns on Linux, 10 ns on Windows and 1 Second
+on OS X.
+
diff --git a/rclone.org/content/s3.md b/rclone.org/content/s3.md
new file mode 100644
index 000000000..ba6db56e1
--- /dev/null
+++ b/rclone.org/content/s3.md
@@ -0,0 +1,109 @@
+---
+title: "Amazon S3"
+description: "Rclone docs for Amazon S3"
+date: "2014-03-19"
+---
+
+Paths are specified as `remote:bucket` or `remote:`
+
+S3 paths can't refer to subdirectories within a bucket (yet).
+
+So to copy a local directory to a s3 container called backup
+
+ rclone sync /home/source s3:backup
+
+Here is an example of making an s3 configuration. First run
+
+ rclone config
+
+This will guide you through an interactive setup process.
+
+```
+No remotes found - make a new one
+n) New remote
+q) Quit config
+n/q> n
+name> remote
+What type of source is it?
+Choose a number from below
+ 1) swift
+ 2) s3
+ 3) local
+ 4) drive
+type> 2
+AWS Access Key ID.
+access_key_id> accesskey
+AWS Secret Access Key (password).
+secret_access_key> secretaccesskey
+Endpoint for S3 API.
+Choose a number from below, or type in your own value
+ * The default endpoint - a good choice if you are unsure.
+ * US Region, Northern Virginia or Pacific Northwest.
+ * Leave location constraint empty.
+ 1) https://s3.amazonaws.com/
+ * US Region, Northern Virginia only.
+ * Leave location constraint empty.
+ 2) https://s3-external-1.amazonaws.com
+[snip]
+ * South America (Sao Paulo) Region
+ * Needs location constraint sa-east-1.
+ 9) https://s3-sa-east-1.amazonaws.com
+endpoint> 1
+Location constraint - must be set to match the Endpoint.
+Choose a number from below, or type in your own value
+ * Empty for US Region, Northern Virginia or Pacific Northwest.
+ 1)
+ * US West (Oregon) Region.
+ 2) us-west-2
+[snip]
+ * South America (Sao Paulo) Region.
+ 9) sa-east-1
+location_constraint> 1
+--------------------
+[remote]
+access_key_id = accesskey
+secret_access_key = secretaccesskey
+endpoint = https://s3.amazonaws.com/
+location_constraint =
+--------------------
+y) Yes this is OK
+e) Edit this remote
+d) Delete this remote
+y/e/d> y
+Current remotes:
+
+Name Type
+==== ====
+remote s3
+
+e) Edit existing remote
+n) New remote
+d) Delete remote
+q) Quit config
+e/n/d/q> q
+```
+
+This remote is called `remote` and can now be used like this
+
+See all buckets
+
+ rclone lsd remote:
+
+Make a new bucket
+
+ rclone mkdir remote:bucket
+
+List the contents of a bucket
+
+ rclone ls remote:bucket
+
+Sync `/home/local/directory` to the remote bucket, deleting any excess
+files in the bucket.
+
+ rclone sync /home/local/directory remote:bucket
+
+Modified time
+-------------
+
+The modified time is stored as metadata on the object as
+`X-Amz-Meta-Mtime` as floating point since the epoch accurate to 1 ns.
diff --git a/rclone.org/content/swift.md b/rclone.org/content/swift.md
new file mode 100644
index 000000000..829260593
--- /dev/null
+++ b/rclone.org/content/swift.md
@@ -0,0 +1,91 @@
+---
+title: "Swift"
+description: "Swift"
+date: "2014-03-19"
+---
+
+Swift refers to [Openstack Object Storage](http://www.openstack.org/software/openstack-storage/).
+Commercial implementations of that being:
+
+ * [Rackspace Cloud Files](http://www.rackspace.com/cloud/files/)
+ * [Memset Memstore](http://www.memset.com/cloud/storage/)
+
+Paths are specified as `remote:container` or `remote:`
+
+Here is an example of making a swift configuration. First run
+
+ rclone config
+
+This will guide you through an interactive setup process.
+
+```
+No remotes found - make a new one
+n) New remote
+q) Quit config
+n/q> n
+name> remote
+What type of source is it?
+Choose a number from below
+ 1) swift
+ 2) s3
+ 3) local
+ 4) drive
+type> 1
+User name to log in.
+user> user_name
+API key or password.
+key> password_or_api_key
+Authentication URL for server.
+Choose a number from below, or type in your own value
+ * Rackspace US
+ 1) https://auth.api.rackspacecloud.com/v1.0
+ * Rackspace UK
+ 2) https://lon.auth.api.rackspacecloud.com/v1.0
+ * Rackspace v2
+ 3) https://identity.api.rackspacecloud.com/v2.0
+ * Memset Memstore UK
+ 4) https://auth.storage.memset.com/v1.0
+ * Memset Memstore UK v2
+ 5) https://auth.storage.memset.com/v2.0
+auth> 1
+Remote config
+--------------------
+[remote]
+user = user_name
+key = password_or_api_key
+auth = https://auth.api.rackspacecloud.com/v1.0
+--------------------
+y) Yes this is OK
+e) Edit this remote
+d) Delete this remote
+y/e/d> y
+```
+
+This remote is called `remote` and can now be used like this
+
+See all containers
+
+ rclone lsd remote:
+
+Make a new container
+
+ rclone mkdir remote:container
+
+List the contents of a container
+
+ rclone ls remote:container
+
+Sync `/home/local/directory` to the remote container, deleting any
+excess files in the container.
+
+ rclone sync /home/local/directory remote:container
+
+Modified time
+-------------
+
+The modified time is stored as metadata on the object as
+`X-Object-Meta-Mtime` as floating point since the epoch accurate to 1
+ns.
+
+This is a defacto standard (used in the official python-swiftclient
+amongst others) for storing the modification time for an object.
diff --git a/rclone.org/layouts/_default/indexes.html b/rclone.org/layouts/_default/indexes.html
new file mode 100644
index 000000000..41de312a7
--- /dev/null
+++ b/rclone.org/layouts/_default/indexes.html
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ Welcome to rclone
+
+
+
+
+
+