Single-node GPU workspace manager

Your research environment, one click away.

Launch a GPU workspace with PyTorch, TensorFlow, or the CUDA stack ready to go — then open it in JupyterLab, VS Code, or a terminal. Pick a template and you're training in minutes.

PyTorch · TensorFlow · CUDA Ready-made templates Self-hosted
Single-node GPU workspace manager

Build it once. Share it with the lab.

Save a GPU workspace as a template and hand it to a labmate — everyone starts from the same PyTorch, the same CUDA, the same packages. Your conda env and dotfiles persist across every restart.

Export & import templates Persistent conda env Shared dataset mounts
Single-node GPU workspace manager

One GPU box. Everyone's workspace.

A web console for the shared GPU in the corner — launch your PyTorch or CUDA environment, keep it across restarts, and see who's on the card right now.

Launch in a click Persistent home Flexible GPU sharing
labpod.lab.local / workspaces
Bring your whole stack
PyTorch scikit-learn Hugging Face Transformers Diffusers PEFT vLLM TensorBoard Weights & Biases Conda JupyterLab VS Code CUDA / cuDNN

Templates ship a CUDA / cuDNN base with Conda and JupyterLab. Bring the rest with pip or conda — or build your own image.

Your environment

Build it, reproduce it, share it.

A workspace is a deep-learning environment you launch in a click, keep across restarts, and hand to the whole lab — bounded by fair CPU, GPU, and memory limits.

Frameworks, ready to go

Pick a PyTorch, TensorFlow, or CUDA template and it launches GPU-ready — open it in JupyterLab, VS Code, or a terminal. Bring or build your own image whenever you need to.

Environments that persist

Per-workspace home keeps conda envs, dotfiles, pip installs, and shell history across every stop and start. /work survives re-creation; the HF cache downloads once.

Share with the lab

Export a workspace template to a labmate, mount shared read-only datasets, and expose your own Gradio or Streamlit through a named LabPod port.

Flexible GPU sharing

Give a user a whole GPU, or split one card by memory and compute so several share it at once — on any NVIDIA card.

Real resource limits

Per-user CPU, memory, and GPU quotas, enforced by cgroups — not an honor system. Disk and image storage are tracked and shown. LabPod decides how much; you decide what to run.

Rootless & isolated

Rootless Podman per Linux account — no Docker group, no root-equivalent access. Capability drop, no-new-privileges, localhost bind.

GPU allocation

Share one GPU, two ways.

Start simple with whole-GPU passthrough; add fractional sharing when the lab grows. The same workspace, different boundaries.

01 · Whole GPU

Claim a card outright

One or more GPUs assigned to a user, with locks so nothing double-books. Single-GPU training and multi-GPU DDP both work out of the box.

02 · Fractional

Split one card

Share a single GPU between several researchers by capping memory and compute per workspace — on any NVIDIA card. Where the hardware supports partitioning, slices are fully isolated.

For the server owner

See everything on the box.

Who holds which GPU, how much memory is live, which workspaces look idle, how much image storage each user takes — on one page.

  • Per-user CPU, memory, and GPU util/memory against quota, with disk and image storage in view
  • GPU occupancy by owner, plus drift LabPod doesn't yet track
  • Multi-signal idle visibility tuned for ML, never a single metric
  • Force-stop, usage reports with CSV export, and audit logs
Bring your own image

Any image. A shell, guaranteed.

Research images often have a shell but no web terminal — or none of the usual launchers at all. LabPod injects a minimal, read-only runtime so a browser terminal and live monitoring just work.

  • Launchers — Jupyter, code-server, TensorBoard, MLflow — toggled per workspace
  • Containers you started yourself appear in the same UI, quotas summed in
  • Expose your own gradio/streamlit service through a named LabPod port
  • Persistent per-workspace home — close the tab, reattach later
Get LabPod

Install it on the box. Open the browser.

One idempotent script sets up Podman and the LabPod service. Then your lab logs in and starts launching workspaces.

$ curl -fsSL labpod.ai/install.sh | sudo bash