Prepare the Server

The primary server requirement is disk space - have enough space to hold 2x the data you plan to transfer. Atlas Hub streams all data, so the memory requirements are low, however 8 or 16gb are a good starting place.

A few system packages are needed:

  • Curl: used to downloading the install
  • Nginx: used as a webserver proxy
  • Node 18: used for building assets
  • Dotnev: used to pass variables into the site
  • Lsof: (ubuntu, centos); needed to check open ports
  • Git: (ubuntu, centos); needed for installs
  • Grep: (apline); need to update default version
  • Gnupg2: for gpg encryption
  • Redis: used for caching and job storage
  • Sqlite: used for connecting to sqlite databases
  • Xmlsec: used for SAML request validation
  • libldap2-dev: used for LDAP authentication
  • unixodbc: used for database connections
  • Python 3.10: use to run the website, runner and scheduler
  • Poetry: used as the python package manager
  • System build tools
Many of the commands below require root access. If you are not a root user, run them with sudo.

Install Deps

apt-get update
apt-get -y install curl nginx lsof build-essential git gnupg2 \
           nano redis-server sqlite3 libsqlite3-0 pkg-config \
           libxml2-dev libxmlsec1-dev libxmlsec1-openssl \
           libldap2-dev python3-dev libsasl2-dev ldap-utils \
           libssl-dev libffi-dev unixodbc unixodbc-dev libpq-dev

curl -fsSL | bash -
apt-get install -y nodejs
npm i -g pm2
pm2 install pm2-logrotate

# allow pm2 to start on reboot (need sudo if you are not running as root)
pm2 startup

You can check the node version by running node --version.

Install Python

apt install software-properties-common -y
add-apt-repository ppa:deadsnakes/ppa
apt install python3.10

You can check your python version by running python3.10 --version.

Install virtualenv

curl -sS | python3.10
python3.10 -m pip install virtualenv

Install Poetry

Poetry is used as the python package manager.

curl -sSL | python3.10 -

In the installer output will be a command you can run to add poetry to your path. Run it now.

export PATH="/root/.local/bin:$PATH"

Check if it is installed correctly by running poetry --version.

Start Redis

Start up redis if this is the first time you are using redis on the server.

systemctl enable redis-server
systemctl start redis-server

# or on docker
redis-server --daemonize yes

You can check if redis is online by running redis-cli ping.