-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.html
112 lines (110 loc) · 4.44 KB
/
INSTALL.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!DOCTYPE html>
<html lang="en">
<head>
<title>COLD (Controlled Object List and Datum (Concept))</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="https://caltechlibrary.github.io/css/site.css">
</head>
<body>
<header>
<a href="http://library.caltech.edu" title="link to Caltech Library Homepage"><img src="https://caltechlibrary.github.io/assets/liblogo.gif" alt="Caltech Library logo"></a>
</header>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="index.html">README</a></li>
<li><a href="LICENSE">LICENSE</a></li>
<li><a href="INSTALL.html">INSTALL</a></li>
<li><a href="user_manual.html">User Manual</a></li>
<li><a href="about.html">About</a></li>
<li><a href="https://github.com/caltechlibrary/cold">GitHub</a></li>
</ul>
</nav>
<section>
<h1 id="installation-for-development-of-cold">Installation for
development of <strong>cold</strong></h1>
<p><strong>cold</strong> is experimental software for curation of
managed controlled object lists (e.g. people, groups and controlled
vocabularies) through several services.</p>
<p><strong>cold</strong> 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 <strong>cold</strong>. It will require adaptation
to your specific web server configuration.</p>
<p><strong>cold</strong> requires the datasetd web service to provide
access to people.ds, group.ds and other collections. For
<strong>cold</strong> 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).</p>
<p>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.</p>
<h2 id="required-software">Required software</h2>
<ol type="1">
<li>Git (to clone the cold repository on GitHub)</li>
<li>Deno >= 2.0.6 (to run the public and management web
services)</li>
<li>Dataset >= 2.1.23 (datasetd provides the JSON API for cold public
and admin services)</li>
<li>Pandoc > 3.1 (to build or update documentation)</li>
</ol>
<h2 id="setting-up-cold">Setting up cold</h2>
<p>These are setup instructions for testing and development. Step four
changes if you are setting up for production.</p>
<ol type="1">
<li>Retrieve cold and cold_admin repositories
<ol type="a">
<li><code>cd</code></li>
<li><code>git clone https://github.com/caltechlibrary/cold</code></li>
<li><code>cd cold</code></li>
<li><code>git pull origin main</code></li>
</ol></li>
<li>Setup cold services
<ol type="a">
<li><code>deno task setup</code></li>
<li>(optional) <code>deno task load_data</code> (initially populate COLD
from CSV files)</li>
</ol></li>
<li>You need to start two web services, I recommend using tmux. You can
then split the window to create each session and still see everything
going on.
<ol type="a">
<li>start up tmux</li>
<li><code>tmux</code></li>
<li>start the JSON API and setup your dataset collections</li>
<li><code>deno task cold_api</code></li>
<li>open another tmux window, start the cold middle ware service</li>
<li>split the screen, e.g. <code>Ctl-%</code></li>
<li><code>deno task cold</code></li>
<li>in yet anthe tmux window, start the cold reports service</li>
<li>split the screen, e.g. <code>Ctl-%</code></li>
<li><code>deno task cold_reports</code></li>
</ol></li>
</ol>
<p>You should now have two web services running on localhost at ports
8111 (web service), 8112 (JSON API).</p>
<dl>
<dt>Port 8111</dt>
<dd>
This is the management web service
</dd>
<dt>Port 8112</dt>
<dd>
This is the management JSON API for <code>cold</code>
</dd>
</dl>
<p>In a remote deployment you’d setup up to run these services using
systemd service scripts. See <a href="deployment.html">deployments</a>
documentation for details.</p>
</section>
<footer>
<span>© 2022 <a href="https://www.library.caltech.edu/copyright">Caltech Library</a></span>
<address>1200 E California Blvd, Mail Code 1-32, Pasadena, CA 91125-3200</address>
<span><a href="mailto:library@caltech.edu">Email Us</a></span>
<span>Phone: <a href="tel:+1-626-395-3405">(626)395-3405</a></span>
</footer>
</body>
</html>