VOLT

Run VOLT

The three ways to get a running VOLT, what each one is good for, and how to connect a client to a server that already exists.

A running VOLT has three parts: the server (accounts, teams, the REST API and the realtime channel), the web client you work in, and at least one cluster daemon, which stores your trajectories and runs the analyses. You can run all three in three ways:

The browser tab and the desktop app run the same programs a self-hosted server runs, unmodified. What changes is where they run and what they can reach.

Compare them

Browser tabDesktop appSelf-hosted server
What you installNothingAn installer for Windows, macOS or LinuxDocker on a host, then one deploy command
UsersOne local account, signed in automaticallyOne local account, signed in automaticallyAccounts, teams, roles and invitations
Where analyses runWorkers of the tabWorkers of the app's windowCluster daemons on the machines you enroll
Plugins it can runPlugins with a wasm-wasm32 buildPlugins with a wasm-wasm32 buildThe build for each machine's platform
NotebooksKernels in the page, Python on PyodideKernels in the window, Python on PyodideJupyter on one of the team's clusters
Where data livesThe browser's storage for that addressThe app's data folderDocker volumes on the host and on each cluster
Other machinesNoneNoneEnroll workstations, servers, HPC nodes
Stops whenYou close the tabYou close the windowYou stop the containers

Which one to pick

  • To try VOLT, look at a trajectory, or teach a short session: run it in the browser. You can start in seconds and nothing stays on the machine except the browser's own storage.
  • To work alone on your own computer: use the desktop app. It's the browser runtime with persistent storage and no tab to keep open.
  • To work as a group, share trajectories and results, use bigger machines, run plugins that only publish native builds, or run notebooks in Jupyter: self-host a server and enroll the machines that will compute.

The browser and the desktop app hold one workspace each. Data doesn't move between them and a server by itself.

Connect to an existing server

A web client that isn't tied to a server asks which one to use: its root address opens Connect to a server at /connect. (A client that knows its server opens the sign-in page instead, which takes a signed-in user on to the dashboard.)

Enter the server's address in Server address and choose Continue. Without a scheme, https:// is assumed.

The client requests GET <address>/healthz and waits up to 5 seconds for a JSON reply with "status": "ok". If it gets one, it shows Server connected and opens the sign-in page.

Sign in with your account on that server.

The browser remembers the address. To pick another server, choose Change server on the sign-in page: it forgets the address, your session and the selected team, and returns to /connect.

Some clients are tied to one server and never ask:

  • The client a self-hosted stack serves (port 5273 by default) always talks to its own server, so you sign in there directly.
  • A client built with VITE_SERVER_ENDPOINT uses that server (see Configuration).
  • The desktop app always runs its own workspace and can't connect to a server.

Which address to enter

Enter an address that answers /healthz with the server's JSON: the server's own port (http://<host>:8100 on a default self-hosted stack), or a reverse proxy that routes /healthz to the server (see Self-hosting). The client's port 5273 answers /healthz with the web app's page, so it isn't recognized as a server.

A client loaded over HTTPS can't reach a server over plain HTTP, since browsers block mixed content. Connect to an https:// address from such a client.

If the check fails, the client says why:

MessageWhat it means
Enter a valid server address.The text isn't a URL.
That address does not look like a Volt server.Something answered, but not with a successful JSON {"status": "ok"} from /healthz.
The server took too long to respond. Check the address and try again.No answer within 5 seconds.
Could not reach that server. Check the address and try again.The request failed: wrong host or port, the server is down, a certificate error, or blocked mixed content.

The same screen offers Run in this browser, which starts a workspace in the tab instead. See Run in the browser.

On this page