cold is experimental software for curation of managed controlled object lists (e.g. people, groups and controlled vocabularies) through several services.
cold web services are intended to run behind a front facing web server (e.g. Apache 2) providing access control and authentication. In a development setting this can be as simple as configuring BasicAuth. In a production setting you need something robust like Shibboleth. An example apache2 configuration is included in the source repository for cold. It will require adaptation to your specific web server configuration.
cold requires the datasetd web service to provide access to people.ds, group.ds and other collections. For cold your collections should use SQL storage, e.g. SQLite3 or PostgreSQL. Setting up SQLite3 dataset collections can be done using a Deno task or via the Makefile (which calls the deno task).
If you are setting up to run in production you should compile the services and install the systemd service scripts so that systemd can manage the applications.
cold relies on several Caltech Library adjancent projects. These should be in parallel directories to where your cold repository exists. They should be accessible with the prefix “../” during the compilation, checking or running from source.
These are setup instructions for testing and development. Step four changes if you are setting up for production.
cd
git clone https://github.com/caltechlibrary/metadatatools
git clone https://github.com/caltechlibrary/ts_dataset
git clone https://github.com/caltechlibrary/cold
cd cold
git pull origin main
deno task setup
deno task load_data
(initially populate COLD
from CSV files)tmux
deno task cold_api
Ctl-%
deno task cold
Ctl-%
deno task cold_reports
You should now have two web services running on localhost at ports 8111 (web service), 8112 (JSON API).
cold
In a remote deployment you’d setup up to run these services using systemd service scripts. See deployments documentation for details.