From e932086ba4c8027e17761738014ba8ded8f41998 Mon Sep 17 00:00:00 2001 From: Birm Date: Fri, 13 Jun 2025 14:33:15 -0400 Subject: [PATCH 1/2] Add Ferret for a Open source (non-mongo) deployment option (#229) * docker-compose to docker compose * initial partially-working ferret version * whatever I had on this branch * working barebones ferret camicroscope * revert special dev tag * key: add keycloak second --- .github/workflows/main.yml | 2 +- config/keycloak_login.html | 2 +- config/postgres_db_user_setup.sql | 5 ++ develop.yml | 1 + kc_caMicroscope.yml | 3 +- osi_camicroscope.yml | 113 ++++++++++++++++++++++++++++++ 6 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 config/postgres_db_user_setup.sql create mode 100644 osi_camicroscope.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 07f9cc3..9b6b3e7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,4 +6,4 @@ jobs: steps: - uses: actions/checkout@v2 - name: Build the develop stack - run: docker-compose -f develop.yml build + run: docker compose -f develop.yml build diff --git a/config/keycloak_login.html b/config/keycloak_login.html index ddd12f1..7728fdf 100644 --- a/config/keycloak_login.html +++ b/config/keycloak_login.html @@ -1,7 +1,7 @@ caMicroscope Keycloak Login - + diff --git a/config/postgres_db_user_setup.sql b/config/postgres_db_user_setup.sql new file mode 100644 index 0000000..b664ff3 --- /dev/null +++ b/config/postgres_db_user_setup.sql @@ -0,0 +1,5 @@ +CREATE USER keycloak WITH PASSWORD 'password'; +CREATE DATABASE keycloak; +GRANT ALL PRIVILEGES ON DATABASE keycloak TO keycloak; +GRANT ALL PRIVILEGES ON SCHEMA public TO keycloak; +ALTER USER keycloak WITH SUPERUSER; \ No newline at end of file diff --git a/develop.yml b/develop.yml index fa95b43..4238e90 100644 --- a/develop.yml +++ b/develop.yml @@ -24,6 +24,7 @@ services: - ./jwt_keys/:/src/keys/ - ./config/routes.json:/src/routes.json - ./config/contentSecurityPolicy.json:/src/contentSecurityPolicy.json + - ../camicroscope/:/src/camicroscope/ environment: JWK_URL: "https://www.googleapis.com/oauth2/v3/certs" IIP_PATH: "http://ca-iip:8080/fcgi-bin/iipsrv.fcgi" diff --git a/kc_caMicroscope.yml b/kc_caMicroscope.yml index 0be9fdd..92a1c6c 100644 --- a/kc_caMicroscope.yml +++ b/kc_caMicroscope.yml @@ -114,4 +114,5 @@ services: environment: DICOM_PORT: "11112" DICOM_UI_PORT: "8042" - CARACAL_BACK_HOST_PORT: "ca-back:4010" \ No newline at end of file + CARACAL_BACK_HOST_PORT: "ca-back:4010" + diff --git a/osi_camicroscope.yml b/osi_camicroscope.yml new file mode 100644 index 0000000..832badf --- /dev/null +++ b/osi_camicroscope.yml @@ -0,0 +1,113 @@ +version: '3' + +volumes: + postgres_data: + name: postgres_data + ferret_data: + name: ferret_data + +networks: + default: + name: ferretdb + +services: + postgres: + image: ghcr.io/ferretdb/postgres-documentdb:17-0.104.0-ferretdb-2.3.1 + container_name: ca-key-db + volumes: + - postgres_data:/var/lib/postgresql/data + - ./config/postgres_db_user_setup.sql:/docker-entrypoint-initdb.d/init.sql + environment: + POSTGRES_DB: postgres + POSTGRES_USER: ferret + POSTGRES_PASSWORD: ferretpassword + restart: always + logging: + options: + max-file: "5" + max-size: "10m" + keycloak: + container_name: ca-key + image: quay.io/keycloak/keycloak:latest + command: start-dev + environment: + KC_DB: postgres + KC_DB_URL: jdbc:postgresql://ca-key-db:5432/keycloak + KC_DB_USERNAME: keycloak + KC_DB_PASSWORD: password + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: password + ports: + - 8080:8080 + restart: always + logging: + options: + max-file: "5" + max-size: "10m" + depends_on: + - postgres + ferretdb: + image: ghcr.io/ferretdb/ferretdb:2.3.1 + container_name: ca-ferretdb + restart: always + logging: + options: + max-file: "5" + max-size: "10m" + environment: + - FERRETDB_POSTGRESQL_URL=postgresql://ferret:ferretpassword@ca-key-db:5432/postgres + - FERRETDB_AUTH=0 + volumes: + - ferret_data:/data/db + depends_on: + - postgres + back: + build: + context: "https://github.com/camicroscope/caracal.git#v3.12.0" + args: + viewer: "v3.12.1" + depends_on: + - "ferretdb" + ports: + - "4010:4010" + container_name: ca-back + restart: always + logging: + options: + max-file: "5" + max-size: "10m" + volumes: + - ./images/:/images/ + - ./config/login.html:/src/static/login.html + - ./jwt_keys/:/src/keys/ + - ./config/routes.json:/src/routes.json + - ./config/contentSecurityPolicy.json:/src/contentSecurityPolicy.json + environment: + DISABLE_SEC: "true" + JWK_URL: "http://ca-back:4010/keycloak/realms/camic/protocol/openid-connect/certs" + IIP_PATH: "http://ca-iip:8080/fcgi-bin/iipsrv.fcgi" + MONGO_URI: "mongodb://ca-ferretdb" + GENERATE_KEY_IF_MISSING: "true" + iip: + image: camicroscope/iipimage:version-3.11.0 + container_name: ca-iip + logging: + options: + max-file: "5" + max-size: "10m" + restart: always + volumes: + - ./images/:/images/ + loader: + build: "https://github.com/camicroscope/SlideLoader.git#v3.12.0" + container_name: ca-load + restart: always + logging: + options: + max-file: "5" + max-size: "10m" + volumes: + - ./images/:/images/ + environment: + DICOM_PORT: "11112" + DICOM_UI_PORT: "8042" From 68a0c23bf3a95d59b247c1016bcdcdc5700d547b Mon Sep 17 00:00:00 2001 From: Birm Date: Fri, 13 Jun 2025 15:24:43 -0400 Subject: [PATCH 2/2] bump tags to v3.12.2 --- caMicroscope.yml | 6 +++--- osi_camicroscope.yml | 4 ++-- quip-pathdb.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/caMicroscope.yml b/caMicroscope.yml index aafb001..0299097 100644 --- a/caMicroscope.yml +++ b/caMicroscope.yml @@ -13,9 +13,9 @@ services: - ./db:/data/db back: build: - context: "https://github.com/camicroscope/caracal.git#v3.12.0" + context: "https://github.com/camicroscope/caracal.git#v3.12.2" args: - viewer: "v3.12.0" + viewer: "v3.12.2" depends_on: - "mongo" ports: @@ -49,7 +49,7 @@ services: volumes: - ./images/:/images/ loader: - build: "https://github.com/camicroscope/SlideLoader.git#v3.12.0" + build: "https://github.com/camicroscope/SlideLoader.git#v3.12.2" container_name: ca-load restart: always logging: diff --git a/osi_camicroscope.yml b/osi_camicroscope.yml index 832badf..fa5eb36 100644 --- a/osi_camicroscope.yml +++ b/osi_camicroscope.yml @@ -63,9 +63,9 @@ services: - postgres back: build: - context: "https://github.com/camicroscope/caracal.git#v3.12.0" + context: "https://github.com/camicroscope/caracal.git#v3.12.2" args: - viewer: "v3.12.1" + viewer: "v3.12.2" depends_on: - "ferretdb" ports: diff --git a/quip-pathdb.yml b/quip-pathdb.yml index d440106..6e48832 100644 --- a/quip-pathdb.yml +++ b/quip-pathdb.yml @@ -17,7 +17,7 @@ services: build: context: "https://github.com/camicroscope/caracal.git#v3.12.0" args: - viewer: "v3.12.0" + viewer: "v3.12.2" depends_on: - "mongo" ports: