Step-by-step instructions for Ubuntu 20.04.2 (Focal Fossa)
Note
These instructions can be used almost unchanged on Ubuntu 18.04 (Bionic Badger). We note differences where they occur.
Dependencies
Install the CARTA backend and other required packages
# Add CARTA PPA
sudo add-apt-repository ppa:cartavis-team/carta
sudo apt-get update
# Install the backend package with all dependencies
sudo apt-get install carta-backend
# Install additional packages
sudo apt-get install nginx g++ mongodb make curl
Note
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:
sudo apt-get install install carta-backend-beta
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.
Make sure that you install the matching controller version (using the beta
tag).
Set up directories and permissions
Ensure that all users who should have access to CARTA belong to a group that identifies them (assumed here to be called carta-users
).
# create a 'carta' user to run the controller
sudo adduser --system --home /var/lib/carta --shell=/bin/bash --group carta
# add 'carta' user to the shadow group (only required for PAM UNIX authentication)
sudo usermod -a -G shadow carta
# log directory owned by carta
sudo mkdir -p /var/log/carta
sudo chown carta: /var/log/carta
# config directory owned by carta
sudo mkdir -p /etc/carta
sudo chown carta: /etc/carta
# edit sudoers file to allow passwordless sudo execution of
# /usr/local/bin/carta-kill-script and /usr/bin/carta_backend
# by the carta user
sudo visudo -f /etc/sudoers.d/carta_controller
An example sudoers configuration is provided in the configuration section.
Configure nginx
A sample configuration file is provided in the configuration section. This should be adapted to your server configuration. The relevant part of the config is for forwarding /
to port 8000.
Install CARTA controller
Note
We recommend using the latest LTS version of NodeJS. The oldest version known to work with the controller is v16. In the example below we install the latest LTS version from the NodeSource repo. Do not pass the --unsafe-perm
flag to npm
if using a local install.
# Install the latest NodeJS LTS repo
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
# Install NodeJS, NPM and tools required to compile native addons
sudo apt-get install -y nodejs build-essential
# Install carta-controller (includes frontend config)
sudo npm install -g --unsafe-perm carta-controller
# Install PM2 node service
sudo npm install -g pm2
# Switch to carta user
sudo su - carta
# Generate private/public keys
cd /etc/carta
openssl genrsa -out carta_private.pem 4096
openssl rsa -in carta_private.pem -outform PEM -pubout -out carta_public.pem
Note
If you would like to install the latest beta release of CARTA, please install the beta
tag of the controller instead:
sudo npm install -g --unsafe-perm carta-controller@beta
Configure controller
Edit /etc/carta/config.json
to customise the appearance of the dashboard and other options. A sample configuration file is provided in the configuration section.
Run controller
This should be executed as the carta
user.
pm2 start carta-controller
Create pm2 startup script
This service will start the controller automatically after a reboot. Please refer to the pm2 documentation for detailed instructions. You should run pm2 startup
as carta
, execute the generated command as a user with sudo
access, and finally run pm2 save
as carta
to save the running controller process.