Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

For 3.11.0 #214

Merged
merged 16 commits into from
Nov 17, 2023
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2019, caMicroscope
Copyright (c) 2019-2023, caMicroscope
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
14 changes: 4 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
<a href="http://camicroscope.org/"><img src="https://avatars2.githubusercontent.com/u/12075069?s=400&v=4" style="background-color:rgba(0,0,0,0);" height=230 alt="camicroscope: a web-based image viewer optimized for large bio-medical image data viewing"></a>
</h2>

[![Build Status](https://travis-ci.org/camicroscope/Distro.svg?branch=master)](https://travis-ci.org/camicroscope/Distro)

# caMicroscope distribution


Expand All @@ -14,14 +12,14 @@ Use `docker-compose -f caMicroscope.yml build` to rebuild the services.

Once everything is up, go to http://localhost:4010/ to see the landing page.

6GB memory is recommended (in total, 2GB RAM + 4GB swap should work well)

## SSL
To enable ssl, mount the private key and certificate files to the ca-back service in /root/src/ssl/privatekey.pem and /root/src/ssl/certificate.pem respectively. HTTPS mode will only be enabled if both of these files are present.

## Component Services
mongo - vanilla mongo container

idxMongo - ephemeral container to index mongo (that is, this container is *expected* to exit once it's done its job)

iip - slide tile server (see https://github.com/camicroscope/iipImage)

loader - extracts metadata needed for image loading (see https://github.com/camicroscope/SlideLoader)
Expand Down Expand Up @@ -65,10 +63,6 @@ Alternatively, you can use kc_caMicroscope.yml for a keycloak configuration.
* Set a password under credentials -> add password


### Adding Users to caMicroscope

Add users as in ./config/add\_users.js. This can be done either by editing this file before bringing up the stack, or by running similar code against the camic database in ca-mongo. Attributes can be added to deny access to routes (e.g. allow only some users to post and delete) and userFilters can be used to change visibility of particular documents.

The email field is the email field (or failing that, sub field) in that priority from the identity provider.

## PathDB
Expand All @@ -85,8 +79,8 @@ Running QuIP with PathDB (https://github.com/SBU-BMI/PathDB):

The default login for pathdb is `admin` with password `bluecheese2018`. Please change this password before exposing this service to the internet.

## Support
Feel free to add any support inquiry as a github issue to this repository. Other feedback can be given via [this form](https://docs.google.com/forms/d/e/1FAIpQLScL91LxrpAZjU88GBZP9gmcdgdf8__uNUwhws2lzU6Lr4qNwA/viewform).
## Support and Questions
For questions, comments, or any other discussion, please see the [caMicroscope discussion forum](https://github.com/orgs/camicroscope/discussions).

## System Recommendations
As of 3.8.0, the non-pathdb caMicroscope deployment seems to peak about 500mb of memory per user from basic tests. The system is most likely to work optimally if the CPU can support two or three threads per concurrent user. The containers themselves take up a total of about 6gb of disk, but note that whole slide images typically use 0.5-2 gb of disk each.
Expand Down
28 changes: 24 additions & 4 deletions caMicroscope.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ services:
- ./db:/data/db
back:
build:
context: "https://github.com/camicroscope/caracal.git#v3.10.2"
context: "https://github.com/camicroscope/caracal.git#v3.11.0"
args:
viewer: "v3.10.2"
viewer: "v3.11.0"
depends_on:
- "mongo"
ports:
Expand All @@ -39,7 +39,7 @@ services:
DISABLE_SEC: "true"
GENERATE_KEY_IF_MISSING: "true"
iip:
image: camicroscope/iipimage:version-3.10.2
image: camicroscope/iipimage:version-3.11.0
container_name: ca-iip
logging:
options:
Expand All @@ -49,7 +49,7 @@ services:
volumes:
- ./images/:/images/
loader:
build: "https://github.com/camicroscope/SlideLoader.git#v3.10.2"
build: "https://github.com/camicroscope/SlideLoader.git#v3.11.0"
container_name: ca-load
restart: always
logging:
Expand All @@ -58,3 +58,23 @@ services:
max-size: "10m"
volumes:
- ./images/:/images/
environment:
DICOM_PORT: "11112"
DICOM_UI_PORT: "8042"
dicomsrv:
build: "https://github.com/camicroscope/dicomsrv.git#v3.11.0"
container_name: ca-dicomsrv
restart: unless-stopped
stdin_open: true
tty: true
ports:
- "8042:8042"
- "11112:11112"
volumes:
- ./jwt_keys/:/root/keys/
- ./images/:/images/
- ./config/OrthancConfiguration.json:/root/src/Configuration.json
environment:
DICOM_PORT: "11112"
DICOM_UI_PORT: "8042"
CARACAL_BACK_HOST_PORT: "ca-back:4010"
64 changes: 64 additions & 0 deletions config/OrthancConfiguration.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
// https://hg.orthanc-server.com/orthanc/file/Orthanc-1.12.1/OrthancServer/Resources/Configuration.json
// Configuration.json supports importing ENV vars with ${YourEnvVarName}
// NOTE about file paths: /images/ and all paths in this file starting with /root
// are set correctly to match what caMicroscope Dockerfiles set up.
// Changing these might cause issues. Besides, Dockerfiles will copy
// OrthancConfiguration.json from caMicroscope/Distro as well so please don't rename this file.
"Plugins" : [
"/root/src/libOrthancIndexer.so"
],
"Indexer" : {
"Enable" : true,
"Folders" : ["/images/"],
"Interval" : 10 // Delay between two synchronizations (seconds)
},
"StorageCompression" : false, // "true" is incompatible with caMicroscope
"Name" : "camic-orthanc",
"DicomAet" : "CAMIC-ORTHANC",
"StorageDirectory" : "/images/",
"IndexDirectory" : "/root/orthanc-index",
"HttpServerEnabled" : true, // Rest API and GUI
"OrthancExplorerEnabled" : true, // GUI
"HttpPort" : ${DICOM_UI_PORT}, // Rest API and GUI
"RestApiWriteToFileSystemEnabled" : true, // Rest API and GUI
"RemoteAccessAllowed" : true,
"AuthenticationEnabled" : false, // Basic HTTP auth for GUI as in http://httpbin.org/basic-auth/foo/bar
//"RegisteredUsers" : {
// "alice" : "alicePassword"
//},
"SslEnabled" : false, // HTTP server
"SslCertificate" : "/root/keys/keyandpub.pem", // both cert and private key
"HttpsVerifyPeers" : true, // Verify SSL of other orthanc servers

"MallocArenaMax" : 5, // Suggested by docs to regulate memory use
"DicomThreadsCount" : 3,

"DicomPort" : ${DICOM_PORT},

// NOTE: Due to a bug in Orthanc 1.12.1 and lower, to disable DICOM TLS,
// "DicomTlsEnabled" : false is not enough; please also comment out the line with
// DicomTlsPrivateKey
"DicomTlsEnabled" : false, // DICOM server
// For DICOM, unlike HTTP, cert (cer or cert or pub or pem) and pkey need to be provided as separate files.
// For example, the latter means that when the file is opened with a text editor,
// there's "BEGIN PRIVATE KEY" and "BEGIN CERTIFICATE" in the same file.
//"DicomTlsPrivateKey" : "/root/keys/key",
"DicomTlsCertificate" : "/root/keys/key.pub",
"DicomTlsRemoteCertificateRequired" : true, // Verify certificate of dicom peers

// AlwaysAllow: If false, only those listed under "DicomModalities" will be capable of these
"DicomAlwaysAllowStore" : true,
// The following ones allow retrieving data, which you might not want everyone to do
"DicomAlwaysAllowFind" : true,
"DicomAlwaysAllowFindWorklist" : true,
"DicomAlwaysAllowGet" : true,
"DicomAlwaysAllowMove" : true,

//"DicomModalities" : {
// AET, IP, port
// "sample" : ["MYSRV", "192.168.1.40", 1300]
// See the link at the beginning of the file for selectively giving permissions
//},
"DicomCheckModalityHost" : false // Check the IP as well or only check the modality
}
12 changes: 12 additions & 0 deletions config/routes.json
Original file line number Diff line number Diff line change
Expand Up @@ -498,5 +498,17 @@
{"function":"permissionHandler", "args": [["Admin", "Editor"]]},
{"function":"sendTrainedModel", "args": []}
]
},{
"route":"/fs/addedFile",
"method":"get",
"handlers":[
{"function":"addedFileToFS", "args": ["camic", "slide", "http://ca-load:4000"]}
]
},{
"route":"/fs/deletedFile",
"method":"get",
"handlers":[
{"function":"removedFileFromFS", "args": ["camic", "slide", "http://ca-load:4000"]}
]
}
]
22 changes: 21 additions & 1 deletion develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ services:
DISABLE_SEC: "true"
ALLOW_PUBLIC: "true"
iip:
build: "https://github.com/camicroscope/iipimage.git#develop"
build: "https://github.com/camicroscope/iipImage.git#develop"
container_name: ca-iip
restart: unless-stopped
volumes:
Expand All @@ -40,3 +40,23 @@ services:
volumes:
- ./images/:/images/
- ./cloud-upload-apis/:/cloud-upload-apis/
environment:
DICOM_PORT: "11112"
DICOM_UI_PORT: "8042"
dicomsrv:
build: "https://github.com/camicroscope/dicomsrv.git"
container_name: ca-dicomsrv
restart: unless-stopped
stdin_open: true
tty: true
ports:
- "8042:8042"
- "11112:11112"
volumes:
- ./jwt_keys/:/root/keys/
- ./images/:/images/
- ./config/OrthancConfiguration.json:/root/src/Configuration.json
environment:
DICOM_PORT: "11112"
DICOM_UI_PORT: "8042"
CARACAL_BACK_HOST_PORT: "ca-back:4010"
8 changes: 4 additions & 4 deletions quip-pathdb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ services:
volumes:
- ./db:/data/db
iip:
image: camicroscope/iipimage:version-3.10.2
image: camicroscope/iipimage:version-3.11.0
container_name: ca-iip
restart: unless-stopped
volumes:
- ./images/:/data/images/
back:
build:
context: "https://github.com/camicroscope/caracal.git#v3.10.2"
context: "https://github.com/camicroscope/caracal.git#v3.11.0"
args:
viewer: "v3.10.1"
viewer: "v3.11.0"
depends_on:
- "mongo"
ports:
Expand All @@ -37,7 +37,7 @@ services:
build:
context: "https://github.com/SBU-BMI/PathDB.git#2.0.0"
args:
viewer: "v3.10.2"
viewer: "v3.11.0"
container_name: quip-pathdb
restart: unless-stopped
ports: ["443:443","80:80"]
Expand Down
Loading
Loading