Skip to content

Data Storage

How your data is stored in Neurodesk depends on where you are running it:

  • Local (Neurodesk App on your own machine): Storage is directly linked to your host computer through the /neurodesktop-storage directory. Your data persists for as long as you keep it: nothing is automatically deleted. The amount of available space depends on your local disk setup.

  • Play (Neurodesk App cloud-hosted): Each user is allocated a fixed amount of storage space. You can check how much of your allocation you are using from within the Play environment. Be aware that data on Play is deleted after 30 days of inactivity, so make sure to back up any important files using the cloud storage or data transfer methods described below.

  • HPC (high-performance computing): Storage depends entirely on your institution and how Neurodesk has been set up by your system administrators. Typically, Neurodesk will be configured to bind-mount your institution’s existing storage infrastructure (e.g. scratch, group, or project directories).

For all environments, we recommend keeping a copy of important data in an external location. The sections below describe several methods for transferring data in and out of Neurodesk.

Uploading files

You can drag-and-drop files into the browser window to get files into the Neurodesktop desktop. This will then start a file upload:

Neurodesktop desktop showing files being uploaded via drag-and-drop, with the File Transfers panel visible in the bottom-right corner

Downloading files

To download files from the desktop you will need to open the Guacamole settings by pressing Ctrl+Alt+Shift (Control+Command+Shift on Mac). This will open a menu on the side:

Guacamole side menu opened with CTRL-ALT-SHIFT, showing connection settings and the Shared Drive option

where you can click on “Shared Drive”:

Guacamole Shared Drive panel listing files available for download

A click (or double click on Mac) on the file will start the download.

You can browse into folders in the shared drive by clicking (double clicking on Mac) on them. To get back to the base of the shared drive, press on the drive icon in the top left of the side menu (just below the “Shared Drive” title).

To close the side menu, press Ctrl+Alt+Shift once more (Control+Command+Shift on Mac).

Note that it is only possible to upload or download one file at a time through this interface. If you have multiple files in a directory we recommend zipping the directory and then transferring one zip archive:

Terminal window
zip files.zip files/

When running Neurodesktop locally, there are two storage locations to be aware of:

  • Home directory (/home/jovyan): This is the Linux filesystem inside the Docker container. Files saved here will persist across container restarts (thanks to a Docker volume), but will be lost if you remove the container or its volumes. Think of this as your working space, not your safe storage.

  • Neurodesktop storage (/neurodesktop-storage): This is a direct link to a folder on your host computer. Files saved here live on your actual filesystem, outside of Docker. They will persist regardless of what happens to the container.

LocationPath
Inside Neurodesk/neurodesktop-storage
Host machine (macOS/Linux)~/neurodesktop-storage
Host machine (Windows)C:/neurodesktop-storage

Mounting external storage on your host computer

Section titled “Mounting external storage on your host computer”

The -v C:/neurodesktop-storage:/neurodesktop-storage part of the docker command links the directory neurodesktop-storage on the C drive of your Windows computer to /neurodesktop-storage inside the desktop environment. Everything you store in there will be available inside the desktop and on the host computer.

You can also mount additional directories by adding another -v parameter set (e.g. -v D:/moredata:/data), which will mount the directory moredata from your D drive to /data inside Neurodesktop.

If you are using the Neurodesk App, you can set an additional storage location through the settings.

If you are starting Neurodesk through the command line, here is an example for Windows adding another storage directory:

Terminal window
docker run --shm-size=1gb -it --privileged --user=root --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -v D:/moredata:/data -p 8888:8888 -e NEURODESKTOP_VERSION=2026-07-11 vnmd/neurodesktop:2026-07-11

Another way to get your data into Neurodesktop is to use a cloud storage provider like Dropbox, OneDrive, OwnCloud, Nextcloud or more general tools like Rclone or davfs2. Another good option is to use Globus for large amounts of data.

Under the menu item “Accessories” you can find “Nextcloud” and “ownCloud” desktop sync clients that you can configure with your cloud service accounts.

