Open Laboratory Docs
Security
Documentation

Security

Laboratory OS is designed to reduce the work and exposure involved in operating a remote workstation. It avoids directly publishing host ports, but it remains a privileged computing environment whose safety depends on its host, credentials, access policy, and installed software.

Its security model is based on four ideas:

  1. Isolate workloads from the host with a Docker container
  2. Use outbound Uplink or Tailscale connections instead of host port exposure
  3. Apply an access policy appropriate to the selected remote-access method
  4. Separate privileged desktop access from narrowly shared apps

Container Sandboxing

Laboratory OS runs inside a Docker container, which provides a filesystem and network boundary between workloads and the host. The recommended launch command passes through NVIDIA GPUs and shares the host PID namespace for monitoring, so this is not a strong sandbox for hostile code. A container escape, a mounted host directory, or privileged device access can still affect the host.

Treat installed apps, notebooks, servers, and commands as code running with access to the container’s data and attached devices. Install only software you trust and keep Docker, the host OS, and GPU drivers patched.

When /workspace is mounted into the container, persistent files survive container replacement. Uplink carries traffic and account metadata in managed mode; Tailscale carries tailnet traffic. Workload files remain on the storage you mount unless an app you install sends them elsewhere.

Remote Access

Laboratory OS can use an outbound Uplink tunnel, Tailscale, or both. Uplink connects to the managed edge selected for its account or to the self-hosted edge you supply. Tailscale joins the station to your tailnet.

For a user, the main benefit is simple: you do not have to expose local ports, run a public nginx instance yourself, or open inbound firewall rules just to reach the machine remotely.

Sharing Apps

Uplink published-app tokens are meant for narrow external sharing. They let you expose one app without exposing the whole workstation. A token can be scoped to the specific routes that its holder should reach. Tailscale deployments use tailnet ACLs instead.

Desktop And Tool Access

The Laboratory OS desktop is the most privileged surface. Someone with desktop access can usually reach the other user-facing tools on the workstation. VS Code, terminals, the file browser, and Jupyter therefore use the same trusted remote-access boundary as the desktop.

In device-token mode, the managed edge authenticates visitors against the owning Uplink account. On a self-hosted edge, the lab root uses the first-party access token printed during boot. On Tailscale, tailnet identity and ACLs control access. Open the assigned Laboratory URL directly; there is no separate Laboratory dashboard.

Data And Control

Your workloads run in your own container on infrastructure you control. Your models, files, and installed apps live in the mounted /workspace volume on your machine or VM.

Uplink or Tailscale provides connectivity and its associated identity layer. The actual workload and mounted storage remain on infrastructure you control.

Bottom Line

Laboratory OS reduces direct inbound exposure, gates desktop access according to the selected network, and separates Uplink app sharing from full-workstation access.

That does not make arbitrary code safe to run. Anyone with desktop access should be treated as an operator of the workstation, and exposed apps still need the least-permissive access policy that fits their use.

Search across 15 pages.
↑↓ navigate openEsc close