Nuxeo Drive enables the synchronization of folders or workspaces from the Nuxeo Platform with local folder on your computer.
Switch branches/tags
release-5.9.5 release-5.9.4 release-5.9.3 release-5.9.2 release-5.9.1 release-5.8.0-HF25 release-5.8.0-HF24 release-5.8.0-HF23 release-5.8.0-HF22 release-5.8.0-HF21 release-5.8.0-HF20 release-5.8.0-HF19 release-5.8.0-HF18 release-5.8.0-HF17 release-5.8.0-HF16 release-5.8.0-HF15 release-5.8.0-HF14 release-5.8.0-HF13 release-5.8.0-HF12 release-5.8.0-HF11 release-5.8.0-HF10 release-5.8.0-HF09 release-5.8.0-HF08 release-5.8.0-HF07 release-5.8.0-HF06 release-5.8.0-HF05 release-5.8.0-HF04 release-5.8.0-HF03 release-5.8.0-HF02 release-5.8.0-HF01 release-5.8 release-5.7.3 release-5.7.2.1 release-5.7.2 release-5.7.2-I20130724_0116 release-5.7.1 release-5.7-I20130610_0116 release-5.7-I20130529_0116 release-5.7-I20130313_0115 release-5.7-I20130228_0116 release-5.7-I20130227_0116 release-5.6.0-I20130503_1653 release-5.6.0-I20130419_1536 release-5.6.0-HF39 release-5.6.0-HF38 release-5.6.0-HF37 release-5.6.0-HF36 release-5.6.0-HF35 release-5.6.0-HF34 release-5.6.0-HF33 release-5.6.0-HF32 release-5.6.0-HF31 release-5.6.0-HF30 release-5.6.0-HF29 release-5.6.0-HF28 release-5.6.0-HF27 release-5.6.0-HF26 release-5.6.0-HF25 release-5.6.0-HF24 release-5.6.0-HF23 release-5.6.0-HF22 release-5.6.0-HF21 release-5.6.0-HF20 release-5.6.0-HF19 release-5.6.0-HF18 release-5.6.0-HF17 release-5.6.0-HF12 release-5.6.0-HF11 release-5.6.0-HF10 release-3.1.1 release-3.1.0 release-3.0.7 release-3.0.6 release-3.0.5 release-3.0.4 release-3.0.3 release-3.0.2 release-3.0.0 release-2.5.9 release-2.5.8 release-2.5.7 release-2.5.6 release-2.5.5 release-2.5.4 release-2.5.3 release-2.5.2 release-2.5.1 release-2.4.8 release-2.4.7 release-2.4.6 release-2.4.5 release-2.4.4 release-2.4.3 release-2.4.2 release-2.4.1 release-2.4.0 release-2.2.323 release-2.2.227 release-2.1.1221 release-2.1.1130
Nothing to show
Clone or download
BoboTiG NXDRIVE-1281: Tests: Do not install tests requirements when calling t…
…he --tests argument

On Windows, removed -direct argument and added -install to have
consistent behavior on all OSes.
Latest commit c70c077 Sep 20, 2018

README.md

Nuxeo Drive - Desktop Synchronization Client for Nuxeo

This is an ongoing development project for desktop synchronization of local folders with remote Nuxeo workspaces.

Watch this screencast to get a 6 min overview of this project.

See USERDOC/Nuxeo Drive for complete up-to-date documentation.

Note: this documentation follows the Drive version of the master branch, which could evolve rapidly. To see the documentation of a given Drive release, use this kind of link:

# For Drive 2.1.113 go to:
https://github.com/nuxeo/nuxeo-drive/release-2.1.113/README.md

License

The source code of Nuxeo Drive is available under the GNU Lesser General Public License v2.1 described in LICENSE.txt.

Install

Installing Nuxeo Drive requires two components: a server addon for the Nuxeo Platform and a desktop program on the user's computer.

Server-Side Marketplace Package

Getting the Marketplace Package

Stable releases for Nuxeo Drive are available as a Marketplace package from the Nuxeo Online Services portal: https://connect.nuxeo.com/nuxeo/site/marketplace/package/nuxeo-drive

You can also fetch the latest development version of the Marketplace package for the Nuxeo master branch from the Continuous Integration server (use at your own risk).

Installing the Marketplace Package

The Marketplace package can be installed using the Admin Center / Update Center / Local Packages interface of a Nuxeo server.

Alternatively, from the command line:

$NUXEO_HOME/bin/nuxeoctl stop
$NUXEO_HOME/bin/nuxeoctl mp-install --nodeps marketplace-<version>.zip
$NUXEO_HOME/bin/nuxeoctl start

Clients

Debian based Distributions (and Other GNU/Linux Variants) Client

The .deb (or .rpm) package of the client is not yet available. In the meantime you can install it from source code.

Has been reported to work on Ubuntu >= 12.04.

The easiest and safest way to build Drive is to follow the same steps as we do on Jenkins.

xattr

First note that Nuxeo Drive uses Extended file attributes through the xattr Python wrapper.

