ChRIS_ui
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
Name | Required? | Description |
---|---|---|
CHRIS_UI_URL | required | ChRIS backend API URL, e.g. https://example.org/api/v1/ |
PFDCM_URL | required | PFDCM API URL, e.g. http://example.org:4005/ |
OHIF_URL | optional | OHIF server URL |
ACKEE_SERVER | optional | Ackee server URL, see analytics |
ACKEE_DOMAIN_ID | optional | Ackee domain ID, see analytics |
SERVER_PORT | optional | HTTP 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