Skip to main content
By default, runs use the benchmark services that Vals AI hosts. When you save your own URL for a benchmark, your runs of that benchmark use your service instead, on any machine. To build a service, see Convert a benchmark into a service.

Save a service URL

The URL is saved for you in the current organization, and valkyrie run start and valkyrie benchmark tasks use it until you remove it. Saving needs a login; access keys can’t change it. The Tracker must be able to reach the URL, so a service on your machine needs a reverse tunnel. To send a credential with every request, see Benchmark authentication.

List services

This lists the hosted services and your saved URLs, and checks that each one responds. Page through the list with h and l, and quit with q.

Go back to the hosted service

To use the hosted service for one run and keep your saved URL, pass --ignore-custom-services to valkyrie run start instead.

Expose a local service

Hosted Valkyrie can reach a service on your machine through a reverse tunnel. These steps use ngrok; any tunnel that gives you a public HTTPS URL works.
  1. Sign up for ngrok and follow its setup steps.
  2. Start the service in a container, which serves on port 8001:
  3. Forward the port:
  4. Save the forwarding address that ngrok prints:
A free ngrok address changes each time the tunnel restarts, so save the new address after every restart. To point a run that already started at the new address, retry it with --benchmark-url.

Deploy the service

A tunnel works while you iterate. A service other people run against needs a stable HTTPS address. The generated Dockerfile serves the app on port 8001, so any container host that routes HTTPS and WebSocket traffic to it works.
Then deploy the image with your host’s guide, for example AWS App Runner, Amazon ECS behind an Application Load Balancer, Google Cloud Run or Fly.io. Before you share the address, require a credential.