Jungle Disk for Linux
=====================

Jungle Disk for Linux allows you to mount your online storage directly on
the local file system and access your files using any application. It also
includes an automatic backup feature for securing your data offsite.

The executable is called `junglediskdesktop`, and it provides a complete UI
for configuration and status monitoring. It also supports automatic backup,
file synchronization between computers, and can mount your online disks as
virtual drives via FUSE.

Installation
------------
Mounting your Jungle Disk directly via the file system requires that you have
the FUSE filesystem installed, which is typically built into the kernel (or
available as a kernel module) in most modern Linux distributions.

If necessary, consult your Linux distribution documentation or the fuse
project (http://fuse.sourceforge.net) for more details on activating fuse for
your particular installation.

If you installed Jungle Disk from either the .rpm or .deb package, the
application will be installed to `/usr/bin`.  If you're using the tar file,
copy `junglediskdesktop` to any location on your path (e.e., /usr/local/bin).

Configuration
-------------
`junglediskdesktop` has a built-in configuration interface which will be shown
the first time you run the application. After configuring, your settings will
be saved under the `$HOME/.jungledisk` directory.

If you get an error on startup or the application is not running, you may be
missing a required library or the FUSE module may not be loaded. Run
`ldd junglediskdesktop` from the a terminal to see if any libraries are
missing.

To load the FUSE module, you may need torun `modprobe fuse` as root.
Instructions for loading the FUSE module at boot are included below in the
fstab section.

Running as non-root
-------------------
`junglediskdesktop` can be run by non-root users, however if you want to allow
FUSE filesystem mounting you must grant appropriate permissions to:

- /dev/fuse (the fuse device driver)
- /usr/bin/fusermount (the fuse mount helper application)

..as well as the actual mount point

On some distributions you simply need to add the user to the `fuse`
group. Otherwise you may need to run:

```shell
chmod o+rw /dev/fuse
chmod o+rx /usr/bin/fusermount
```

If the `/dev/fuse` device does not exist, try `modprobe fuse`. If the module
is not found, you do not have the FUSE filesystem installed.

Using `junglediskdesktop`
-------------------------
If you have configured automatic mounting, your Jungle Disk will be mounted at
the specified directory (default: ~/jungledisk). You can pass additional FUSE
parameters after the mount point in the configuration. For example:

```
/mnt/jungledisk -o allow_other
```

By default, the jungledisk volume will only be accessible by the user who
mounted it.  If you want to allow root or other users to access the mount you
need to use the FUSE options `-o allow_root` or `-o allow_other`. You may also
need to set the umask, as in `-o umask=007`.

Note that if you are not a root user, you must have permission to use the FUSE
filesystem to mount your Jungle Disk (see above).

Although less reliable than FUSE, you can also access the disk via any WebDAV
client. To connect to your Jungle Disk in KDE, just open a Konquerer window
and `webdav://localhost:2667/`. In GNOME, select "Connect to Server" under the
"Places" menu. Set the Service type to WebDAV (HTTP). Enter "localhost" in the
 server and "2667" for the port.

Using rsync with Jungle Disk
----------------------------
Once running and mounted on the local file system, you can use rsync to easily
copy files to and from your S3 storage. Most rsync options should work fine,
however for best performance we recommend using the --inplace option which
avoids extra renames.

You should also use the `--times (-t)` option so that modification times are
replicated and used to detect changes. If you prefer not to replicate
modification times, you may want to use --checksum (-c) or --size-only to
prevent files from being re-copied on every run.

Sample command lines:

```shell
# copy all files and attributes (times/permissions/owners/links/etc)
rsync -a --inplace /src/* /mnt/jungledisk

# copy only normal files and preserve modification times
rsync -t -r --inplace /src/* /mnt/jungledisk

# copy only file data and use size to determine changes
rsync -r --size-only --inplace /src/* /mnt/jungledisk
```

Troubleshooting
---------------
"junglediskdesktop" logs all errors to the GUI. You can double-click an
error for more details or right-click to copy to the clipboard.

If you encounter an error that you are unable to resolve, please visit our
support site (support.jungledisk.com) where you can view the user manual,
search our knowledge base and forums, or submit a support ticket.

Jungle Disk includes several optimizations to improve performance by
delaying network activity until needed. In most cases this is transparent
to applications.

By default, Jungle Disk also assumes that when an application opens a file
using the `O_WRONLY` mode it intends to write the entire file, so the previous
file contents are not downloaded. This assumption holds true for many, but
not all applications.
