Aqueduct is the open platform that simplifies quantum experiment management.
Intuitive automation and administration features enable you to focus on consistently running and scaling up your experiments. Powerful APIs and a flexible plugin SDK allow you to easily integrate with Aqueduct and streamline your workflow.
This project uses the following main software stack and technologies:
- Frontend (GUI): React, TypeScript
- Backend (Server): Python, FastAPI
- Database: PostgreSQL
To use Aqueduct, you need to install this repo [aqueductcore](https://github.com/AqueductHub/aqueductcore, and the pyaqueduct one too.
Aqueduct --- this repo --- is the server software that hosts the main application, the web interface and handles data storage.
To install Aqueduct, you need to have docker and docker-compose installed on your machine. See here for docker install instructions. Ensure that docker is running on your machine.
- Copy the below configuration to a file (call it
docker-compose.yaml
, e.g.). (This file also exists asaqueductcore/scripts/release/docker-compose.yaml
. You can just copy it to the dir where you will work from.)
version: "3"
services:
aqueduct:
image: aqueducthub/aqueductcore:latest
restart: always
depends_on:
- postgres
environment:
EXPERIMENTS_DIR_PATH: /tmp/aqueduct_experiments
POSTGRES_USERNAME: admin
POSTGRES_PASSWORD: admin
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: aqueduct
volumes:
- /tmp/aqueduct_experiments:/tmp/aqueduct_experiments
ports:
- 80:8000
postgres:
image: postgres:15-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=aqueduct
expose:
- 5432
You can find docker-compose.yaml
file under aqueductcore/scripts/release
directory.
-
If you now run
docker compose -f docker-compose.yaml up -d
in the directory where the file is, docker will use the yaml file to pull Aqueduct's docker image, set local environment variables, and start the server. -
Start your browser and point it to
https://localhost
.
For more information please check the documentation.
PyAqueduct allows easy programmatic manipulation of experiment objects.
pip install pyaqueduct
You can find more information about how to use PyAqueduct here in the docs.
Read this section if you want to set up the project as a contributor.
- Prerequisites
- Python (version 3.8 or higher) installed on your system
- PostgreSQL (version 15 or higher) installed and running
- Node.js (v20.11.1 or higher) installed
-
Clone the repository and change the directory into the root of the project.
-
We recommend VSCode as the dev environment. If you start VS Code in the repo root, it will start up dev docker container. Have a look here for more information on developing using VS Code.
-
Run the Server
- Navigate to the project's root folder.
poetry install
.python scripts/start_ecs_service.py
.- The server should be up and running on
localhost:8000
.
-
Run the GUI
cd aqueductcore/frontend
.yarn install
.- Create
.env
file underaqueductcore/frontend
directory and add API URL.
- For instance:
REACT_APP_API_DEV_ORIGIN=http://0.0.0.0:8000
yarn start
.- The UI should be up and running on
localhost:3000
.
You can use this script to install all the required packages:
bash scripts/install_packages.sh
After executing the script, proceed with the instructions from Step 3.
Aqueduct is an open-source project, and we greatly value all contributions. Contributions are not limited to coding; you can also help by filing issues to report bugs, enhancing our documentation, or requesting new features. We strongly recommend using the templates provided for each of these tasks. If you’re interested in contributing, please refer to our contribution guide for more information. We really appreciate your consideration for contributing to Aqueduct.
This project is licensed under the MIT License - see the LICENSE file.