carta-controller 5.0.0-beta.1 → 5.0.0-beta.1c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/example_config.json +4 -4
- package/config/example_nginx.conf.stub +5 -8
- package/config/example_sudoers_conf.stub +1 -1
- package/docs/requirements.txt +1 -0
- package/docs/src/conf.py +1 -0
- package/docs/src/configuration.rst +11 -5
- package/docs/src/index.rst +10 -10
- package/docs/src/installation.rst +180 -8
- package/docs/src/introduction.rst +2 -2
- package/docs/src/step_by_step.rst +576 -0
- package/package.json +2 -2
- package/docs/src/almalinux8_instructions.rst +0 -281
- package/docs/src/ubuntu_focal_instructions.rst +0 -127
|
@@ -0,0 +1,576 @@
|
|
|
1
|
+
.. _step_by_step:
|
|
2
|
+
|
|
3
|
+
Step-by-step instructions for a complete deployment
|
|
4
|
+
===================================================
|
|
5
|
+
|
|
6
|
+
.. _sbs_overview:
|
|
7
|
+
|
|
8
|
+
Overview
|
|
9
|
+
--------
|
|
10
|
+
|
|
11
|
+
.. note::
|
|
12
|
+
|
|
13
|
+
These instructions aim to be a complete guide for installing CARTA for multiple users on a dedicated server, with authentication of local users via PAM, and other simple suggested defaults. If you are integrating CARTA into an existing system, you may need to adjust some of these steps. Please refer to the more detailed :ref:`installation` and :ref:`configuration` instructions for more options.
|
|
14
|
+
|
|
15
|
+
.. tabs::
|
|
16
|
+
|
|
17
|
+
.. tab:: Ubuntu
|
|
18
|
+
|
|
19
|
+
.. note::
|
|
20
|
+
|
|
21
|
+
CARTA version 4.x is supported on Ubuntu 20.04 (Focal Fossa) and 22.04 (Jammy Jellyfish). CARTA version 5.x is supported on Ubuntu 22.04 (Jammy Jellyfish) and 24.04 (Noble Numbat).
|
|
22
|
+
|
|
23
|
+
The Ubuntu instructions can be used almost unchanged on Ubuntu 20.04 (Focal Fossa). We note differences where they occur. They should also work on equivalent Ubuntu-based distributions, and may work with some adjustments on other Debian-based distributions and non-LTS Ubuntu releases.
|
|
24
|
+
|
|
25
|
+
.. tab:: AlmaLinux
|
|
26
|
+
|
|
27
|
+
.. note::
|
|
28
|
+
|
|
29
|
+
CARTA versions 4.x and 5.x are both supported on AlmaLinux 8 and 9. The AlmaLinux instructions should also work on other equivalent RPM-based distributions.
|
|
30
|
+
|
|
31
|
+
We also support legacy installations of CARTA 4.x on RHEL 7 and CentOS 7, but as both of these releases have reached end of life and are widely unsupported, we do not recommend using them for new installations. Adapting these instructions to these releases requires multiple workarounds, which are outside the scope of this document.
|
|
32
|
+
|
|
33
|
+
.. _sbs_prerequisites:
|
|
34
|
+
|
|
35
|
+
Prerequisites
|
|
36
|
+
~~~~~~~~~~~~~
|
|
37
|
+
|
|
38
|
+
These instructions assume that you are logged in as an ordinary user with passwordless ``sudo`` access. Ubuntu server images have a default ``ubuntu`` user configured with these privileges. On AlmaLinux this user is called ``almalinux``.
|
|
39
|
+
|
|
40
|
+
We assume that your shell is ``bash``. ``curl`` and ``vim`` must be installed.
|
|
41
|
+
|
|
42
|
+
.. tabs::
|
|
43
|
+
|
|
44
|
+
.. tab:: Ubuntu
|
|
45
|
+
|
|
46
|
+
.. code-block:: shell
|
|
47
|
+
|
|
48
|
+
sudo apt-get install vim curl
|
|
49
|
+
|
|
50
|
+
.. tab:: AlmaLinux
|
|
51
|
+
|
|
52
|
+
.. code-block:: shell
|
|
53
|
+
|
|
54
|
+
sudo dnf install vim curl
|
|
55
|
+
|
|
56
|
+
We include instructions for configuring SSL in your webserver. This requires either a domain name and certificates provided by your organisation, or a domain from a provider compatible with Let's Encrypt (or your preferred certificate authority). Domain name setup is outside the scope of this document.
|
|
57
|
+
|
|
58
|
+
.. _sbs_dependencies:
|
|
59
|
+
|
|
60
|
+
Install dependencies
|
|
61
|
+
--------------------
|
|
62
|
+
|
|
63
|
+
.. _sbs_mongo:
|
|
64
|
+
|
|
65
|
+
Install MongoDB
|
|
66
|
+
~~~~~~~~~~~~~~~
|
|
67
|
+
|
|
68
|
+
.. tabs::
|
|
69
|
+
|
|
70
|
+
.. tab:: Ubuntu
|
|
71
|
+
|
|
72
|
+
We recommend installing the `Community Edition Debian package of MongoDB <https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/>`_ on all supported Ubuntu versions.
|
|
73
|
+
|
|
74
|
+
.. note::
|
|
75
|
+
|
|
76
|
+
There is a ``mongodb`` package available from the official Ubuntu repositories on Ubuntu 20.04 (Focal Fossa). However, this package is older than the Community Edition package, and it has been discontinued in later LTS releases.
|
|
77
|
+
|
|
78
|
+
.. code-block:: shell
|
|
79
|
+
|
|
80
|
+
# Import public key for MongoDB repo
|
|
81
|
+
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
|
|
82
|
+
|
|
83
|
+
# Add MongoDB repository
|
|
84
|
+
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -cs)/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
|
|
85
|
+
|
|
86
|
+
sudo apt-get update
|
|
87
|
+
|
|
88
|
+
# Install MongoDB
|
|
89
|
+
sudo apt-get install mongodb-org
|
|
90
|
+
|
|
91
|
+
# Start MongoDB
|
|
92
|
+
sudo systemctl start mongod
|
|
93
|
+
|
|
94
|
+
# Make MongoDB start automatically on system restart
|
|
95
|
+
sudo systemctl enable mongod
|
|
96
|
+
|
|
97
|
+
.. tab:: AlmaLinux
|
|
98
|
+
|
|
99
|
+
We recommend installing the `Community Edition RPM package of MongoDB <https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-red-hat/>`_ on all supported RPM-based distributions. These are instructions for installing version 8.0, which is available on AlmaLinux 8 and 9.
|
|
100
|
+
|
|
101
|
+
.. code-block:: shell
|
|
102
|
+
|
|
103
|
+
# Add MongoDB repository
|
|
104
|
+
sudo bash -c 'cat > /etc/yum.repos.d/mongodb-org.repo' << 'EOF'
|
|
105
|
+
[mongodb-org-8.0]
|
|
106
|
+
name=MongoDB Repository
|
|
107
|
+
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/8.0/$basearch/
|
|
108
|
+
gpgcheck=1
|
|
109
|
+
enabled=1
|
|
110
|
+
gpgkey=https://www.mongodb.org/static/pgp/server-8.0.asc
|
|
111
|
+
EOF
|
|
112
|
+
|
|
113
|
+
sudo dnf update
|
|
114
|
+
|
|
115
|
+
# Install MongoDB:
|
|
116
|
+
sudo dnf install mongodb-org
|
|
117
|
+
|
|
118
|
+
# Start MongoDB
|
|
119
|
+
sudo systemctl start mongod
|
|
120
|
+
|
|
121
|
+
# Make MongoDB start automatically on system restart
|
|
122
|
+
sudo systemctl enable mongod
|
|
123
|
+
|
|
124
|
+
Please refer to the `detailed MongoDB installation instructions <https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/>`_ for more information.
|
|
125
|
+
|
|
126
|
+
.. _sbs_packages:
|
|
127
|
+
|
|
128
|
+
Install CARTA backend and other required packages
|
|
129
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
130
|
+
|
|
131
|
+
.. tabs::
|
|
132
|
+
|
|
133
|
+
.. tab:: Ubuntu
|
|
134
|
+
|
|
135
|
+
Ubuntu packages for CARTA components are available from our `Launchpad PPA <https://launchpad.net/~cartavis-team/+archive/ubuntu/carta>`_.
|
|
136
|
+
|
|
137
|
+
.. code-block:: shell
|
|
138
|
+
|
|
139
|
+
# Add CARTA PPA
|
|
140
|
+
sudo add-apt-repository ppa:cartavis-team/carta
|
|
141
|
+
sudo apt-get update
|
|
142
|
+
|
|
143
|
+
# Install the backend package with all dependencies
|
|
144
|
+
sudo apt-get install carta-backend
|
|
145
|
+
|
|
146
|
+
# Install additional packages
|
|
147
|
+
sudo apt-get install g++ make build-essential libpam0g-dev
|
|
148
|
+
|
|
149
|
+
.. note::
|
|
150
|
+
|
|
151
|
+
The ``carta-backend`` package is updated with every stable CARTA release. If you would like to install the latest **beta** version of CARTA, or to receive beta release updates as well as stable release updates in the future, please install the ``carta-backend-beta`` package instead:
|
|
152
|
+
|
|
153
|
+
.. code-block:: shell
|
|
154
|
+
|
|
155
|
+
sudo apt-get install carta-backend-beta
|
|
156
|
+
|
|
157
|
+
These packages cannot be installed simultaneously, as they use the same install locations. If you install one, you will automatically be prompted to uninstall the other.
|
|
158
|
+
|
|
159
|
+
Make sure that you install the matching controller version (using the ``beta`` tag).
|
|
160
|
+
|
|
161
|
+
.. note::
|
|
162
|
+
|
|
163
|
+
Please note that Ubuntu packages for CARTA 4.x are only available for Focal and Jammy, and packages for CARTA 5.x are only available for Jammy and Noble.
|
|
164
|
+
|
|
165
|
+
.. tab:: AlmaLinux
|
|
166
|
+
|
|
167
|
+
RPM packages of the CARTA backend are available from our `Copr repository <https://copr.fedorainfracloud.org/coprs/cartavis/carta/>`_.
|
|
168
|
+
|
|
169
|
+
.. code-block:: shell
|
|
170
|
+
|
|
171
|
+
# Install EPEL repository
|
|
172
|
+
sudo dnf install epel-release
|
|
173
|
+
|
|
174
|
+
# Install the CARTA backend
|
|
175
|
+
sudo dnf install 'dnf-command(copr)'
|
|
176
|
+
sudo dnf copr enable cartavis/carta
|
|
177
|
+
sudo dnf install carta-backend
|
|
178
|
+
|
|
179
|
+
# Install additional packages
|
|
180
|
+
|
|
181
|
+
sudo dnf install python3 make gcc-c++ pam-devel
|
|
182
|
+
|
|
183
|
+
.. note::
|
|
184
|
+
|
|
185
|
+
A minimum Python version of 3.8 is required to build the controller. On AlmaLinux 8, install the ``python38`` or ``python39`` package instead. If multiple versions are installed, you must reconfigure the default.
|
|
186
|
+
|
|
187
|
+
.. code-block:: shell
|
|
188
|
+
|
|
189
|
+
sudo dnf install python38
|
|
190
|
+
sudo update-alternatives --config python3
|
|
191
|
+
|
|
192
|
+
Follow the prompts, and check that the default version is correct: ``python3 --version``.
|
|
193
|
+
|
|
194
|
+
.. note::
|
|
195
|
+
|
|
196
|
+
The ``carta-backend`` package is updated with every stable CARTA release. If you would like to install the latest **beta** version of CARTA, or to receive beta release updates as well as stable release updates in the future, please install ``carta-backend-beta`` instead:
|
|
197
|
+
|
|
198
|
+
.. code-block:: shell
|
|
199
|
+
|
|
200
|
+
sudo dnf install carta-backend-beta
|
|
201
|
+
|
|
202
|
+
We currently install the beta version of the backend package in a non-standard location, ``/opt/carta-beta``. This makes it possible to install the stable and beta packages simultaneously. When you use this package, remember to change the path to the backend executable to ``/opt/carta-beta/bin/carta_backend`` in both the sudoers file and the controller configuration.
|
|
203
|
+
|
|
204
|
+
Make sure that you install the matching controller version (using the ``beta`` tag).
|
|
205
|
+
|
|
206
|
+
.. _sbs_node:
|
|
207
|
+
|
|
208
|
+
Install Node.js
|
|
209
|
+
~~~~~~~~~~~~~~~
|
|
210
|
+
|
|
211
|
+
We recommend installing the `latest LTS version <https://github.com/nodejs/release#release-schedule>`_ of Node.js (currently v22) from the `NodeSource repository <https://github.com/nodesource/distributions>`_. The minimum version required for CARTA 5.x is v20. The oldest version known to work with CARTA 4.x is v16.
|
|
212
|
+
|
|
213
|
+
.. tabs::
|
|
214
|
+
|
|
215
|
+
.. tab:: Ubuntu
|
|
216
|
+
|
|
217
|
+
.. code-block:: shell
|
|
218
|
+
|
|
219
|
+
# Install the latest Node.js LTS repo
|
|
220
|
+
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
|
221
|
+
|
|
222
|
+
# Install Node.js (includes NPM)
|
|
223
|
+
sudo apt-get install nodejs
|
|
224
|
+
|
|
225
|
+
.. tab:: AlmaLinux
|
|
226
|
+
|
|
227
|
+
.. code-block:: shell
|
|
228
|
+
|
|
229
|
+
# Install the latest Node.js LTS repo
|
|
230
|
+
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo -E bash -
|
|
231
|
+
|
|
232
|
+
# Install Node.js (includes NPM)
|
|
233
|
+
sudo dnf install nodejs
|
|
234
|
+
|
|
235
|
+
.. note::
|
|
236
|
+
|
|
237
|
+
Node.js and NPM can also be installed from the AlmaLinux AppStream repository on AlmaLinux 8 and 9. This version of ``npm`` installs executables into ``/usr/local/bin``. If you use it, be sure to update the kill script path in the sudoers file and controller configuration.
|
|
238
|
+
|
|
239
|
+
.. code-block:: shell
|
|
240
|
+
|
|
241
|
+
# Install Node.js and NPM
|
|
242
|
+
sudo dnf module enable nodejs:22
|
|
243
|
+
sudo dnf install nodejs npm
|
|
244
|
+
|
|
245
|
+
.. _sbs_install_controller:
|
|
246
|
+
|
|
247
|
+
Install CARTA controller
|
|
248
|
+
------------------------
|
|
249
|
+
|
|
250
|
+
.. code-block:: shell
|
|
251
|
+
|
|
252
|
+
# Install carta-controller (includes frontend dependency)
|
|
253
|
+
sudo npm install -g --unsafe-perm carta-controller
|
|
254
|
+
|
|
255
|
+
.. note::
|
|
256
|
+
|
|
257
|
+
If you would like to install the latest **beta** release of CARTA, please install the ``beta`` tag of the controller instead:
|
|
258
|
+
|
|
259
|
+
.. code-block:: shell
|
|
260
|
+
|
|
261
|
+
sudo npm install -g --unsafe-perm carta-controller@beta
|
|
262
|
+
|
|
263
|
+
.. note::
|
|
264
|
+
|
|
265
|
+
Do not pass the ``--unsafe-perm`` flag to ``npm`` if using a custom installation of Node.js in a local directory.
|
|
266
|
+
|
|
267
|
+
.. _sbs_system_config:
|
|
268
|
+
|
|
269
|
+
System configuration
|
|
270
|
+
--------------------
|
|
271
|
+
|
|
272
|
+
.. _sbs_users_dirs:
|
|
273
|
+
|
|
274
|
+
Set up users and directories
|
|
275
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
276
|
+
|
|
277
|
+
All users who should have access to CARTA must belong to a group that identifies them (assumed here to be called ``carta-users``).
|
|
278
|
+
|
|
279
|
+
For security reasons, we do not recommend running the CARTA controller as the root user. Instead, create a dedicated user called ``carta`` for this purpose. The ``carta`` user should *not* be added to the ``carta-users`` group.
|
|
280
|
+
|
|
281
|
+
.. code-block:: shell
|
|
282
|
+
|
|
283
|
+
# Create a group to identify CARTA users
|
|
284
|
+
sudo groupadd carta-users
|
|
285
|
+
|
|
286
|
+
# Create a 'carta' user to run the controller
|
|
287
|
+
sudo useradd --system --create-home --home /var/lib/carta --shell=/bin/bash --user-group carta
|
|
288
|
+
|
|
289
|
+
# Create a log directory owned by carta
|
|
290
|
+
sudo mkdir -p /var/log/carta
|
|
291
|
+
sudo chown carta: /var/log/carta
|
|
292
|
+
|
|
293
|
+
# Create a config directory owned by carta
|
|
294
|
+
sudo mkdir -p /etc/carta
|
|
295
|
+
sudo chown carta: /etc/carta
|
|
296
|
+
|
|
297
|
+
.. _sbs_perms:
|
|
298
|
+
|
|
299
|
+
Set up permissions
|
|
300
|
+
~~~~~~~~~~~~~~~~~~
|
|
301
|
+
|
|
302
|
+
.. warning::
|
|
303
|
+
|
|
304
|
+
If you are using PAM authentication of local users, the ``carta`` user needs read access to the shadow file. This step is not required if you are configuring a different form of user authentication (e.g. LDAP).
|
|
305
|
+
|
|
306
|
+
.. tabs::
|
|
307
|
+
|
|
308
|
+
.. tab:: Ubuntu
|
|
309
|
+
|
|
310
|
+
On Ubuntu by default the shadow file is group-owned by a shadow group which has read access. You only have to add the ``carta`` user to the group.
|
|
311
|
+
|
|
312
|
+
.. code-block:: shell
|
|
313
|
+
|
|
314
|
+
# Add 'carta' user to the shadow group
|
|
315
|
+
sudo usermod -a --groups shadow carta
|
|
316
|
+
|
|
317
|
+
.. tab:: AlmaLinux
|
|
318
|
+
|
|
319
|
+
On AlmaLinux by default the shadow file is accessible only by root and has minimal permissions. You have to create a new ``shadow`` group for the ``carta`` user and modify the file's permissions to provide access.
|
|
320
|
+
|
|
321
|
+
.. code-block:: shell
|
|
322
|
+
|
|
323
|
+
# Create 'shadow' group
|
|
324
|
+
sudo groupadd --system shadow
|
|
325
|
+
|
|
326
|
+
# Change group ownership and permissions of the shadow file
|
|
327
|
+
sudo chgrp shadow /etc/shadow
|
|
328
|
+
sudo chmod g+r /etc/shadow
|
|
329
|
+
|
|
330
|
+
# It's advisable to reboot before proceeding
|
|
331
|
+
sudo reboot
|
|
332
|
+
|
|
333
|
+
# Add 'carta' user to the shadow group
|
|
334
|
+
sudo usermod -a --groups shadow carta
|
|
335
|
+
|
|
336
|
+
The ``carta`` user must be given permission to execute the CARTA backend and the script to kill the CARTA backend on behalf of CARTA users using ``sudo`` without providing a password.
|
|
337
|
+
|
|
338
|
+
.. code-block:: shell
|
|
339
|
+
|
|
340
|
+
# Edit sudoers file to grant 'carta' user permission to execute
|
|
341
|
+
# the backend and kill script as any user in `carta-users` group
|
|
342
|
+
sudo visudo -f /etc/sudoers.d/carta_controller
|
|
343
|
+
|
|
344
|
+
An :ref:`example sudoers configuration<example_sudoers>` is provided in the configuration section. Make sure that the paths to the two executables in the file match their install locations on your system.
|
|
345
|
+
|
|
346
|
+
.. _sbs_webserver:
|
|
347
|
+
|
|
348
|
+
Configure webserver
|
|
349
|
+
-------------------
|
|
350
|
+
|
|
351
|
+
.. _sbs_nginx:
|
|
352
|
+
|
|
353
|
+
Install and configure Nginx
|
|
354
|
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
355
|
+
|
|
356
|
+
The CARTA controller requires a webserver. We provide instructions for `Nginx <https://www.nginx.com/>`_.
|
|
357
|
+
|
|
358
|
+
.. tabs::
|
|
359
|
+
|
|
360
|
+
.. tab:: Ubuntu
|
|
361
|
+
|
|
362
|
+
.. code-block:: shell
|
|
363
|
+
|
|
364
|
+
# Install Nginx
|
|
365
|
+
sudo apt-get install nginx
|
|
366
|
+
|
|
367
|
+
.. tab:: AlmaLinux
|
|
368
|
+
|
|
369
|
+
.. code-block:: shell
|
|
370
|
+
|
|
371
|
+
# Install Nginx
|
|
372
|
+
sudo dnf install nginx
|
|
373
|
+
|
|
374
|
+
# Start Nginx
|
|
375
|
+
sudo systemctl start nginx
|
|
376
|
+
|
|
377
|
+
# Make Nginx start automatically
|
|
378
|
+
sudo systemctl enable nginx
|
|
379
|
+
|
|
380
|
+
# Configure SELinux
|
|
381
|
+
sudo setsebool -P httpd_can_network_connect on
|
|
382
|
+
|
|
383
|
+
.. note::
|
|
384
|
+
|
|
385
|
+
If you have also installed a firewall on your server, ensure that it allows both HTTP and HTTPS traffic.
|
|
386
|
+
|
|
387
|
+
.. _sbs_ssl:
|
|
388
|
+
|
|
389
|
+
Configure SSL
|
|
390
|
+
~~~~~~~~~~~~~
|
|
391
|
+
|
|
392
|
+
For security reasons, we strongly recommend configuring SSL on your server and redirecting all HTTP traffic to HTTPS. We provide instructions for obtaining certificates from `Let's Encrypt <https://letsencrypt.org>`_ using the `Certbot <https://certbot.eff.org/>`_ tool. Certbot will automatically renew your certificates for you. If your organisation can provide you with certificates for your domain, you can skip this step.
|
|
393
|
+
|
|
394
|
+
.. note::
|
|
395
|
+
|
|
396
|
+
Let's Encrypt only issues certificates for publically resolvable domain names, so make sure that you have configured DNS appropriately before this point, and that Nginx is already running and serving its default index page over HTTP at your public domain.
|
|
397
|
+
|
|
398
|
+
.. tabs::
|
|
399
|
+
|
|
400
|
+
.. tab:: Ubuntu
|
|
401
|
+
|
|
402
|
+
.. code-block:: shell
|
|
403
|
+
|
|
404
|
+
# Install certbot
|
|
405
|
+
sudo apt-get install certbot python3-certbot-nginx
|
|
406
|
+
|
|
407
|
+
# Run certbot and follow the prompts to generate the certificates
|
|
408
|
+
# Note the certificate and key locations which are printed out
|
|
409
|
+
sudo certbot certonly --nginx
|
|
410
|
+
|
|
411
|
+
.. note::
|
|
412
|
+
|
|
413
|
+
For simplicity we have provided instructions for installing Certbot from the Ubuntu repositories with ``apt``. However, these packages are far behind the latest version, particularly in older Ubuntu releases. The `official instructions <https://certbot.eff.org/instructions?ws=nginx&os=snap>`_ recommend installation via ``snap``.
|
|
414
|
+
|
|
415
|
+
.. tab:: AlmaLinux
|
|
416
|
+
|
|
417
|
+
.. code-block:: shell
|
|
418
|
+
|
|
419
|
+
# Install certbot
|
|
420
|
+
sudo dnf install certbot python3-certbot-nginx
|
|
421
|
+
|
|
422
|
+
# Run certbot and follow the prompts to generate the certificates
|
|
423
|
+
# Note the certificate and key locations which are printed out
|
|
424
|
+
sudo certbot certonly --nginx
|
|
425
|
+
|
|
426
|
+
.. note::
|
|
427
|
+
|
|
428
|
+
For simplicity we have provided instructions for installing Certbot from the EPEL repositories with ``dnf``. However, these packages are far behind the latest version, particularly in older AlmaLinux releases. The `official instructions <https://certbot.eff.org/instructions?ws=nginx&os=snap>`_ recommend installation via ``snap``.
|
|
429
|
+
|
|
430
|
+
Once you have obtained the certificates, edit the Nginx configuration. A :ref:`sample configuration file<example_nginx>` is provided in the configuration section. Adjust the paths to the certificate and the certificate key, using the paths printed by ``certbot`` in the previous step.
|
|
431
|
+
|
|
432
|
+
.. code-block:: shell
|
|
433
|
+
|
|
434
|
+
# Create an Nginx configuration file for CARTA
|
|
435
|
+
sudo vim /etc/nginx/conf.d/carta.conf
|
|
436
|
+
|
|
437
|
+
# Restart Nginx
|
|
438
|
+
sudo systemctl restart nginx
|
|
439
|
+
|
|
440
|
+
.. _sbs_config_controller:
|
|
441
|
+
|
|
442
|
+
Configure CARTA controller
|
|
443
|
+
--------------------------
|
|
444
|
+
|
|
445
|
+
.. _sbs_config_basic:
|
|
446
|
+
|
|
447
|
+
Basic configuration
|
|
448
|
+
~~~~~~~~~~~~~~~~~~~
|
|
449
|
+
|
|
450
|
+
These configuration steps should be performed as the ``carta`` user. This user should own all the files in the ``/etc/carta`` directory.
|
|
451
|
+
|
|
452
|
+
The CARTA controller uses SSL keys for authentication.
|
|
453
|
+
|
|
454
|
+
.. code-block:: shell
|
|
455
|
+
|
|
456
|
+
# Switch to carta user
|
|
457
|
+
sudo su - carta
|
|
458
|
+
|
|
459
|
+
# Generate private/public keys
|
|
460
|
+
openssl genrsa -out /etc/carta/carta_private.pem 4096
|
|
461
|
+
openssl rsa -in /etc/carta/carta_private.pem -outform PEM -pubout -out /etc/carta/carta_public.pem
|
|
462
|
+
|
|
463
|
+
Edit ``/etc/carta/config.json`` to customise the appearance of the dashboard and other controller options. We recommend configuring options for the backend in a separate ``/etc/carta/backend.json`` file. We provide sample :ref:`controller<example_config>` and :ref:`backend<example_backend>` configuration files. Please refer to the :ref:`configuration` instructions for more details.
|
|
464
|
+
|
|
465
|
+
.. code-block:: shell
|
|
466
|
+
|
|
467
|
+
# Create a controller configuration file
|
|
468
|
+
vim /etc/carta/config.json
|
|
469
|
+
|
|
470
|
+
# Create a global backend configuration file
|
|
471
|
+
vim /etc/carta/backend.json
|
|
472
|
+
|
|
473
|
+
.. note::
|
|
474
|
+
|
|
475
|
+
If you use ``/etc/carta/backend.json``, please ensure that it is readable by all users in the ``carta-users`` group, *and* that ``/etc/carta/`` is readable and executable by these users.
|
|
476
|
+
|
|
477
|
+
.. _sbs_config_test:
|
|
478
|
+
|
|
479
|
+
Test CARTA controller
|
|
480
|
+
~~~~~~~~~~~~~~~~~~~~~
|
|
481
|
+
|
|
482
|
+
To test that the controller is configured correctly, use the built-in test feature. You will need at least one user in the ``carta-users`` group.
|
|
483
|
+
|
|
484
|
+
.. code-block:: shell
|
|
485
|
+
|
|
486
|
+
# Switch back to user with sudo access
|
|
487
|
+
exit
|
|
488
|
+
|
|
489
|
+
# Create a test user in the 'carta-users' group
|
|
490
|
+
sudo useradd --create-home --groups carta-users alice
|
|
491
|
+
sudo passwd alice
|
|
492
|
+
|
|
493
|
+
# Switch to 'carta' user
|
|
494
|
+
sudo su - carta
|
|
495
|
+
|
|
496
|
+
# Run the controller test
|
|
497
|
+
carta-controller --verbose --test alice
|
|
498
|
+
|
|
499
|
+
Please refer to the detailed configuration instructions for more information about the :ref:`test feature<test-config>`.
|
|
500
|
+
|
|
501
|
+
.. _sbs_config_start:
|
|
502
|
+
|
|
503
|
+
Start CARTA controller
|
|
504
|
+
~~~~~~~~~~~~~~~~~~~~~~
|
|
505
|
+
|
|
506
|
+
.. code-block:: shell
|
|
507
|
+
|
|
508
|
+
# Switch back to user with sudo access
|
|
509
|
+
exit
|
|
510
|
+
|
|
511
|
+
# Copy test image to user's home directory
|
|
512
|
+
sudo cp /usr/share/carta/default.fits /home/alice/test.fits
|
|
513
|
+
sudo chown alice: /home/alice/test.fits
|
|
514
|
+
|
|
515
|
+
# Switch to carta user
|
|
516
|
+
sudo su - carta
|
|
517
|
+
|
|
518
|
+
carta-controller
|
|
519
|
+
|
|
520
|
+
You should now be able to navigate to your domain, log into CARTA with your test user's credentials, and open and view the test image.
|
|
521
|
+
|
|
522
|
+
.. note::
|
|
523
|
+
|
|
524
|
+
In the example above, the default test image packaged with the CARTA backend is copied into the test user's home directory -- if you configured a different user directory structure, or installed a custom backend, please adjust these paths.
|
|
525
|
+
|
|
526
|
+
.. warning::
|
|
527
|
+
|
|
528
|
+
A known issue in the CARTA v5 beta release prevents the packaged test image from rendering correctly. Please use a different image to test this version of CARTA. Example FITS images can be downloaded from various astronomical `institutions <https://fits.gsfc.nasa.gov/fits_samples.html>`_ and `software projects <https://www.astropy.org/astropy-data/>`_.
|
|
529
|
+
|
|
530
|
+
.. _sbs_config_autostart:
|
|
531
|
+
|
|
532
|
+
Configure autostart
|
|
533
|
+
~~~~~~~~~~~~~~~~~~~
|
|
534
|
+
|
|
535
|
+
The PM2 service will start the controller automatically after a reboot.
|
|
536
|
+
|
|
537
|
+
.. code-block:: shell
|
|
538
|
+
|
|
539
|
+
# Switch to user with sudo access
|
|
540
|
+
exit
|
|
541
|
+
|
|
542
|
+
# Install PM2 process manager
|
|
543
|
+
sudo npm install -g pm2
|
|
544
|
+
|
|
545
|
+
# Switch to carta user
|
|
546
|
+
sudo su - carta
|
|
547
|
+
|
|
548
|
+
# Generate startup script
|
|
549
|
+
pm2 startup
|
|
550
|
+
|
|
551
|
+
# Switch back to user with sudo privileges
|
|
552
|
+
exit
|
|
553
|
+
|
|
554
|
+
# Execute the output of the 'pm startup' command
|
|
555
|
+
|
|
556
|
+
# Switch back to the 'carta' user
|
|
557
|
+
sudo su - carta
|
|
558
|
+
|
|
559
|
+
# Start the controller
|
|
560
|
+
pm2 start carta-controller
|
|
561
|
+
|
|
562
|
+
# Save the running process
|
|
563
|
+
pm2 save
|
|
564
|
+
|
|
565
|
+
Please refer to the `PM2 documentation <https://pm2.keymetrics.io/docs/usage/startup/>`_ for more detailed instructions.
|
|
566
|
+
|
|
567
|
+
.. _sbs_config_cleanup:
|
|
568
|
+
|
|
569
|
+
Clean up
|
|
570
|
+
~~~~~~~~
|
|
571
|
+
|
|
572
|
+
Once you have finished testing the controller, remove the test user.
|
|
573
|
+
|
|
574
|
+
.. code-block:: shell
|
|
575
|
+
|
|
576
|
+
sudo userdel --remove alice
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "carta-controller",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.1c",
|
|
4
4
|
"description": "NodeJS-based controller for CARTA",
|
|
5
5
|
"repository": "https://github.com/CARTAvis/carta-controller",
|
|
6
6
|
"homepage": "https://www.cartavis.org",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"ajv-formats": "^3.0.1",
|
|
25
25
|
"axios": "^0.28.0",
|
|
26
26
|
"body-parser": "^1.19.0",
|
|
27
|
-
"carta-frontend": "^5.0.0-beta.
|
|
27
|
+
"carta-frontend": "^5.0.0-beta.1c",
|
|
28
28
|
"chalk": "^4.1.2",
|
|
29
29
|
"compression": "^1.8.0",
|
|
30
30
|
"cookie-parser": "^1.4.7",
|