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 extensions SDK allow you to easily integrate with Aqueduct and streamline your workflow.
This project uses the following main software stack and technologies:
To use Aqueduct, you need to install this repo 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.
docker-compose.yaml
, e.g.).
(This file also exists as aqueductcore/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
EXTENSIONS_DIR_PATH: /workspace/extensions
POSTGRES_USERNAME: admin
POSTGRES_PASSWORD: admin
POSTGRES_HOST: postgres
POSTGRES_PORT: 5432
POSTGRES_DB: aqueduct
volumes:
- /tmp/aqueduct_experiments:/tmp/aqueduct_experiments
- type: bind
# define your host folder with extensions
source: /aqueductcore/extensions
target: /workspace/extensions
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.
You can find development docker images from the head of the main branch on DockerHub, aqueducthub/aqueductcore-dev:latest
. The images are built after each commit or pull request merge to the main
branch.
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.
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
poetry install
.python scripts/start_aqueduct_core.py
.localhost:8000
.Run the GUI
cd aqueductcore/frontend
.yarn install
..env
file under aqueductcore/frontend
directory and add API URL.
REACT_APP_API_DEV_ORIGIN=http://0.0.0.0:8000
yarn start
.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.