Another option is to directly mount WebDAV storage. Here is an example of how to mount OwnCloud storage into Neurodesktop:

Terminal window
sudo mount -t davfs https://yourOwnCloudInstance.com/plus/remote.php/webdav/ /data/

It then asks you for a username and password, which you can generate in the settings: yourOwnCloudInstance/plus/settings/personal?sectionid=security.

Rclone is a command-line tool that enables interaction with various cloud services. Here is an example of how to set up Rclone with an OwnCloud account:

  • Start the configuration in a terminal window: rclone config
  • Create a new remote: n
  • Provide a name for the remote: OwnCloud
  • For the “Storage” option choose: webdav
  • As “url” set: https://yourOwnCloudInstance.com/plus/remote.php/webdav/
  • As “vendor” set OwnCloud: 2
  • Set your OwnCloud username after generating an access token at yourOwnCloudInstance/plus/settings/personal?sectionid=security
  • Choose to type in your own password: y
  • Enter the password / token from the OwnCloud App passwords page and confirm it again
  • Leave blank the bearer_token: press Enter
  • No advanced config necessary: press Enter
  • Accept the configuration: press Enter
  • Quit the config: q
  • Download data: rclone copy --progress --transfers 8 OwnCloud:/raw-data-for-science-paper .
  • Upload data to OwnCloud: rclone copy --progress --transfers 8 . OwnCloud:/data-processed

We also provide the Globus client, so you can transfer large amounts of data between Globus collections and Neurodesktop.

Start the setup from a terminal in the Neurodesktop environment using RDP or VNC:

Terminal window
ml globus
globusconnectpersonal -setup

The terminal displays a login URL. Copy the URL, open it in a browser, and sign in to your Globus account.

Review the requested permissions, enter a label that will help you identify this authorization later, and select Allow:

Globus consent page listing the permissions requested by Globus Connect Personal Setup

Globus then displays a single-use Native App Authorization Code. Copy this code; it is valid for 10 minutes:

Globus page displaying a Native App Authorization Code

Return to the Neurodesktop terminal, paste the code at the Enter the auth code prompt, and press Enter. When prompted, enter a descriptive endpoint name, such as NeurodesktopApp:

Neurodesktop terminal prompting for the Globus authorization code and endpoint name

After setup completes, start the Globus Connect Personal interface:

Terminal window
globusconnectpersonal -gui

Select Connect and wait for the Globus Online status to change to Connected:

Globus Connect Personal window with the Connect button highlighted

To choose which Neurodesktop directories Globus can access, open File → Preferences:

Globus Connect Personal File menu with Preferences highlighted

Use the + button to add each directory, then select the Shared and Write permissions appropriate for each path. Select Save when the access paths are configured:

Globus Access Path Configuration window showing shared and writable directory options and the Save button

Open the Globus file manager and select the collection with the endpoint name you entered during setup. You can now browse the shared paths and transfer files between Neurodesktop and another Globus collection:

Globus file manager displaying the NeurodesktopApp collection and its shared home directory

It is theoretically possible to mount an SSH target inside Neurodesktop, but it’s not a very reliable way of mounting storage:

Terminal window
sudo mkdir /mnt/data_mount
sudo chmod a+rwx /mnt/data_mount
sshfs -o allow_root USER@TARGET_HOST:TARGET_PATH /mnt/data_mount

A better option is to use scp and copy data from an SSH endpoint:

Terminal window
scp /neurodesk/myfile user@remoteserver:/data/

An alternative is to mount the SSHFS target into a parent directory on your local machine or VM and then use the -v option in the docker run command to bind the parent directory of the SSHFS mount.

For example, on a local Linux machine or VM:

Terminal window
sshfs -o allow_root USER@TARGET_HOST:TARGET_PATH/MyData SOURCE_PATH/SSHFS_Mounts/MyData

Then add the following line to the docker run command when starting Neurodesktop (note the rshared flag):

Terminal window
-v /SSHFS_Mounts:/data:rshared \