The Frontend in the Tergite software stack of the WACQT quantum computer.
This project is developed by a core group of collaborators. Chalmers Next Labs AB (CNL) takes on the role of managing and maintaining this project.
A preview of the the dashboard
The tergite stack is developed on a separate version control system and mirrored on Github. If you are reading this on GitHub, then you are looking at a mirror.
- Tergite Dashboard
The website that shows the state of the quantum computer - Tergite Main Service Server or MSS
The server that controls all services on this frontend.
It also exposes the REST API through which other clients like tergite SDK communicate with the quantum computers.
- docker +v23.0.5
- docker compose
- Linux OS if the
LOGGING_DRIVER
variable in.env
is set to 'journald' (recommended) since journald is only for Linux.
One could use the defaultjson-file
logging driver but this would quickly fill up one's disk space after some time. See here.
One could also use thelocal
logging driver but external tools like promtail, our logging aggregator client, cannot work with it. See here
-
Ensure you have docker installed.
-
Clone the repo
git clone git@github.com:tergite/tergite-frontend.git
- You might need to login to a hosted docker container registry e.g. one based on the tergite-registry repo, especially if you are going to use prebuilt tergite images.
# e.g. if container registry is hosted at example.com:8002
# and username is johndoe
# and password is password123
CONTAINER_REGISTRY=example.com:8002
DOCKER_USERNAME=johndoe
# feed in password when prompted
docker login ${CONTAINER_REGISTRY} -u $DOCKER_USERNAME
- Copy the
mss-config.example.toml
tomss-config.toml
and update the configuration there.
cd tergite-frontend
cp mss-config.example.toml mss-config.toml
- Create a
.env
file basing on the.env.example
file. Update the variables therein appropriately.
cp .env.example .env
- To rebuild and run the services, use the
fresh-docker-compose.yml
docker compose -f fresh-docker-compose.yml up -d
- To use prebuilt images to run the services, use the
prebuilt-docker-compose.yml
docker compose -f prebuilt-docker-compose.yml up -d
-
Open your browser at
- http://localhost:8002 to see the MSS service
- http://localhost:3000 to see the dashboard application
-
To ensure that the services start up even on server restarts, run:
sudo systemctl enable docker
- To stop the services, run:
docker compose stop -f fresh-docker-compose.yml
or for prebuilt:
docker compose stop -f prebuilt-docker-compose.yml
- To remove stop the services and remove their containers also, run:
docker compose down -f fresh-docker-compose.yml
or for prebuilt:
docker compose down -f prebuilt-docker-compose.yml
It could be an issue with your iptables. Check them.
- You could set qal9000 behind an nginx reverse proxy pointing ports 80,443 to the landing page URL (http://localhost:8030), but don't forget to open up your firewall to allow connections on 80,443 ports
sudo iptables -I INPUT -p tcp -m state --state NEW -m tcp -m multiport --dports 80,443 -j ACCEPT
You could add -s nnn.nnn.n.n/nn
arg to the above command to limit access to only a given subnet e.g. -s 255.255.0.0/16
When docker is installed, it adds its own iptables
rules which open all ports by default to the entire world. See this article for more information. In order to customize these rules, new rules have to be added to the DOCKER-USER chain.
You can add other rules in the same DOCKER-USER chain, carefully :-)
If you would like to contribute to tergite-frontend, please have a look at our contribution guidelines
This project is a work of many contributors.
Special credit goes to the authors of this project as seen in the CREDITS file.
To view the changelog for each version, have a look at the CHANGELOG.md file.
This project was sponsored by:
- Knut and Alice Wallenberg Foundation under the Wallenberg Center for Quantum Technology (WACQT) project at Chalmers University of Technology
- Nordic e-Infrastructure Collaboration (NeIC) and NordForsk under the NordIQuEst project
- European Union's Horizon Europe under the OpenSuperQ project
- European Union's Horizon Europe under the OpenSuperQPlus project