Run an event
Acest conținut nu este încă disponibil în limba selectată.
An event gives a group of people a GPU each for a fixed window: a workshop, a lab session, a hackathon or a competition. You schedule it, share a code, and razorBridge provisions the blades before the start time and removes them afterwards. Participants need only the CLI and the code; they are never billed.
This page is the organizer’s path from an empty account to a finished event. If you want to understand the machinery first, read GPU blades and sessions.
Before you start
Section titled “Before you start”- Credits. The organizing account pays for every blade the event provisions, and the event will not provision if the balance cannot cover it. Work out the cost first — see Manage an event budget — and request a grant with enough headroom.
- A time window. Blades are created shortly before your start time and removed shortly after your end time, so book the window you actually need including setup.
1. Create the event
Section titled “1. Create the event”In the web app, go to Events → Create Event and fill in:
| Field | Notes |
|---|---|
| Name | What participants will see, e.g. “ML Workshop — Spring term” |
| Event type | Competition, Workshop, Hackathon, Lab or Other. Defaults to Workshop |
| Starts at / Ends at | The window blades exist for |
| GPU Type | The dropdown lists each GPU with its VRAM and current hourly rate |
| Max participants | The cap on registrations. Defaults to 30 |
| Users per blade | How many participants share one GPU host. Defaults to 1 |
| Docker image | The environment participants land in. A CUDA + PyTorch image is prefilled |
| Cloud init script | Optional shell script run on each blade at boot — install extra packages, fetch a dataset |
| Description | Optional |
Choose Create Event. razorBridge assigns a join code, computes a cost estimate, and moves the event to Scheduled.
2. Get participants in
Section titled “2. Get participants in”Every event has an auto-generated join code — four letters, a hyphen, four digits — shown on the event’s detail page. You cannot choose it. Participants run:
rb event join ABCD-1234Codes are not case-sensitive, so however it gets copied off a slide it will work. Put it on your first slide, in the course channel, or on the whiteboard.
Joining is possible while the event is a draft, scheduled, or already running, and stops as soon as the end time passes or the participant cap is reached. Joining does not create a blade — the schedule does that.
Pre-registering a roster
Section titled “Pre-registering a roster”If you would rather not circulate a code, add people yourself through the API. There is no CSV upload in the web app; the endpoint takes JSON:
curl -X POST https://api.razorbridge.eu/v1/events/<event-slug>/roster/ \ -H "Authorization: Bearer $RB_TOKEN" \ -H "Content-Type: application/json" \ -d '{"participants": [ {"email": "alice@university.edu", "name": "Alice"}, {"email": "bob@university.edu"} ]}'Only email is required; name defaults to the part before the @. The response
reports how many were created and how many skipped — an entry is skipped if it
duplicates someone already on the roster, has no usable address, or would exceed
the participant cap. Re-posting the same list is safe.
The event slug is in the event’s URL, and rb event list prints it too.
$RB_TOKEN is your session token — the access_token value in
~/.config/rb/token after rb auth login:
export RB_TOKEN=$(python -c "import json,pathlib;print(json.loads(pathlib.Path.home().joinpath('.config/rb/token').read_text())['access_token'])")Session tokens last an hour, so re-run that line if a call starts returning 401.
3. Let the schedule do the work
Section titled “3. Let the schedule do the work”You do not need to be present at the start:
- About 30 minutes before the start time, razorBridge picks capacity and provisions one blade per group of participants.
- Each participant is emailed when their GPU is ready, with the host, port,
username and a ready-made SSH command. The password is not in the email —
rb blade sshfetches it. - The event moves to Running.
- A few minutes after the end time, every blade is torn down and the account is charged once for the total runtime. The event becomes Completed and its cost card switches from Estimated to Final cost.
Two provisioning outcomes need an organizer’s attention:
- Awaiting approval. If the GPU you chose is unavailable and only a more expensive option would satisfy the event, it waits for a decision rather than spending more than you agreed. The offer expires after about an hour, and the event then becomes Expired without provisioning.
- Failed. An event whose account cannot cover the estimated cost at provisioning time, or for which no capacity can be found, is marked Failed. Nothing is charged, but nobody gets a GPU — which is why headroom in the balance matters.
4. Monitor during the session
Section titled “4. Monitor during the session”The event detail page shows status, GPU, start and end times, the join code, the cost so far, and a participant table with each person’s name, email, assigned blade and last SSH login.
Use the last-SSH column to spot who needs help: someone who has never connected is usually stuck on installing the CLI or signing in, and Troubleshooting covers what they are most likely hitting.
5. Extend a running event
Section titled “5. Extend a running event”An event that is already Running can be extended by 30, 60 or 120 minutes through the API:
curl -X POST https://api.razorbridge.eu/v1/events/<event-slug>/extend/ \ -H "Authorization: Bearer $RB_TOKEN" \ -H "Content-Type: application/json" \ -d '{"minutes": 60}'The response confirms the new end time and the updated estimate. Participants keep working — their blades simply live longer — and the extra runtime is billed like the rest.
6. Tell participants to save their work
Section titled “6. Tell participants to save their work”Blade disks are discarded at teardown and participants get no warning before an event ends. Say so at the start of the session, and ask people to copy results off as they go:
rb blade scp blade:~/outputs/metrics.json ./ # one filersync -avP rb-abc12345:~/outputs/ ./outputs/ # a directory, via rb blade configRelated pages
Section titled “Related pages”- Manage an event budget — estimating cost and keeping it under control.
- Quickstart — the page to send participants.
- API reference — the event, roster and extend endpoints.