Using this module, you can setup a full Airavata installation inside Intelij IDEA for development purposes



Setting up the development environment

  • Clone Airavata repository to a local directory

    git clone
  • Checkout develop branch

    git checkout develop
  • Build the develop branch using Maven

    mvn clean install -DskipTests
  • Open the project using InteliJ IDEA

  • Browse to modules -> ide-integration module

Starting backend components (Database, Keycloak, Kafka, RabbitMQ, SSHD Server)

  • Add a host entry to /etc/hosts file in local machine
  • Go to src/main/resources directory and run

    docker-compose up
  • Apply any database migrations. Go to src/main/resources directory and run

    cat ./database_scripts/init/*-migrations.sql | docker exec -i resources_db_1 mysql -p123456
  • Wait until all the services come up. This will initialize all utilities required to start Airavata server

Starting API Server

  • Go to org.apache.airavata.ide.integration.APIServerStarter class and right click on the editor and click Run option. This will start Airavata server

Starting Job Execution Engine

  • Go to org.apache.airavata.ide.integration.JobEngineStarter class and right click on the editor and click Run option. This will start all components of Job Execution Engine including Helix Controller, Helix Participant, Pre Workflow Manager and Post Workflow Manager

Starting Job Monitoring components

  • This will start the Email Based Job Monitoring agent. Before starting this, you have to create a new gmail account by going to

  • Once the account is created, turn on Less Security App access for that gmail account

  • Update the email account credentials in src/main/resources/ file

    email.based.monitor.address=CHANGEME email.based.monitor.password=CHANGEME

  • Go to org.apache.airavata.ide.integration.JobMonitorStarter class and right click on the editor and click Run option.

Starting User Portal (Django Portal)

  • You can create and launch experiments and manage credentials using this portal

  • This is a separate project so you need to clone this in to a new directory outside the Airavata code base

    git clone
  • Go to airavata-django-portal directory and run

    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  • Create a local settings file. Copy django_airavata/ to django_airavata/

  • Run Django migrations

    python3 migrate
  • Build the JavaScript sources. There are a few JavaScript packages in the source tree, colocated with the Django apps in which they are used. The script will build them all.

  • Load the default Wagtail CMS pages.

    python3 load_default_gateway
  • Run the server

    python3 runserver  
  • Point your browser to http://localhost:8000/auth/login. Use user name : default-admin and password : 123456

Optional: Starting Super Admin Portal (PGA)

  • This portal is required when you are going to register new compute resources or storage resources into the gateway

  • Go to src/main/resources/pga directory and run

    docker-compose up -d
  • Run following command to get the ip address of host machine

    This command is for docker containers deployed on Mac OSX

    docker-compose exec pga getent hosts | awk '{ print $1 }'
  • Update the host entries of pga container with above ip address

    docker-compose exec pga /bin/sh -c "echo '<host-machine ip>' >> /etc/hosts"
  • Now PGA should be accessible through

  • Use the username : default-admin and password : 123456 to login to the portal

Stop all components

  • For each composer file, run following commands to cleanup docker spawned components

    docker-compose down
    docker-compose rm

NOTE: (Optional) Creating certificates if expired

  • This is required only when the self signed certificate for keycloak is expired
  • Go to src/main/resources/keystores
  • Provide password as airavata for all key stores
rm airavata.jks

rm client_truststore.jks

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass airavata -validity 360 -keysize 2048
What is your first and last name?
What is the name of your organizational unit?
What is the name of your organization?
What is the name of your City or Locality?
What is the name of your State or Province?
What is the two-letter country code for this unit?
Is,,,,, correct?
  [no]:  yes

keytool -importkeystore -srckeystore keystore.jks -destkeystore airavata.jks -deststoretype pkcs12

rm keystore.jks

keytool  -export -alias selfsigned -file root.cer -keystore airavata.jks -storepass airavata

keytool -import -alias mykey -file root.cer -keystore client_truststore.jks -storepass airavata

rm root.cer