High-performance distributed remote cache for Turborepo.
MIT License
An open-source backend with a Web UI for managing your Turborepo cache.
There are a few open-source turborepo cache backends out there, but all of them seem to lack management around tokens and teams. If you work in an enterprise, access management is crucial for keeping permissions segregated and I could not find anything supporting that.
So I've built my own remote cache. Besides giving you full control over creating teams, issuing tokens for specific teams and who has access to a given token, it also allows you to go from a simple deployment using your file system as artifact storage to going full scale using a S3-compatible backend service.
Here is what is available for you:
docker-compose.prod.yml
)Turbo Racer provides a fully fledged Web UI for managing user accounts, roles and tokens for cache access and segmentation. Below you can see a few screenshots on how it looks like:
Teams | Settings |
---|---|
Tokens | Users |
---|---|
Once you deploy Turbo Racer for the first time, you must create an admin
account. The first account you signup with from the Sign up
Web UI will be the
system admin.
Admins can control whether users can create accounts so they can login and manage teams and tokens.
Turbo Racer is designed to be deployed with Docker. The simplest way is to use
docker-compose. Have a look at the
docker-compose.prod.yml
in the root directory for an deployment example.
Whenever a new release is out, a new Docker image is built and pushed to Docker hub. Here you can find the latest tags:
You can use our Digital Ocean template to get this running quickly in a droplet.
To run this app locally, you need the following dependencies installed:
asdf install
within the context of theturbo-racer
directory. It will automatically pick up the right Elixir and.tool-versions
file at the root of the repo.docker-compose up
. It will start up a Postgres container with a databaseTo start your Phoenix server:
mix setup
to install and setup dependenciesmix phx.server
or inside IEx withiex -S mix phx.server
Now you can visit localhost:4000
from your browser.
Make sure that the Postgres container is running and execute mix test