Skip to main content
A self-hosted Rerun has no back office. You administer it with one variable, Supabase Studio, and the Docker logs.

Admins

ADMIN_EMAILS names the admins, separated by commas:
.env
Admins see a few extra switches in the app. The list is also baked into the app for the browser, so rebuild after changing it: docker compose up -d --build. There is no /admin page in the open source build. Everything else goes through Supabase Studio.

Supabase Studio

Studio is the table editor and SQL editor of your Supabase project: the project dashboard on supabase.com, http://localhost:54423 for the local stack, or the root of your Supabase domain for open source Supabase. There, it sits behind DASHBOARD_USERNAME and DASHBOARD_PASSWORD from supabase-stack/.env, and anyone can reach its login: keep the generated password. People are in Authentication > Users. Deleting a user there removes their account and their memberships. The tables that matter: The agents table is only an index. What a coworker knows and does lives on its server, in the data-dir. See What is stored where. Some tables stay empty on your install, because what fills them belongs to Rerun Cloud: billing, paid apps, paid data, the machine pool and its hosts. They are part of the schema all the same.

Common tasks

Which workspace runs on which server:
Free the engine docker compose started, so the next workspace that needs one gets it. Its data-dir keeps the coworkers of the previous workspace:
Cap a workspace at ten coworkers:
Turn a service off for everyone:

Invitations

Members invite people from the workspace menu, as on Rerun Cloud. See Teams. This build sends no invitation email. Send the link yourself: it is NEXT_PUBLIC_APP_URL/invite/<token>, with the token of the invitation in workspace_invitations. The person opens it and signs in with their email code. Sign-in codes are the one email Rerun relies on, and Supabase sends them. See Set up Supabase.

Background jobs

There is no job queue to run. The app runs its background work in its own process:
  • researching the company and seeding the Brain during onboarding
  • suggesting coworker ideas
  • switching a coworker off on its server once the app has turned it off
  • every night at 3:00, deleting anonymous visitors older than a day who never signed up
  • every night at 3:40, clearing the web search cache
The times follow the clock of the app container, UTC unless you set TZ. A restart drops a job in flight. Each one is asked again by the screen or the flow that needs it.

Logs

The app tags its lines: [task] for background jobs, [llm] for the Rerun models, [servers] for pairing, [email] for the emails this build skips. For more detail from an engine, set RERUN_LOG_LEVEL=debug and run docker compose up -d. To check an engine’s data-dir without changing it: