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.
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/cold
cd cold
git pull origin main
deno task setup
deno task load_data
(initially populate COLD
from CSV files)tmux
deno task setup
deno task cold_api
Ctl-%
deno task cold
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.