Skip to content

Commit

Permalink
Added jupyter notebook profile. Fixes for Achilles Dockerfile and tra…
Browse files Browse the repository at this point in the history
…efik routing.

Update traefik to 2.11.2.

Set atlasdb to restart unless stopped.
  • Loading branch information
alondhe committed Apr 24, 2024
1 parent ff69fde commit d89598a
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 12 deletions.
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,16 +150,14 @@ docker compose --env-file .env --profile profile1 --profile profile2 ... up -d
| omop-vocab-pg-load | <ul><li>Using OMOP Vocab files downloaded from Athena, this can load them into a Postgres instance (can be Broadsea's atlasdb or an external one)</li><li>Rebuilds the CPTs using the CPT jar file from Athena, with UMLS API Key (see .env file Section 9)</li><li>Creates the schema if necessary</li><li>Runs copy command for each vocabulary CSV file</li><li>Creates all necessary Postgres indices</li><li>Once complete, the omop-vocab-load container will finish with an exit status; you can remove this container</li></ul> |
| phoebe-pg-load | <ul><li>For Atlas 2.12+, which offers Concept Recommendation options based on the [Phoebe project](https://forums.ohdsi.org/t/phoebe-2-0/17410 "Phoebe Project")</li><li>Loads Phoebe files into an existing OMOP Vocabulary hosted in a Postgres instance (can be Broadsea's atlasdb or an external one)</li><li>Note: your Atlas instance must use this OMOP Vocabulary as its default vocabulary source in order to use this feature</li><li>Once complete, the phoebe-load container will finish with an exit status; you can remove this container</li></ul> |
| openldap | <ul><li>For testing security in Atlas, this Open LDAP container can be used to assess security needs</li><li>You can specify a comma separated list of user ids and passwords</li><li>This is not recommended for any production level setup</li></ul> |
| open-shiny-server | <ul><li>An open source version of Shiny Server, where you can drop shiny apps into a mounted folder.</li><li>Recommended if your organization does not have a Posit Connect license.</li></ul> |
| posit-connect | <ul><li>For sites with commercial Posit Connect licenses,

#### Perseus Profiles
#### Experimental Profiles

We also offer profiles for Perseus, but please note, **these are EXPERIMENTAL and not guaranteed to work**:
We also offer profiles for Perseus and other useful services, but please note, **these are EXPERIMENTAL and not guaranteed to work**:

| Profile | Description |
|-------------------------|-------------|
| perseus | <ul><li>Experimental in this version</li><li>Deploys the entire Perseus stack of services, but in the Broadsea network</li><li>Services include:</li><li>Currently, does have overlapping capabilities (e.g. Solr, OMOP Vocab on Postgres)</li></ul> |
| perseus | <ul><li>Deploys the entire Perseus stack of services, but in the Broadsea network</li><li>Currently, does have overlapping capabilities (e.g. Solr, OMOP Vocab on Postgres</li></ul> |
| perseus-shareddb | <ul><li>Deploys only the shareddb Postgres backend for Perseus</li></ul> |
| perseus-files-manager | <ul><li>Deploys only the files-manager backend for Perseus</li></ul> |
| perseus-user | <ul><li>Deploys only the user management system for Perseus</li></ul> |
Expand All @@ -174,6 +172,9 @@ We also offer profiles for Perseus, but please note, **these are EXPERIMENTAL an
| perseus-dqd | <ul><li>Deploys the DataQualityDashboard instance for Perseus</li></ul> |
| perseus-swagger | <ul><li>Deploys the Swagger instance for Perseus</li></ul> |
| perseus-white-rabbit | <ul><li>Deploys the White Rabbit instance for Perseus</li></ul> |
| open-shiny-server | <ul><li>An open source version of Shiny Server, where you can drop shiny apps into a mounted folder.</li><li>Recommended if your organization does not have a Posit Connect license.</li></ul> |
| posit-connect | <ul><li>For sites with commercial Posit Connect licenses
| jupyter-notebook | <ul><li>Deploys a simple Jupyter Data Science Notebook with no authentication.</li></ul>

### Traefik Dashboard

Expand Down
2 changes: 1 addition & 1 deletion achilles/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ apt-get clean
rm -rf /var/lib/apt/lists/*

# The default GitHub Actions runner has 2 vCPUs (https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners)
install2.r --error --ncpus 2 \
install2.r --error --ncpus 2 --skipinstalled --repos "https://packagemanager.posit.co/cran/latest" \
rJava \
remotes \
ParallelLogger \
Expand Down
26 changes: 25 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@ volumes:
name: perseus-vocabularydb
perseus-solr:
name: perseus-solr
jupyter-notebook:
name: jupyter-notebook

services:

traefik:
image: docker.io/library/traefik:v2.10.4
image: docker.io/library/traefik:v2.11.2
container_name: traefik
restart: unless-stopped
ipc: none
Expand Down Expand Up @@ -117,6 +119,7 @@ services:
image: ohdsi/broadsea-atlasdb:2.1.0-secret
container_name: broadsea-atlasdb
platform: linux/amd64
restart: unless-stopped
cpus: 2
mem_limit: "2G"
environment:
Expand Down Expand Up @@ -591,6 +594,27 @@ services:
- perseus-shareddb
- perseus-files-manager

broadsea-jupyter-notebook:
profiles: [ "jupyter-notebook" ]
image: quay.io/jupyter/datascience-notebook:latest
platform: ${DOCKER_ARCH}
restart: unless-stopped
container_name: broadsea-jupyter-notebook
environment:
JUPYTERHUB_SERVICE_PREFIX: /jupyter/
JUPYTERHUB_BASE_URL: ${HTTP_TYPE}://${BROADSEA_HOST}
volumes:
- jupyter-notebook:/home/jovyan/work:rw
command:
- jupyter-lab
- --ip=*
- --NotebookApp.token=
- --NotebookApp.password=
- --NotebookApp.base_url=/jupyter
labels:
- "traefik.enable=true"


secrets:
GITHUB_PAT:
file: ${GITHUB_PAT_SECRET_FILE}
Expand Down
16 changes: 11 additions & 5 deletions traefik/routers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ http:
- "broadsea-perseus-strip-prefix"


broadsea-jupyter-notebook:
entryPoints: '{{ env "HTTP_TYPE" }}'
service: "broadsea-jupyter-notebook"
rule: 'Host(`{{ env "BROADSEA_HOST" }}`) && PathPrefix(`/jupyter`)'

middlewares:

Expand All @@ -135,10 +139,6 @@ http:
- "/hades"
forceSlash: false

broadsea-perseus-add-prefix:
addPrefix:
prefix: "/perseus"

broadsea-perseus-strip-prefix:
stripPrefix:
prefixes:
Expand Down Expand Up @@ -250,4 +250,10 @@ http:
perseus-athena:
loadBalancer:
servers:
- url: http://perseus-athena:5002
- url: http://perseus-athena:5002


broadsea-jupyter-notebook:
loadBalancer:
servers:
- url: http://broadsea-jupyter-notebook:8888

0 comments on commit d89598a

Please sign in to comment.