- Notifications
You must be signed in to change notification settings - Fork25
Easiest way to run ChRIS locally.
License
FNNDSC/miniChRIS-docker
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Run a demo ofChRIS.https://chrisproject.org/
ChRIS is an open-source platform facilitating cloud-based medical compute.This repository,miniChRIS-docker, provides a docker-compose based distributionof theChRIS system including:
- ChRIS backend (ChRIS_ultron_backEnd a.k.a. CUBE)
- ChRIS frontend (ChRIS_ui)
- compute controller (pfcon)
- process manager (pman)
- chrisomatic (chrisomatic)
- Orthanc serverhttps://www.orthanc-server.com/
- pfdcm (pfdcm)
- oxidicom (oxidicom)
- hasura (Hasura)
Image tags are pinned to stable versions, sominiChRIS might beout-of-date with development versions ofChRIS components.Please visit the repositories linked above for instructionson how to run development environments for the latest versions.
- miniChRIS-docker is the easiest, fastest, and most portable way to run a "demo" ofChRIS.
- ChRIS_ultron_backEnd runs theChRIS backend in development mode and works with either Docker or Podman.
- fnndsc/charts Helm repository is for production.
Caution
miniChRIS is not suitable for production. It contains hard-coded secrets and insecure defaults.
miniChRIS requires docker-compose version v2.6 or above.
git clone https://github.com/FNNDSC/miniChRIS-docker.gitcd miniChRIS-docker./minichris.shBy default, only some ofChRIS is enabled. Optional components can be started afterwards usingDocker Compose Profiles. e.g.
# start PACS query and retrieve servicesdocker compose --profile pacs up -d# start the Hasura GraphQL engine and database event triggersdocker compose --profile hasura up -d
A default superuserchris:chris1234 is created.
| website | URL |
|---|---|
| ChRIS_ui | http://localhost:8020/ |
| ChRIS admin | http://localhost:8000/chris-admin/ |
| Orthanc | http://localhost:8042/ |
| website | username | password |
|---|---|---|
| ChRIS | chris | chris1234 |
./minichris.sh
./unmake.sh
- Make sure you have
dockeranddocker-composeboth installed and working properly. - Stop all running containers.
- No process should be bound to ports 5005, 5010, 5055, 8000, 8010, 8020, 8021
Trydocker compose down -v --remove-orphans.
Plugins are added toChRIS via the Django admin dashboard.Documentation:https://chrisproject.org/docs/tutorials/upload_plugin#using-the-django-dashboard
Alternatively, plugins can be added declaratively.A common use case would be to run locally built Pythonchris_plugin-basedChRIS plugins. These can be added usingchrisomatic bylisting their (docker) image tags. For example, if your local imagewas built with the taglocalhost/myself/pl-workinprogress by running
docker build -t localhost/myself/pl-workinprogress.The bottom of yourchrisomatic.yml file should look like
plugins: -name:pl-dircopyversion:2.1.1 -name:pl-tsdircopyversion:1.2.1 -name:pl-topologicalcopyversion:0.2 -name:pl-simpledsappversion:2.1.0 -localhost/myself/pl-workinprogress
After modifyingchrisomatic.yml, apply the changes by rerunning./minichris.sh
For details, seehttps://github.com/FNNDSC/chrisomatic#plugins-and-pipelines
miniChRIS can be used as a step in GitHub Actions workflows to spin upan ephemeral instance of the ChRIS backend and its ancillary servicesfor the purpose of end-to-end testing.
on:[push]jobs:hello_world_job:runs-on:ubuntu-latestname:Do nothing usefulsteps: -name:setup CUBEid:cubeuses:FNNDSC/miniChRIS-docker@master -name:make a requestrun:curl -u chris:chris1234 http://localhost:8000/api/v1/
plugins should be a whitespace-separated list of plugin identifiers.Lines starting with# are treated as comments and ignored.Plugin identifiers are interpreted bychrisomatic as described here:https://github.com/fnndsc/chrisomatic#plugins-and-pipelines
on:[push]jobs:hello_world_job:runs-on:ubuntu-latestname:Do nothing usefulsteps: -name:setup CUBEid:cubeuses:FNNDSC/miniChRIS-docker@masterwith:plugins:| https://chrisstore.co/api/v1/plugins/157/ pl-lung_cnp ghcr.io/fnndsc/pl-re-sub:1.1.1
Suppose you want to run a test which needs theCUBE server, database, and oxidicom, but you don't need to be able to run plugins.You can omit the workers and pfcon from startup, which can improve startup speeds and reduce memory usage.
on:[push]jobs:hello_world_job:runs-on:ubuntu-latestname:Do nothing usefulsteps: -name:setup CUBEid:cubeuses:FNNDSC/miniChRIS-docker@masterwith:services:chris oxidicom
- FNNDSC/ChRIS_ui/.github/workflows/tests.yml usesminiChRIS for testing usingCypress
- FNNDSC/cookicutter-chrisapp/.github/workflows/test.yml usesmihiChRIS for end-to-end testing.
- FNNDSC/cni-store-proxy/package.json usesminiChRIS as a git submodule for a local dev environment.
- fast and minimal
- practical for E2E testing
- production use
- back-end development environment
./minichris.sh takes 30-60 seconds on a decent laptop (quad-core, 8GB memory, SSD)and takes 2-3 minutes inGithub Actions' Ubuntu VMs.
About
Easiest way to run ChRIS locally.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Contributors4
Uh oh!
There was an error while loading.Please reload this page.
