Installation
This section describes how to get DRMAAtic up and running on your system.
Prerequisites: - Linux environment - SLURM with DRMAA library (or the provided Docker setup) - Python 3.8+ or Docker Engine
Using Docker (Recommended)
Clone the repository and navigate to the docker directory: git clone https://github.com/BioComputingUP/DRMAAtic.git cd DRMAAtic/docker
Deploy a test cluster (including a SLURM simulator, database, and DRMAAtic) using the provided docker compose file:
cd testing
docker-compose up -d
This will start a local SLURM controller, a compute node, a MySQL database, and the DRMAAtic REST API service in containers, creating a self-contained test cluster environment.
OR deploy with an existing cluster:
Edit configuration files (like
slurm.conf
, database settings, etc.) in/deploy/deploy-example/
to match your cluster.Start the DRMAAtic container and connect it to your cluster’s SLURM and database:
cd ../deploy-example
docker-compose up -d
After the container(s) are running, proceed to initial setup (database migrations and creating an admin user) as described below:
docker exec -it drmaatic /opt/venv/bin/python3 manage.py migrate
docker exec -it drmaatic /opt/venv/bin/python3 manage.py createsuperuser
Manual Installation
Clone the repository and install Python dependencies:
git clone https://github.com/BioComputingUP/DRMAAtic.git
cd DRMAAtic
pip install -r requirements.txt
Ensure you have SLURM installed on the host and its DRMAA library available (the drmaa Python package will interface with it).
Configure the database: By default DRMAAtic uses MySQL/MariaDB. Set up a database and update the Django settings (or
.env
files inserver/settings/
) with the DB credentials. For example, create a MySQL database named drmaatic and updateserver/settings/.env
accordingly.Run database migrations to set up the schema:
python manage.py makemigrations
python manage.py migrate
This will create the necessary tables for tasks, users, etc. in the database.
Create a superuser account for the Django admin (to manage tasks, etc.):
python manage.py createsuperuser
Follow the prompts to set up an admin username and password
Start the DRMAAtic server:
python manage.py runserver
By default, this will run the development server at http://127.0.0.1:8000/
. You should now have the DRMAAtic API available (though without a running SLURM, job submission will not function).
Note
Accessing the Web API: Once running, the API endpoints can be accessed via http://<server>/api/...
(if using the development server or appropriate host/port for Docker). You can also log into the Django admin UI at http://<server>/admin/
using the superuser credentials, to configure tasks and view job records.