Skip to content

tergite/tergite-frontend

Repository files navigation

tergite-frontend

Frontend CI

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.

Login screen The login screen

Home screen The home screen

Tergite dashboard showcase A preview of the the dashboard

Version Control

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.

Services

Dependencies

  • 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 default json-file logging driver but this would quickly fill up one's disk space after some time. See here.
    One could also use the local logging driver but external tools like promtail, our logging aggregator client, cannot work with it. See here

Getting Started

  • 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 to mss-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
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

How to Run wi

FAQ

Why can't I access the service?

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

Why aren't rules set in ufw working?

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 :-)

Contribution Guidelines

If you would like to contribute to tergite-frontend, please have a look at our contribution guidelines

Authors

This project is a work of many contributors.

Special credit goes to the authors of this project as seen in the CREDITS file.

ChangeLog

To view the changelog for each version, have a look at the CHANGELOG.md file.

License

Apache 2.0 License

Acknowledgements

This project was sponsored by:

About

The Frontend in the [Tergite software stack](https://tergite.github.io/) of the WACQT quantum computer.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 11