carta-controller 3.0.0-beta.1d → 3.0.0-beta.2

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # CARTA Controller
2
2
 
3
- [![carta version](https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.1c-brightgreen)](https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.1c)
4
- [![npm version](https://img.shields.io/npm/v/carta-controller/dev.svg?style=flat)](https://npmjs.org/package/carta-controller "View this project on npm")
3
+ [![carta version](https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.2-brightgreen)](https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.2)
4
+ [![npm version](https://img.shields.io/npm/v/carta-controller/beta.svg?style=flat)](https://npmjs.org/package/carta-controller "View this project on npm")
5
5
  ![last commit](https://img.shields.io/github/last-commit/CARTAvis/carta-controller)
6
6
  ![commit activity](https://img.shields.io/github/commit-activity/m/CARTAvis/carta-controller)
7
7
 
@@ -9,4 +9,4 @@ The CARTA controller provides a simple dashboard which authenticates users and a
9
9
 
10
10
  For installation and configuration instructions, and more detailed information about the controller's features, please consult [the full documentation on ReadTheDocs](https://carta-controller.readthedocs.io/en/dev/).
11
11
 
12
- If you encounter a problem with the controller or documentation, please submit an issue in the controller repo. If you need assistance in configuration or deployment, please contact the [CARTA helpdesk](mailto:carta_helpdesk@asiaa.sinica.edu.tw).
12
+ If you encounter a problem with the controller or documentation, please submit an issue in the controller repo. If you need assistance in configuration or deployment, please contact the [CARTA helpdesk](mailto:support@carta.freshdesk.com).
@@ -405,7 +405,7 @@
405
405
  "default": false
406
406
  },
407
407
  "serverAddress": {
408
- "description": "Public-facing server address",
408
+ "description": "Public-facing server address. If this is specified, all requests will be redirected to this address, otherwise any address used will be preserved",
409
409
  "type": "string",
410
410
  "format": "uri",
411
411
  "pattern": "^https?://"
@@ -474,7 +474,7 @@
474
474
  "default": "/usr/local/bin/carta-kill-script"
475
475
  },
476
476
  "rootFolderTemplate": {
477
- "description": "Top-level path of directories accessible to CARTA. The `{username}` placeholder will be replaced with the username",
477
+ "description": "Top-level path of directories accessible to CARTA. The `{username}` placeholder will be replaced with the username. Defaults to `/usr/share/carta` if it exists, or `/usr/local/share/carta` if it exists. If neither exists and no default is provided, the controller exits with an error",
478
478
  "type": "string",
479
479
  "examples": [
480
480
  "/home/{username}",
@@ -482,7 +482,7 @@
482
482
  ]
483
483
  },
484
484
  "baseFolderTemplate": {
485
- "description": "Starting directory of CARTA. Must be a subfolder of rootFolderTemplate. The `{username}` placeholder will be replaced with the username",
485
+ "description": "Starting directory of CARTA. Must be a subfolder of rootFolderTemplate. The `{username}` placeholder will be replaced with the username. Defaults to the same value as `rootFolderTemplate`",
486
486
  "type": "string",
487
487
  "examples": [
488
488
  "/home/{username}/CARTA",
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "https://cartavis.org/schemas/preference_backend_schema_2.json",
3
+ "idle_timeout": 14400,
4
+ "omp_threads": 8,
5
+ "exit_timeout": 0,
6
+ "initial_timeout": 30
7
+ }
@@ -0,0 +1,97 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Backend preferences",
4
+ "description": "Schema for CARTA backend preferences (Version 2)",
5
+ "$id": "carta_backend_preferences_2",
6
+ "required": [],
7
+ "properties": {
8
+ "verbosity": {
9
+ "type": "integer",
10
+ "enum": [
11
+ 0,
12
+ 1,
13
+ 2,
14
+ 3,
15
+ 4,
16
+ 5
17
+ ],
18
+ "default": 4
19
+ },
20
+ "no_log": {
21
+ "type": "boolean",
22
+ "default": true
23
+ },
24
+ "log_performance": {
25
+ "type": "boolean",
26
+ "default": false
27
+ },
28
+ "log_protocol_messages": {
29
+ "type": "boolean",
30
+ "default": false
31
+ },
32
+ "no_http": {
33
+ "type": "boolean",
34
+ "default": false
35
+ },
36
+ "no_browser": {
37
+ "type": "boolean",
38
+ "default": false
39
+ },
40
+ "browser": {
41
+ "type": "string",
42
+ "default": ""
43
+ },
44
+ "host": {
45
+ "type": "string",
46
+ "minLength": 1,
47
+ "default": "0.0.0.0"
48
+ },
49
+ "port": {
50
+ "type": ["integer", "array"],
51
+ "default": 3002
52
+ },
53
+ "grpc_port": {
54
+ "type": "integer",
55
+ "default": -1
56
+ },
57
+ "omp_threads": {
58
+ "type": "integer",
59
+ "default": -1
60
+ },
61
+ "top_level_folder": {
62
+ "type": "string",
63
+ "minLength": 1,
64
+ "default": "/"
65
+ },
66
+ "frontend_folder": {
67
+ "type": "string",
68
+ "minLength": 1,
69
+ "default": ""
70
+ },
71
+ "exit_timeout": {
72
+ "type": "integer",
73
+ "default": -1
74
+ },
75
+ "initial_timeout": {
76
+ "type": "integer",
77
+ "default": -1
78
+ },
79
+ "idle_timeout": {
80
+ "type": "integer",
81
+ "default": -1
82
+ },
83
+ "read_only_mode": {
84
+ "type": "boolean",
85
+ "default": false
86
+ },
87
+ "starting_folder": {
88
+ "type": "string",
89
+ "minLength": 1,
90
+ "default": ""
91
+ },
92
+ "event_thread_count": {
93
+ "type": "integer",
94
+ "default": -1
95
+ }
96
+ }
97
+ }
@@ -0,0 +1,248 @@
1
+ .. _centos8_instructions:
2
+
3
+ Step-by-step instructions for CentOS 8
4
+ ======================================
5
+
6
+ .. note::
7
+
8
+ These instructions should also work for RHEL 8, AlmaLinux, and Rocky Linux. Some changes may be necessary for RHEL 7 / CentOS 7.
9
+
10
+
11
+ 1. Install Node.js
12
+ ~~~~~~~~~~~~~~~~~~
13
+
14
+ The CARTA controller uses `Node.js <https://nodejs.org/>`_ and supports v12, v14, and v16. Node.js can easily be installed from the CentOS 8 AppStream repository. Here we install v14, as well as the ``npm`` package manager.
15
+
16
+ .. code-block:: shell
17
+
18
+ # Install Node.js v14:
19
+ sudo dnf module enable nodejs:14
20
+ sudo dnf install -y nodejs npm
21
+
22
+ # Check it is installed and working:
23
+ node --version
24
+ npm --version
25
+
26
+ 2. Install MongoDB
27
+ ~~~~~~~~~~~~~~~~~~
28
+
29
+ The CARTA controller uses `MongoDB <https://www.mongodb.com/>`_ to store user preferences, etc.. MongoDB is not available through the default CentOS 8 repositories, but we can add a custom repository to install it more easily.
30
+
31
+ .. code-block:: shell
32
+
33
+ # Create a custom MongoDB repo file:
34
+ sudo cat <<EOT >> /etc/yum.repos.d/mongodb-org.repo
35
+ [mongodb-org-4.4]
36
+ name=MongoDB Repository
37
+ baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
38
+ gpgcheck=1
39
+ enabled=1
40
+ gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
41
+ EOT
42
+
43
+ # Install MongoDB:
44
+ sudo dnf update
45
+ sudo dnf install -y mongodb-org
46
+
47
+ # Start and enable MongoDB to run on startup:
48
+ sudo systemctl start mongod
49
+ sudo systemctl enable mongod
50
+
51
+ # Check that it is working
52
+ sudo systemctl status mongod
53
+
54
+ .. note::
55
+
56
+ On RHEL7/CentOS7, MongoDB v14 can be installed as follows:
57
+ ``curl -fsSL https://rpm.nodesource.com/setup_14.x | bash - && yum install -y nodejs``
58
+
59
+
60
+ 3. Install the CARTA controller
61
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
62
+
63
+ The easiest way to install the CARTA controller is using ``npm``.
64
+
65
+ .. code-block:: shell
66
+
67
+ sudo dnf install -y python3 make gcc-c++
68
+ sudo npm install -g --unsafe-perm carta-controller@beta
69
+
70
+ .. note::
71
+
72
+ The CARTA controller executable will be installed at ``/usr/local/lib/node_modules/carta-controller``.
73
+ The CARTA frontend will be installed at ``/usr/local/lib/node_modules/carta-controller/node_modules/carta-frontend/build``.
74
+
75
+ .. note::
76
+
77
+ Do not pass the ``--unsafe-perm`` flag to ``npm`` if using a local install.
78
+
79
+ .. note::
80
+
81
+ On RHEL7/CentOS7 the CARTA controller package can not run with the default gcc version 4.8.5 (there would be an error due to ``node-linux-pam``).
82
+ A work around is to install a newer GCC version from source in order to get a newer ``libstdc++.so.6``, then add the location of the newer
83
+ ``libstdc++.so.6`` to the LD_LIBRARY_PATH. After that, the CARTA controller can run on RHEL7/CentOS7.
84
+
85
+
86
+
87
+ 4. Install the CARTA backend
88
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89
+
90
+ The easiest way may be to install the CARTA backend is from our cartavis RPM repository.
91
+
92
+ .. code-block:: shell
93
+
94
+ # Install the CARTA backend
95
+ sudo curl https://packages.cartavis.org/cartavis-el8.repo --output /etc/yum.repos.d/cartavis.repo
96
+ sudo dnf -y install 'dnf-command(config-manager)'
97
+ sudo dnf -y install epel-release
98
+ sudo dnf -y config-manager --set-enabled powertools
99
+ sudo dnf -y install carta-backend-beta
100
+
101
+ # Check that the backend can run and matches the major version number of the controller
102
+ /usr/bin/carta_backend --version
103
+
104
+
105
+ 5. Install Nginx
106
+ ~~~~~~~~~~~~~~~~
107
+
108
+ The CARTA controller requires a webserver. Here we use `NGINX <https://www.nginx.com/>`_, but Apache should work too.
109
+
110
+ .. code-block:: shell
111
+
112
+ # Install nginx:
113
+ sudo dnf install -y nginx
114
+ sudo systemctl start nginx
115
+ sudo systemctl enable nginx
116
+ sudo setsebool -P httpd_can_network_connect 1
117
+ sudo firewall-cmd --permanent --zone=public --add-service=http
118
+ sudo firewall-cmd --permanent --zone=public --add-service=https
119
+ sudo firewall-cmd --reload
120
+
121
+ # Set up the nginx configuration file using our sample configuration file linked below:
122
+ sudo cd /etc/nginx/conf.d/
123
+ sudo vi /etc/nginx/conf.d/carta.conf
124
+ sudo systemctl restart nginx
125
+
126
+ # Check it is running:
127
+ sudo systemctl status nginx
128
+
129
+ A :ref:`sample configuration file<example_nginx>` is provided in the configuration section. This should be adapted to your server configuration.
130
+
131
+ .. note::
132
+ If there are problems, you can debug with ``journactl -xe`` and by checking log files in ``/var/log/nginx/``.
133
+
134
+
135
+ 6. Create the 'carta' user and modify sudoers
136
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
137
+
138
+ For security, we recommend not to run the CARTA controller as the root user. Therefore we create a new user called ``carta``.
139
+
140
+ We will assign the group ``carta-users`` to every user account and enable them to run ``/usr/bin/carta_backend`` and the script to close the CARTA backend, ``/usr/local/bin/carta-kill-script``, by adding a custom entry to the ``sudoers`` file.
141
+
142
+ .. code-block:: shell
143
+
144
+ # Create the carta user:
145
+ sudo adduser carta
146
+ # Check everything is OK
147
+ id carta
148
+ # It should show 'uid=1000(carta) gid=1000(carta) groups=1000(carta)'
149
+
150
+ # So that log files can be written:
151
+ sudo mkdir -p /var/log/carta
152
+ sudo chown -R carta /var/log/carta
153
+
154
+ # Add the custom sudoers file entry using our sample linked below
155
+ sudo visudo -f /etc/sudoers.d/carta_controller
156
+
157
+ An :ref:`example sudoers configuration<example_sudoers>` is provided in the configuration section.
158
+
159
+ .. note::
160
+ The only safe way to modify sudoers is using ``visudo``. Any syntax errors from directly editing sudoers could make your system unusable.
161
+
162
+ .. note::
163
+ The ``carta`` user should not be in the ``carta-users`` group. ``carta-users`` should only be assigned to the normal user accounts.
164
+
165
+ 7. Set up the user authentication method
166
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
167
+
168
+ This is the most difficult step and depends on how you authenticate users at your institute. In this step-by-step guide we use PAM local authentication and a local user, ``bob``, on the server running the CARTA controller. The user ``bob`` needs to be part of the ``carta-users`` group.
169
+
170
+ With PAM authentication, the ``carta`` user that runs the CARTA controller requires access to the ``/etc/shadow`` file in order to authenticate other users. We can enable this by creating a new group called ``shadow`` and assigning the ``/etc/shadow`` file to that group.
171
+
172
+ .. note::
173
+ Only PAM with local authentication requires ``/etc/shadow`` access. PAM using LDAP, and Google OAuth, do not require ``/etc/shadow`` access.
174
+
175
+ .. code-block:: shell
176
+
177
+ # Create the test user 'bob':
178
+ sudo useradd -G carta-users bob
179
+ sudo passwd bob
180
+
181
+ # A new group called 'shadow' needs to be assinged to the /etc/shadow file and user 'carta':
182
+ sudo groupadd shadow
183
+ sudo chgrp shadow /etc/shadow
184
+ sudo chmod g+r /etc/shadow
185
+ sudo usermod -a -G shadow carta
186
+ ls -l /etc/shadow
187
+ # It should show permissions as ----r-----. 1 root shadow
188
+ # It could be helpful to reboot the server at this point
189
+ sudo reboot
190
+
191
+
192
+ 8. Configure the CARTA controller
193
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
194
+
195
+ Create and fill in the ``config.json`` using our :ref:`sample configuration file<example_config>`.
196
+ Also generate private/public keys as they are used by the CARTA controller to sign/verify/refresh access tokens.
197
+
198
+ .. code-block:: shell
199
+
200
+ sudo mkdir /etc/carta
201
+ sudo chown -R carta /etc/carta
202
+ vi /etc/carta/config.json
203
+
204
+ # Generate private/public keys:
205
+ cd /etc/carta
206
+ sudo openssl genrsa -out carta_private.pem 4096
207
+ sudo openssl rsa -in carta_private.pem -outform PEM -pubout -out carta_public.pem
208
+
209
+ Please check the `CARTA Configuration Schema <https://carta-controller.readthedocs.io/en/latest/schema.html#schema>`_ for all available options.
210
+
211
+
212
+ 9. Check everything is working
213
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
214
+
215
+ Here we switch to the ``carta`` user and test the CARTA controller with our test user ``bob``:
216
+
217
+ .. code-block:: shell
218
+
219
+ su - carta
220
+ carta-controller -verbose -test bob
221
+
222
+ If the test is successful, the CARTA controller should be ready to deploy.
223
+
224
+
225
+ 10. Start the CARTA controller
226
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
227
+
228
+ .. code-block:: shell
229
+
230
+ su - carta
231
+ carta-controller
232
+
233
+ Now your users should be able to access your server's URL and log into CARTA.
234
+
235
+
236
+ Optional: Set up the CARTA controller to run with pm2
237
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
238
+
239
+ `pm2 <https://pm2.keymetrics.io/>`_ is a very convenient tool to keep the CARTA controller service running in the background, and even start it up automatically after a reboot.
240
+
241
+ .. code-block:: shell
242
+
243
+ sudo npm install -g pm2
244
+ su -carta
245
+ pm2 start carta-controller
246
+
247
+ Please refer to the `pm2 documentation <https://pm2.keymetrics.io/docs/usage/startup/>`_ for detailed instructions.
248
+
package/docs/src/conf.py CHANGED
@@ -22,7 +22,7 @@ copyright = '2021, Angus Comrie, Adrianna Pińska and Robert Simmonds'
22
22
  author = 'Angus Comrie, Adrianna Pińska and Robert Simmonds'
23
23
 
24
24
  # The full version, including alpha/beta/rc tags
25
- release = '3.0.0-beta.1d'
25
+ release = '3.0.0-beta.2'
26
26
 
27
27
 
28
28
  # -- General configuration ---------------------------------------------------
@@ -8,7 +8,7 @@ Configuration
8
8
  System Configuration
9
9
  --------------------
10
10
 
11
- .. _config-backend:
11
+ .. _config-backend-permissions:
12
12
 
13
13
  CARTA backend permissions
14
14
  ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -68,10 +68,10 @@ By default, the controller attempts to write log files to the ``/var/log/carta``
68
68
 
69
69
  .. _config-controller:
70
70
 
71
- Controller Configuration
71
+ Controller configuration
72
72
  ------------------------
73
73
 
74
- Controller configuration is handled by a configuration file in JSONC (JSON with JavaScript style comments) format, adhering to the :ref:`CARTA configuration schema<schema>`. An `example configuration file <_static/config/example_config.json>`_ is provided:
74
+ Controller configuration is handled by a configuration file in JSONC (JSON with JavaScript style comments) format, adhering to the :ref:`CARTA controller configuration schema<schema>`. An `example controller configuration file <_static/config/example_config.json>`_ is provided:
75
75
 
76
76
  .. literalinclude:: _static/config/example_config.json
77
77
  :language: json
@@ -79,7 +79,11 @@ Controller configuration is handled by a configuration file in JSONC (JSON with
79
79
 
80
80
  By default, the controller assumes the config file is located at ``/etc/carta/config.json``, but you can change this with the ``--config`` or ``-c`` command line argument when running the controller.
81
81
 
82
- The controller automatically executes the backend with the ``--no_http`` flag, to suppress the backend's built-in HTTP server. If the ``logFileTemplate`` configuration option is set, ``--no_log`` is also used to suppress user-level logs. ``--port`` is used to override the default port. ``--top_level_folder`` and a positional argument are used to set the top-level and starting data directories for the user, as specified in the ``rootFolderTemplate`` and ``baseFolderTemplate`` options, respectively. Additional backend flags may be specified with ``additionalArgs``.
82
+ Configuration may also be added in separate files in a ``config.d`` directory in the same parent directory as the specified config file. Each file in this directory must be a valid configuration file. Any files found will be processed in alphabetical order, after the main configuration file.
83
+
84
+ The controller automatically executes the backend with the ``--no_http`` flag, to suppress the backend's built-in HTTP server. If the ``logFileTemplate`` configuration option is set, ``--no_log`` is also used to suppress user-level logs. ``--port`` is used to override the default port. ``--top_level_folder`` and a positional argument are used to set the top-level and starting data directories for the user, as specified in the ``rootFolderTemplate`` and ``baseFolderTemplate`` options, respectively.
85
+
86
+ To specify additional backend flags, we recommend editing a :ref:`global backend preferences<config-backend>` file. Most commandline arguments to the backend are also recognised as configuration options. The ``additionalArgs`` field in the controller configuration file can be used for any debug options which are not, and to disable the local or global configuration files.
83
87
 
84
88
  If you use an external :ref:`authentication<authentication>` system, you may need to translate a unique ID (such as email or username) from the authenticated external user information to an internal system user. You can do this by providing a `user lookup table <_static/config/usertable.txt.stub>`_, which is watched by the controller and reloaded whenever it is updated:
85
89
 
@@ -87,3 +91,53 @@ If you use an external :ref:`authentication<authentication>` system, you may nee
87
91
  :language: cfg
88
92
 
89
93
  You can alter the controller's dashboard appearance by adjusting the ``dashboard`` field in the config file. You can change the banner image and background, and add login instructions or institutional notices.
94
+
95
+ The ``httpOnly`` flag can be used to disable secure signing of authentication tokens. This should only be used during initial deployment and testing, or debugging.
96
+
97
+ .. _config-backend:
98
+
99
+ Backend configuration
100
+ ---------------------
101
+
102
+ The global configuration file for the CARTA backend is located at ``/etc/carta/backend.json``. A per-user configuration file can also be placed in each user's local CARTA preferences directory (typically ``.carta`` or ``.carta-beta`` in the user's home directory, depending on how the CARTA backend was installed). On a multi-user system, if users have write access to this location, you may wish to disable the use of per-user configuration files, to prevent users from bypassing the root directory configuration set by the controller. This must be done through the ``additionalArgs`` field in the :ref:`controller configuration<config-controller>`.
103
+
104
+ The backend configuration file must adhere to the :ref:`CARTA backend configuration schema<schema_backend>`. An `example backend configuration file <_static/config/example_backend.json>`_ is provided:
105
+
106
+ .. literalinclude:: _static/config/example_backend.json
107
+ :language: json
108
+ :name: example_backend
109
+
110
+ .. _test-config:
111
+
112
+ Testing the configuration
113
+ -------------------------
114
+
115
+ To test the configuration of the controller, you can use the built-in test feature. Run ``carta-controller --verbose --test <username>`` as the ``carta`` user (or whichever user has the :ref:`added sudoers permissions<config-backend-permissions>`). ``<username>`` should be a user in the ``carta-users`` group. The expected output looks like this:
116
+
117
+ .. code-block::
118
+
119
+ Checking config file /etc/carta/config.json
120
+ Adding additional config file config.d/pam.json
121
+ No top-level folder was specified. Reverting to default location
122
+ Testing configuration with user alice
123
+ Password for user alice:
124
+ ✔ Checked PAM connection for user alice
125
+ ✔ Verified uid (1000) for user alice
126
+ ✔ Generated access token for user alice
127
+ ✔ Checked database connection
128
+ ✔ Checked log writing for user alice
129
+ ✔ Read frontend index.html from /custom/frontend/path/build
130
+ [
131
+ 'running sudo --preserve-env=CARTA_AUTH_TOKEN -n -u alice /usr/bin/carta_backend --no_http --debug_no_auth --port 3499 --top_level_folder /usr/share/carta --no_log /usr/share/carta'
132
+ ]
133
+ [2021-11-30 12:28:48.207] [info] /usr/bin/carta_backend: Version 3.0.0-beta.2
134
+ [2021-11-30 12:28:48.209] [info] Listening on port 3499 with top level folder /usr/share/carta, starting folder /usr/share/carta. The number of OpenMP worker threads will be handled automatically.
135
+ ✔ Backend process started successfully
136
+ [2021-11-30 12:28:50.169] [info] Session 1 [127.0.0.1] Connected. Num sessions: 1
137
+ ✔ Backend process accepted connection
138
+ [ 'running sudo -u alice ./scripts/carta_kill_script.sh 54275' ]
139
+ ✔ Backend process killed correctly
140
+ Controller tests with user alice succeeded
141
+
142
+ .. note::
143
+ If you run the controller from a source directory using ``npm``, use ``--`` to ensure that any commandline parameters are passed to the controller and not to ``npm``. For example: ``npm run start -- --verbose --test alice``.
@@ -10,7 +10,8 @@ CARTA Controller
10
10
 
11
11
  CARTA is the Cube Analysis and Rendering Tool for Astronomy. This document describes the installation and configuration process for the controller component.
12
12
 
13
- Detailed :ref:`step-by-step instructions<focal_instructions>` are provided for Ubuntu 20.04 (Focal Fossa).
13
+ Detailed step-by-step instructions are provided for :ref:`Ubuntu 20.04 (Focal Fossa)<focal_instructions>` and :ref:`CentOS 8<centos8_instructions>`.
14
+ We officially support Ubuntu 18.04 and 20.04, and RHEL 7 and 8 (and their freely distributed binary-compatible alternatives, such as CentOS or AlmaLinux), with all available standard updates applied.
14
15
 
15
16
  .. toctree::
16
17
  :maxdepth: 2
@@ -20,13 +21,15 @@ Detailed :ref:`step-by-step instructions<focal_instructions>` are provided for U
20
21
  installation
21
22
  configuration
22
23
  ubuntu_focal_instructions
24
+ centos8_instructions
23
25
  schema
26
+ schema_backend
24
27
 
25
- .. |backend-github| image:: https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.1c-brightgreen
28
+ .. |backend-github| image:: https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.2-brightgreen
26
29
  :alt: View this backend version on GitHub
27
- :target: https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.1c
30
+ :target: https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.2
28
31
 
29
- .. |npm-package| image:: https://img.shields.io/npm/v/carta-controller/dev.svg?style=flat
32
+ .. |npm-package| image:: https://img.shields.io/npm/v/carta-controller/beta.svg?style=flat
30
33
  :alt: View this project on npm
31
34
  :target: https://npmjs.org/package/carta-controller
32
35
 
@@ -8,7 +8,7 @@ Installation
8
8
  Installing the backend
9
9
  ----------------------
10
10
 
11
- We provide `binary Debian packages <https://launchpad.net/~cartavis-team/+archive/ubuntu/carta>`_ of the latest development and release versions of the CARTA backend for Ubuntu 20.04 (Focal Fossa) and Ubuntu 18.04 (Bionic Beaver). You can install the development version with all dependencies by adding our PPA to your system and running ``apt-get install carta-backend-beta``. Please refer to our :ref:`Ubuntu Focal instructions<focal_instructions>` for more details.
11
+ We provide `binary Debian packages <https://launchpad.net/~cartavis-team/+archive/ubuntu/carta>`_ of the latest beta and release versions of the CARTA backend for Ubuntu 20.04 (Focal Fossa) and Ubuntu 18.04 (Bionic Beaver). You can install the beta version with all dependencies by adding our PPA to your system and running ``apt-get install carta-backend-beta``. Please refer to our :ref:`Ubuntu Focal instructions<focal_instructions>` for more details.
12
12
 
13
13
  .. note::
14
14
 
@@ -28,7 +28,7 @@ If you install the controller from NPM, the corresponding packaged version of th
28
28
  Installing the controller
29
29
  -------------------------
30
30
 
31
- You can install the development version of the CARTA controller from NPM by running ``npm install -g carta-controller@dev``, or from GitHub by cloning the `controller repository <https://github.com/CARTAvis/carta-controller/>`_ and running ``npm install``.
31
+ You can install the beta version of the CARTA controller from NPM by running ``npm install -g carta-controller@beta``, or from GitHub by cloning the `controller repository <https://github.com/CARTAvis/carta-controller/>`_ and running ``npm install``.
32
32
 
33
33
  .. _run_controller:
34
34
 
@@ -10,7 +10,7 @@ The CARTA controller provides a simple dashboard which authenticates users and a
10
10
  Dependencies
11
11
  ------------
12
12
 
13
- To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the ``v3.0.0-beta.1c`` tag of `the CARTA backend <https://github.com/CARTAvis/carta-backend>`_.
13
+ To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the ``v3.0.0-beta.2`` tag of `the CARTA backend <https://github.com/CARTAvis/carta-backend>`_.
14
14
 
15
15
  By default, the controller runs on port 8000. It should be run behind a proxy, so that it can be accessed via HTTP and HTTPS.
16
16
 
@@ -0,0 +1,7 @@
1
+ .. _schema_backend:
2
+
3
+ .. jsonschema:: _static/config/preference_backend_schema_2.json
4
+ :lift_description:
5
+ :lift_definitions:
6
+ :auto_target:
7
+ :auto_reference:
@@ -19,7 +19,7 @@ Install the CARTA backend and other required packages
19
19
  sudo add-apt-repository ppa:cartavis-team/carta
20
20
  sudo apt-get update
21
21
 
22
- # Install the development backend package with all dependencies
22
+ # Install the beta backend package with all dependencies
23
23
  sudo apt-get install carta-backend-beta
24
24
 
25
25
  # Install additional packages
@@ -74,7 +74,7 @@ Install CARTA controller
74
74
  sudo apt-get install -y nodejs build-essential
75
75
 
76
76
  # Install carta-controller (includes frontend config)
77
- sudo npm install -g --unsafe-perm carta-controller@dev
77
+ sudo npm install -g --unsafe-perm carta-controller@beta
78
78
 
79
79
  # Install PM2 node service
80
80
  sudo npm install -g pm2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carta-controller",
3
- "version": "3.0.0-beta.1d",
3
+ "version": "3.0.0-beta.2",
4
4
  "description": "NodeJS-based controller for CARTA",
5
5
  "repository": "https://github.com/CARTAvis/carta-controller",
6
6
  "homepage": "https://www.cartavis.org",
@@ -23,7 +23,7 @@
23
23
  "ajv": "^8.2.0",
24
24
  "ajv-formats": "^2.1.0",
25
25
  "body-parser": "^1.19.0",
26
- "carta-frontend": "^3.0.0-beta.1c",
26
+ "carta-frontend": "^3.0.0-beta.2b",
27
27
  "chalk": "^4.1.1",
28
28
  "compression": "^1.7.4",
29
29
  "cookie-parser": "^1.4.5",
@@ -25,7 +25,7 @@ html
25
25
  .spacer
26
26
  img(src="dashboard/images/carta_logo.svg" alt="carta_logo")
27
27
  .titletext
28
- | CARTA 3.0.0-beta.1c
28
+ | CARTA 3.0.0-beta.2
29
29
  br
30
30
  span(style="font-size: 13px; font-weight: lighter") Cube Analysis and Rendering Tool for Astronomy
31
31
  br