Infrastructure and code for the DANDI Archive.
Folders in this repo:
ansible
: Ansible code for deployinggirder-dandi-archive
.docker
: Docker files for building and deploying the application in Docker.girder-dandi-archive
: A Girder plugin which adds the custom endpoints for the DANDI Archive.test
: End-to-end tests for the entire application.web
: The web application front-end, based on Vue.js.
-
Ensure MongoDB is running locally.
-
Create a python3 virtual environment:
mkvirtualenv dandiarchive --python=python3
-
Install (in editable mode) the DANDI Archive plugin to Girder:
cd girder-dandi-archive pip install -e . girder build
girder serve
The Girder server will run at http://localhost:8080/
.
-
Create an admin user, using Girder's web client:
- Visit
http://localhost:8080/#?dialog=register
. - The first user created automatically becomes the admin user.
- Visit
-
Create a filesystem assetstore:
- Visit
http://localhost:8080/#assetstores
.
- Visit
# within "girder-dandi-archive"
pip install -r requirements-dev.txt
tox
cd web
yarn install
Ensure the server is running locally (see above), then:
# within "web"
yarn run serve
The web app will be served at http://localhost:8085/
.
# within "web"
yarn run lint
See test/README.md
for end-to-end testing instructions.
Currently there is a docker-compose file which gets the necessary infrastructure up and running for dandiarchive.
In order to get up and running:
cd docker
docker-compose build
docker-compose up
This will spin up 4 containers:
- MongoDB
- Girder
- Vue Web Client
- Provision
Provision container creates a Girder admin user, creates a filesystem assetstore and set necessary CORS settings. Credentials are username: admin, password: letmein.
When the provision container finishes, it will exit. The other three containers will remain running.
After docker-compose up succeeds and the provision container finishes, you should have:
- Girder up and running on port 8091
- Web client up and running on port 8092
- MongoDB container up and running, and only visible to the other docker containers