Docker
Our docker images are hosted on our own Gitlab registry.
You can use the latest stable version through the docker image tag registry.gitlab.teklia.com/iiif/cantaloupe:latest.
Requirements
-
A Linux server;
-
Docker;
-
A folder with your images (named
/path/to/imagesin the examples); -
A file with your configuration (named
/path/to/cantaloupe.propertiesin the examples).
First run
On Linux, you can run the Cantaloupe server image to test it through this command:
docker run -p 8000:80 \
-v /path/to/images:/images:ro \
-v /path/to/cantaloupe.properties:/etc/cantaloupe.properties:ro \
registry.gitlab.teklia.com/iiif/cantaloupe:latest
We provide a sample configuration file to use local images.
You should then be able to access the Cantaloupe splash screen on http://localhost:8000.
-
The IIIF v2 endpoint is hosted at http://localhost:8000/iiif/2
-
The IIIF v3 endpoint is hosted at http://localhost:8000/iiif/3
Using an S3 bucket
You can also use an S3 bucket instead of a local folder for all your images:
docker run -p 8000:80 \
-v /path/to/cantaloupe.properties:/etc/cantaloupe.properties:ro \
-e AWS_ACCESS_KEY_ID=<ACCES_kEY> \
-e AWS_SECRET_ACCESS_KEY=<SECRET_ACCESS_KEY> \
registry.gitlab.teklia.com/iiif/cantaloupe:latest
We provide a sample configuration file to use images hosted on a local MinIO instance.
When using the S3 image provider, you’ll need to specify the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables so that Cantaloupe can authenticate on the S3 provider specified in your cantaloupe.properties file.
You can read more about S3 configuration on this documentation.
Limiting RAM usage
The Cantaloupe server can use a lot of memory when under heavy load. You can limit the memory available to cantaloupe by passing this environment variable: -e JAVA_OPTS="-Xmx2G -Xms2G" to the docker command.
In this example this will limit the maximum memory to 2 GB. The flag Xmx specifies the maximum memory allocation pool for a Java Virtual Machine (JVM), while Xms specifies the initial memory allocation pool.
You can learn more on the official documentation.