Skip to main content

ChRIS_ui

tip

This page is for an upcoming release of ChRIS.

ChRIS_ui can be deployed as a container image.

Using Docker or Podman

docker run --rm -it -p 8080:80 \
-e CHRIS_UI_URL="http://$(hostname):8000/api/v1/" \
-e PFDCM_URL="http://$(hostname):4005/" \
ghcr.io/fnndsc/chris_ui:staging

Using Helm

helm repo add fnndsc https://fnndsc.github.io/charts
helm update repo fnndsc
helm upgrade --install --create-namespace --namespace chris \
--set cubeUrl=https://cube.example.org/api/v1/ \
--set pfdcmUrl=https://pfdcm.example.org \
chris-ui fnndsc/chris-ui

Using Helmfile

Helmfile is strongly recommended over the official Helm CLI.

repositories:
- name: fnndsc
url: https://fnndsc.github.io/charts

releases:
- name: chris-ui
namespace: chris
chart: fnndsc/chris-ui
version: "1.0.0-alpha.2"
values:
- cubeUrl: https://cube.example.org/api/v1/
pfdcmUrl: https://pfdcm.example.org

Using KNative

By default, the fnndsc/chris-ui chart will create a Deployment, Service, and optionally a HorizontalPodAutoscaler using ordinary Kubernetes APIs. If KNative Serving or Red Hat OpenShift Serverless is available in your Kubernetes cluster, you may prefer to use it instead. Use these values for fnndsc/chris-ui:

kind: Service

# optional
revisionAnnotations:
autoscaling.knative.dev/target: "100"
autoscaling.knative.dev/min-scale: "1"
autoscaling.knative.dev/max-scale: "3"

Consult the upstream documentation on configuring custom domains.

Image Tags

Images are built automatically by GitHub Actions for every push to the master and staging branches, as well as PRs targeting those branches. The list of available images can be found here ⟶ https://github.com/FNNDSC/ChRIS_ui/pkgs/container/chris_ui

Environment Variables

NameRequired?Description
CHRIS_UI_URLrequiredChRIS backend API URL, e.g. https://example.org/api/v1/
PFDCM_URLrequiredPFDCM API URL, e.g. http://example.org:4005/
OHIF_URLoptionalOHIF server URL
ACKEE_SERVERoptionalAckee server URL, see analytics
ACKEE_DOMAIN_IDoptionalAckee domain ID, see analytics
SERVER_PORToptionalHTTP port, see server configuration

Server Configuration

static-web-server, a Rust-based web server, is used for serving static files. It can be configured using environment variables. See here: https://static-web-server.net/configuration/environment-variables/

Note that not all options can be overridden. See the /config.toml file in the ChRIS_ui container image.

Analytics

We use Ackee for privacy-respecting web analytics. You need to self-host an instance of Ackee, then set the environment variables ACKEE_SERVER and ACKEE_DOMAIN_ID on ChRIS_ui.

Container Security

The container user must be part of the root group (which is a recommended and secure practice, according to Red Hat).

You can run as an arbitrary user, e.g. using Docker:

docker run -u 100100:100100 --group-add=root \
-e CHRIS_UI_URL=http://localhost:8000/api/v1/ \
-e PFDCM_URL=http://localhost:4005/ \
-e SERVER_PORT=9999 -p 9999:9999 localhost/fnndsc/chris_ui