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
- Pnpm: used to install node packages
- 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.12: used to run the website, runner and scheduler
- Uv: used as the python package manager
- System build tools
Note
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 https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
corepack enable
corepack prepare "[email protected]+sha512.stwg4vxys+GISEWbNzWaMgZGY+VielHkx0ssKd2OjgSRSDw6u0B4nP1Xi/Ni+2uoJhsF8Dh9dnku1uI+o7G2oA==" --activate
pnpm 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.12 python3.12-dev
You can check your python version by running python3.12 --version.
∞ Install virtualenv
The Hub installer still uses virtualenv when preparing Python services.
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.12
python3.12 -m pip install virtualenv
∞ Install Uv
curl -LsSf https://astral.sh/uv/install.sh | sh
In the installer output will be a command you can run to add uv to your path. Run it now.
export PATH="/root/.local/bin:$PATH"
Check if it is installed correctly by running uv --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.