Labs
A lab is your own private Linux machine in the cloud. You get root access, persistent storage, an address on your private tunnel, and optionally a public domain with HTTPS. This page gives an overview and points you to the details.
The lab page
Everything about one lab lives on its page in the dashboard, across these tabs:
| Tab | What is there |
|---|---|
| Dashboard | Connection details, live CPU and memory, the Code button |
| Deployments | Your copies of this lab, its scale groups and its trash. Shown when the lab allows copies or you already have some. |
| Domains | The domains this lab serves |
| Preferences | Startup script, passwords, keys, always-on. Only for people who can manage the lab. |
| Activity | Lifecycle events and who caused each, plus Deploy attempts — see Deploy and redeploy |
Challenge labs show Challenges, Achievements and Leaderboard instead of Domains and Preferences. Other labs also have a Learn tab, and Discussions appears when your platform has discussions turned on.
How many you can run
| Plan | Labs running at once |
|---|---|
| Free | 2 |
| Paid | 4 |
The counter in the catalog header shows how many you are using. Stopped labs do not count. A paused lab still counts — it is frozen, not stopped. Every running copy and scale-group replica counts too.
Organizations may have their own limits. Your exact numbers are in Account Settings → Account Limits.
Resources per lab
CPU and memory come from the lab's template and your plan, not from a slider at deploy time. You can see live usage on the lab's Dashboard tab. It includes a CPU-throttle figure that tells you when a lab is being held back rather than simply busy.
If a lab uses heavy CPU for a long time, you get a warning first, and then the lab is stopped.
Extra copies
Some templates let you run more than one copy of a lab. Each copy has its own address, storage choice and settings. See Running extra labs.
Sharing a lab
You can give someone else access to a running lab without handing over your account.
| Role | What they can do |
|---|---|
| Viewer | See status, stats and connection info — not credentials |
| Operator | Also start, stop, pause and redeploy |
| Manager | Also change preferences and share it onward |
Only the owner can terminate a lab. Sharing requires a paid plan or 7,500 Zeal. You can share with a person or with a whole team.
Deploy history and failures
The Deploy attempts card on the Activity tab lists recent attempts with status, duration, exit code, who triggered it, and the error text when one failed.
It also points out one confusing case: a deploy that failed even though a container is running. See Deploy and redeploy.
In this section
How labs work
What a lab is, how you reach it privately, and how you publish it when you want to.
Deploy and redeploy
What happens when you deploy a lab, what the progress bar and log show, what a redeploy resets, and how to read the Activity tab afterwards.
Connect to a lab
Four ways in - browser VS Code, SSH, your own editor, and a graphical desktop.
Lab settings
Startup scripts, passwords, SSH keys, always-on and the custom error page.
Stop, pause and delete
What each way of shutting a lab down keeps, and what it throws away.
Running extra labs
Run more than one copy of the same environment, each independent.
Scale groups
Run several copies of one lab behind a single URL, with optional autoscaling, health checks and canary releases.
Sharing and workgroups
Give other people access to a lab without handing over your account, and share with a whole group at once.