Skip to content

OpenNeuroOrg/openneuro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CodeCov Coverage Status styled with prettier

About

OpenNeuro is a free and open platform for analyzing and sharing neuroimaging data. It is based around the Brain Imaging Data Structure specification.

Development setup

This project is managed with Lerna and Yarn. To get started, install Yarn and bootstrap the repo.

yarn install

You can run tests with yarn test at the top level of the project. For each package, yarn test --watch will interactively run the tests for changes since the last commit.

Before starting up the services, you will need to copy the example .env.example file to .env and config.env.example to config.env. Many of the values are optional, and most that aren't have default values included in their .example file. Required values below:

  • JWT_SECRET in config.env must be set to a large random string.
  • PERSISTENT_DIR in .env is an absolute path to a directory that will be used to store datasets. This should be a git-annex compatible filesystem and large enough to store some test datasets.

To setup Google as an authentication provider, register a new client app and set the following variables. For development use, you will create a new Google project with oauth credentials for a JavaScript client side app. "Authorized JavaScript Origins" is set to http://localhost:9876 and "Authorized Redirect URIs" is set to http://localhost:9876/crn/auth/google/callback for a site accessible at http://localhost:9876.

# Ending in .apps.googleusercontent.com
GOOGLE_CLIENT_ID=
# 24 character secret string
GOOGLE_CLIENT_SECRET=

podman-compose is used to run a local copy of all required services together.

macOS Development Setup - If you're working on macOS and encounter issues with file watching in Vite, use the following environment variables (in config.env):

CHOKIDAR_USEPOLLING=true
# This will run podman-compose in the background (-d flag is --detach)
podman-compose up -d

For example, you can restart the server container with podman-compose restart server or view logs with podman-compose logs -f --tail=10 server.

Major Components

JavaScript packages are published in the @openneuro npm namespace.

OpenNeuro Command-line utility tool

OpenNeuro supports a CLI tool based on nodejs for uploading and downloading OpenNeuro datasets.