The airavata-portals repository is a consolidated home for all web-based user interfaces built on top of the Apache Airavata middleware platform. This collection of frontend components and frameworks enables seamless interaction with Airavata's powerful orchestration, identity, data, and compute services.
The Django portal runs as a container tenant on the shared airavata-devstack
substrate (one colima VM, one Traefik ingress serving *.airavata.host), managed
with Tilt. The two stacks run as separate Tilt instances.
# From either repo — both carry the identical devstack kit
./devstack/devstack setupThis installs colima, mkcert, dnsmasq, creates the shared VM and Traefik ingress,
and configures wildcard DNS for *.airavata.host → 127.0.0.1 (trusted cert, no -k).
# 1. Start the Airavata backend stack (in the apache/airavata repo)
cd ../airavata && tilt up
# 2. Start the portals (this repo) on a distinct Tilt port
tilt up --port 10351The Django portal is then served at https://gateway.airavata.host (trusted
HTTPS via the shared Traefik ingress). The portal runs inside the shared colima VM
as a container; settings_local.py is generated automatically on first tilt up
if the file does not exist. Only the Django portal is wired into the Tiltfile today;
other portals can be added as additional resources later.
The backend stack seeds a ready-to-use tenant outside the JVM when its database is first
created — directly from SQL, before the server starts (default gateway, SFTP storage, a
docker-SLURM compute resource with a normal queue, the Echo application, and a
Default Project, all shared with default-admin). So once both stacks are green you can
run an experiment with zero manual setup:
- Open https://gateway.airavata.host and log in as
default-admin/ade4#21242ftfd. - Create an experiment: choose the Echo application, the Default Project, and the
slurm compute resource (queue
normal). TheInput_to_Echofield defaults toHello, Airavata!. - Launch it — it runs on the docker-SLURM cluster (env setup →
sbatchover SSH →sacctmonitoring → SFTP output staging) and reaches COMPLETED, withEcho.stdoutholding the echoed input.
tilt down then tilt up brings the same working state back up (the database volume
persists); ./devstack/devstack reset (or wiping the db_data volume) re-seeds it from scratch.
This repository contains the following sub-projects and templates:
- airavata-django-portal
The reference web-based user interface for interacting with Airavata services, supporting job submissions, project management, and monitoring. Talks to Airavata over gRPC via theairavata-python-sdk.
-
airavata-cookiecutter-django-app
Cookiecutter template to scaffold new Django apps for integration with the Django portal. -
airavata-cookiecutter-django-output-view
Template for building reusable output viewers compatible with portal job results.
-
airavata-php-gateway
Legacy PHP-based science gateway frontend (archived/deprecated). -
airavata-custos-portal
Web-based UI for managing Custos identity, group, and resource permissions.
The goal of this consolidation is to:
- Simplify the discovery and contribution process for Airavata frontend components.
- Encourage reuse of UI components through a shared ecosystem.
- Promote rapid prototyping and customization of science gateways.
- Align documentation and tooling across related UI projects.