Skip to content

datacite/docker-handle

Repository files navigation

Docker version of a Handle Server

This is a docker version of the handle server software at http://www.handle.net/ All information for how to use a handle server should be via the handle.net server documentation and support systems.

This is a docker image with an embedded configuration script that is run on docker start to load default settings from environment variables.

Starting

Use Docker compose to start the server.

docker compose up

For for overriding evn variables see Environment variables in Compose.

Configuration

Configuration follows the same rules as the main handle configuration however with environments, see official documentation for more detailed configuration details.

Config Default Required Description
HANDLE_HOST_IP 0.0.0.0 No Public handle host ip used for siteinfo
SERVER_ADMIN_FULL_ACCESS yes No Admins listed in SERVER_ADMINS will have full permissions over all handles on the server
SERVER_ADMINS None No A list of handle admins space seperated e.g. ADMIN1 ADMIN2 ADMIN3
REPLICATION_ADMINS None No A list of handle admins for replication space seperated e.g. "ADMIN1 ADMIN2 ADMIN3"
CASE_SENSITIVE no No Are handles case sensitive
MAX_SESSION_TIME 86400000 No Max authenticated client session time in ms.
MAX_AUTH_TIME 60000 No Max time to wait for for client to respond to auth challenge.
THIS_SERVER_ID 1 No An identifier for this handle server.
TRACE_RESOLUTION no No Set to yes for debugging information to be logged for handle resolution.
ALLOW_LIST_HDLS no No Used to disable list_handles functionality.
ALLOW_RECURSION no No Allow recursive lookup outside of this handle server into global handle network.
SERVER_PRIVATE_KEY_PEM None Yes PEM PKCS8 format private key for encryption on the server.
SERVER_PUBLIC_KEY_PEM None Yes PEM PKCS8 format public key for encryption on the server.
STORAGE_TYPE None No Empty defaults to built-in storage. Other main option is "sql"
SQL_URL None No This setting should specify the JDBC URL that is used to connect to the SQL database.
SQL_DRIVER org.mariadb.jdbc.Driver No This is the name of a Java class that contains the driver for the JDBC connection.
SQL_LOGIN root No The user name that should be used by the handle server to connect and perform operations on the database.
SQL_PASSWD None No The password that should be used by the handle server to connect and perform operations on the database.
SQL_READ_ONLY no No Boolean setting for allowing writes to database or not.
ALLOW_NA_ADMINS yes no To allow global handle server admins access to this handle server.

Creating a PEM keypair

The PRIVATE_KEY and PUBLIC_KEY need to be in pksc8 format, below is an example that makes ready for usage in the environment variables

Generate keypair

ssh-keygen -m pkcs8 -f mykey.pem

Get it in a format for PKCS8 and put in explicit new lines ready for env var

openssl pkcs8 -topk8 -in mykey.pem -nocrypt | sed ':a;N;$!ba;s/\n/\\r\\n/g'
openssl pkcs8 -topk8 -in mykey.pem -nocrypt | openssl pkey -pubout | sed ':a;N;$!ba;s/\n/\\r\\n/g'

About

A dockerised version of the handle server

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published