An enhanced async room tracker for Archipelago. The canonical instance is hosted at cheesetrackers.theincrediblewheelofchee.se.
Based on the fantastic Google spreadsheet built by RadzPrower.
Provides multiple enhancements on top of Archipelago's own web tracker, such as:
The tracker is split into two primary components: the backend web service and the frontend application that runs in the web browser.
The backend web service is written in Rust using the Axum framework. Currently only PostgreSQL is supported as the data store, but the data access design is abstracted such that it would be fairly straightforward to add support for other data stores.
The frontend web application is written in Vue and uses Bootstrap.
If you are interested in working on Cheese Trackers, you will want to start by
deploying a development environment. The podman/create-pod
script will create
a local development environment consisting of:
Note that there is no container for hosting the web service. Currently it's expected that you'd run the web service outside of a container, listening on port 3000. This may change in the future.
After the development pod is created, you can run podman port -a
to get a list
of the local listening ports that are mapped into the containers. To access the
frontend, you'd look for the line containing 81/tcp
and visit the IP address
and port shown on that same line.
Containers are used to deploy the application. The build-image
script will
use podman to build an image containing both the Rust web service and the
compiled frontend. The web service will serve the frontend's static assets, so
there is no need for a separate container to serve the frontend.