This is the multi-page printable view of this section. Click here to print.
Architecture
The architecture of the Neurodesk ecosystem
1 - Neurodesktop Release Process
A description of what to do to create new release of our Neurodesktop
- Check if the last automated build ran OK: https://github.com/NeuroDesk/neurodesktop/actions
- Run this build date and test if everything is ok and no regression happened
- Check what changes where made since the last release: https://github.com/NeuroDesk/neurodesktop/commits/main
- Summarize the main changes and copy this to the Release History: https://www.neurodesk.org/docs/neurodesktop/release-history/
- Change the version of the latest desktop in https://github.com/NeuroDesk/neurodesk.github.io/blob/main/data/neurodesktop.toml
- Commit all changes
- Tweet a quick summary of the changes and announce new version: https://masto.ai/@Neurodesk
2 - Neurodesk Architecture
The architecture of the Neurodesk ecosystem
Layers
Neurodesktop: https://github.com/NeuroDesk/neurodesktop
- docker container with interface modifications
- contains tools necessary to manage workflows in sub-containers: vscode, git
- CI: builds docker image and tests if it runs; tests if CVMFS servers are OK before deployment
- CD: pushes images to github & docker registry
Neurocommand: https://github.com/NeuroDesk/neurocommand
- script to install and manage multiple containers using transparent singularity on any linux system
- this repo also handles the creation of menu entries in a general form applicable to different desktop environments
- this repo can be re-used in other projects like CVL and when installing it on bare-metal workstations
- CI: tests if containers can be installed
- CD: this repo checks if containers requested in apps.json file are available on object storage and if not converts the singularity containers based on the docker containers and uploads them to object storage
transparent-singularity: https://github.com/NeuroDesk/transparent-singularity
- script to install neuro-sub-containers, installers are called by neurocommand
- this repo provides a way of using our containers on HPCs for large scale processing of the pipelines (including the support of SLURM and other job schedulers)
- CI: test if exposing of binaries from container works
Neurocontainers: https://github.com/NeuroDesk/neurocontainers
- build scripts for neuro-sub-containers
- CI: building and testing of containers
- CD: pushing containers to github and dockerhub registry
Neurodocker: https://github.com/NeuroDesk/neurodocker
- fork of neurodocker project
- provides recipes for our containers built
- we are providing pull requests back of recipes
- CI: handled by neurodocker - testing of generating container recipes
3 - Neurodesktop Dev
Testing the latest dev version of Neurodesktop
Warning
For development and testing only. Not recommended for production useBuilding neurodesktop-dev
Dev builds can be triggered by Neurodesk admins from https://github.com/NeuroDesk/neurodesktop/actions/workflows/build-neurodesktop-dev.yml
Running latest neurodesktop-dev
Linux
docker pull vnmd/neurodesktop-dev:latest
sudo docker run \
--shm-size=1gb -it --cap-add SYS_ADMIN \
--security-opt apparmor:unconfined --device=/dev/fuse \
--name neurodesktop-dev \
-v ~/neurodesktop-storage:/neurodesktop-storage \
-e HOST_UID="$(id -u)" -e HOST_GID="$(id -g)" \
-p 8080:8080 -h neurodesktop-dev \
vnmd/neurodesktop-dev:latest
Windows
docker pull vnmd/neurodesktop-dev:latest
docker run --shm-size=1gb -it --cap-add SYS_ADMIN --security-opt apparmor:unconfined --device=/dev/fuse --name neurodesktop -v C:/neurodesktop-storage:/neurodesktop-storage -p 8080:8080 -h neurodesktop-dev vnmd/neurodesktop-dev:latest