Open Laboratory Docs
Persistence
Documentation

Persistence

Laboratory OS is designed to provide a persistent and portable Open Source AI workstation environment. Move your Laboratory between machines, deploy it to different cloud GPUs, backup to external storage, pause and resume on demand.

Container Storage

By default, all Open Laboratory state lives inside the container’s writable layer — installed apps, downloaded models, settings, and generated outputs. This is fine for short-lived or ephemeral use, but if the container is removed (rather than just stopped), that data is gone.

Durable Persistence with a Volume Mount

To persist state across container removals and re-creations, bind mount a directory from your host into the container at /workspace:

docker run -d --restart unless-stopped \
  --gpus all \
  --pid host \
  --name laboratory \
  -e UPLINK_DEVICE_TOKEN='your-device-token' \
  -v /your/host/path:/workspace \
  openlaboratoryorg/laboratory-os

Or use a named Docker volume:

docker run -d --restart unless-stopped \
  --gpus all \
  --pid host \
  --name laboratory \
  -e UPLINK_DEVICE_TOKEN='your-device-token' \
  -v laboratory_os_workspace:/workspace \
  openlaboratoryorg/laboratory-os

Everything Open Laboratory writes — apps, models, desktop configuration, outputs — goes into /workspace. With a mount in place, you can remove and recreate the container at any time and pick up exactly where you left off.

When to Use a Volume Mount

ScenarioVolume mount needed?
Testing or short-term useNo — container storage is fine
Downloading large modelsYes — protect your downloads
Installing and configuring appsYes — avoid reinstalling each time
Moving to a different hostYes — copy the mount to the new host
Updating the Open Laboratory imageYes — preserves all state through the update

Moving Between Hosts

Because all state is in /workspace, moving your instance to a different machine is straightforward:

  1. Stop the container
  2. Copy the /workspace directory (or named volume) to the new host
  3. Reset or create a device token for the new host, then start the container with the same volume mount. A Tailscale deployment can instead rejoin with an appropriate tailnet auth key.

Your slug, apps, models, and settings are all preserved.

Hydration & Reconnection

When the container restarts, Open Laboratory re-establishes its configured remote access. Uplink device identity and Tailscale node state live under /workspace, so the assigned names normally remain stable when you reuse the same volume and credentials.

Routine container restarts and image updates are therefore safe when /workspace is mounted. Moving to another host may also require resetting an Uplink device token or issuing an appropriate Tailscale auth key.

When Laboratory OS boots with an existing /workspace, it rehydrates the environment automatically. Rehydration includes:

  • Recreating tunnel connections and subdomains.
  • Installing global apt and pip packages that were installed in the prior Laboratory OS container.
  • Setting prior environment variables.
  • Ensuring executable paths, such as UV Python binaries, are properly linked.
Search across 15 pages.
↑↓ navigate openEsc close