On FreeBSD and macOS, xattrs are enabled in the default kernel.

On GNU/Linux, depending on the distribution, you may need a special mount option (user_xattr) to enable them for a given file system, e.g.:

sudo mount -o remount,user_xattr /dev/sda3

Python

Nuxeo Drive is officially supported on Python 3.6+.

Install Nuxeo Drive

Install Nuxeo Drive requirements and Nuxeo Drive itself. These are common installation actions, not depending on the package manager:

DRIVE_VERSION=release-3.1.0
pip install -r https://raw.github.com/nuxeo/nuxeo-drive/$DRIVE_VERSION/requirements.txt
pip install git+https://github.com/nuxeo/nuxeo-drive.git@$DRIVE_VERSION

Check that ~/.local/bin is in the PATH and then you can start Drive by typing ndrive in a terminal.

macOS and Windows Desktop Clients

Once the Marketplace package is installed, the macOS/Windows desktop client package can be downloaded from the Home > Nuxeo Drive tab. Administrator rights are required.

You can also fetch the latest development version from the our Continous Integration server.

All the necessary dependencies (such as the Python interpreter and the Qt / PyQt for the client side user interface) are included and will not impact any alternative version you may have already installed on your computer.

Jenkins

To easily manage all dependencies and packaging steps, we created several Jenkinsfiles you can reuse. They are located in the tools/jenikins folder. You may also want to read the docs/deployment.md.

Configuration and Usage

Regular Usage

  1. Launch the Nuxeo Drive program (e.g. from the Start menu under Windows).

    A new icon should open in the system tray and a popup menu should open asking the user for the URL of the Nuxeo server and credentials.

  2. In the Nuxeo web interface, mark workspaces and folders for synchronization.

  3. You can now go to the local Nuxeo Drive folder by using the menu of the system tray icon.

Command-Line Usage (Advanced)

The desktop synchronization client can also be operated from the command-line:

  1. Make sure that the ndrive program is installed in a folder that has been added to the PATH enviroment variable of your OS (on Unix like, it may be ~/.local/bin).

    • You can check by typing the ndrive --help command in a console.

    • If you installed the .dmg package for OSX, the binary is:

    /Applications/Nuxeo\ Drive.app/Contents/MacOS/ndrive
    
    • You can alias it in your bashrc with:
    alias ndrive="/Applications/Nuxeo\ Drive.app/Contents/MacOS/ndrive"
    
  2. Launch Nuxeo Drive (no automatic background mode yet, this will come in future versions):

    ndrive
    

    Under Windows you can launch ndrive.exe instead to avoid keeping the cmd console open while Nuxeo Drive is running instead.

  3. The first time you run this command a dialog window will open asking for the URL of the Nuxeo server and your user credentials.

    Alternatively you can bind to a Nuxeo server with your user credentials using the following commandline arguments:

    ndrive bind-server nuxeo-username https://server:port/nuxeo --password secret
    

    This will create a new folder called Nuxeo Drive in your home folder on GNU/Linux & macOS and under the Documents folder on Windows.

  4. Go to your Nuxeo with your browser, navigate to workspaces or folder where you have permission to create new documents.

  5. Click on the Nuxeo Drive icon right of the title of the folder to treat this folder as a new synchronization root.

    Alternatively you can do this operation from the commandline with:

    ndrive bind-root "/default-domain/workspaces/My Workspace"
    

    You can now create office documents and folders locally or inside Nuxeo and watch them getting synchronized both ways automatically.

For more options, type:

ndrive --help
ndrive subcommand --help

Localization

Crowdin

Translations are managed with Crowdin.

The reference file i18n.json contains the labels and the English values.

Translations for other languages are managed in the nuxeo-drive Crowdin project, e.g. French.

The sync-nuxeo-drive-crowdin Jenkins job triggers a daily synchronization of:

  • The i18n.json reference file to Crowdin. This file can be edited and changes must be pushed to the current repository.
  • The Crowdin translation files to the i18n folder, e.g. i18n-fr.json. These files must never be edited from the source tree.

Reporting Issues

  1. Generate a bug report in the Advanced tab of the Settings panel of the Nuxeo Drive client.

    You can also log TRACE information directly in the console by using the following command-line:

    ndrive --log-level-console=TRACE
    
  2. Create a GitHub issue mentionning the version of the Nuxeo Platform, your operating system name and version (e.g. Windows 7), the steps to reproduce the error and a copy of the logs.

  3. For long running sessions, it is better to dump the debug information in a log file. This can be done with the following command:

    ndrive --log-level-file=TRACE
    

    By default the location of the log file is: ~/.nuxeo-drive/logs/ where ~ stands for the location of the user folder. For instance:

    • Under Windows 7 and 8: C:\Users\username\.nuxeo-drive\logs
    • Under macOS: /Users/username/.nuxeo-drive/logs
    • Under Ubuntu (and other GNU/Linux variants): /home/username/.nuxeo-drive/logs

Roadmap

The backlog is handled on JIRA.

Developing on Nuxeo Drive

See the contributor guide if you wish to actually contribute to the Nuxeo Drive code base.