Skip to content

Coder - Cloud Development Environments

Coder is a self-hosted platform for deploying cloud development environments. It enables LBNL researchers to run VS Code, JetBrains IDEs, and AI coding agents in secure, network-isolated containers on Berkelium’s Kubernetes infrastructure.

  • Self-Hosted Security: Your code and data never leave the Berkelium cluster — critical for compliance-sensitive research
  • AI-Native Development: Run AI coding agents (Cursor, Devin Desktop, GitHub Copilot) with centralized governance and audit trails
  • Consistent Environments: Template-based workspaces ensure reproducible development setups across your research team
  • GPU Acceleration: Access NVIDIA H100, A100, and L40S GPUs directly from your cloud IDE
  • Network Isolation: Enforce zero-trust networking policies between workspaces and external resources

Visit the Coder Portal and authenticate with your LBNL OneID.

Coder offers pre-configured templates for common research workflows:

TemplateCPUGPUMemoryUse Case
Standard Dev4 coresNone16GBGeneral Python/R development
Data Science GPU8 coresA100 (40GB)64GBML model training, JupyterLab
LLM Research16 coresH100 (80GB)128GBLarge language model fine-tuning
Vision Workloads12 coresL40S (48GB)96GBComputer vision, image processing

Once your workspace is running:

VS Code (Recommended):

Terminal window
# Install Coder CLI
curl -L https://coder.com/install.sh | sh
# Connect to your workspace
coder code-server <workspace-name>

JetBrains IDEs:

  1. Open your JetBrains IDE (IntelliJ, PyCharm, CLion)
  2. Install the Coder Gateway plugin
  3. Connect to https://coder.berkelium.lbl.gov
  4. Select your workspace and launch

Browser-Based:

  • Access VS Code directly at https://coder.berkelium.lbl.gov/workspace/<name>
  • Full terminal, file explorer, and extension support

Create custom templates for your research group by defining a .coder/coder.yaml file in your repository:

workspace:
name: my-research-env
image: ghcr.io/my-lab/custom-ml-image:latest
resources:
cpu: 16
memory: 64Gi
gpu: nvidia.com/gpu=1
mounts:
- source: pvc/my-datasets
destination: /home/coder/datasets
read_only: false
ports:
- port: 8888 # JupyterLab
expose: true
- port: 6006 # TensorBoard
expose: true

Coder provides centralized control over AI coding assistants:

  • Audit Logs: Track all AI tool invocations and code suggestions
  • Policy Enforcement: Block or allow specific AI models based on data sensitivity
  • Network Controls: Restrict AI agents from accessing external APIs or datasets
  • Cost Monitoring: Monitor token usage and API costs across your team

Mount CephFS persistent volumes to retain your work across sessions:

Terminal window
# In your workspace terminal
kubectl patch workspace <workspace-name> -n sci-myproject --type='json' \
-p='[{"op": "add", "path": "/spec/volumes/-", "value": {
"name": "home-storage",
"persistentVolumeClaim": {"claimName": "my-home-pvc"}
}}]'

  1. Stop Idle Workspaces: Coder workspaces consume GPU/CPU resources even when idle. Stop them when not in use:

    Terminal window
    coder stop <workspace-name>
  2. Use Templates: Standardize environments across your team using workspace templates for reproducibility.

  3. Mount Persistent Storage: Always mount a PVC for your home directory and datasets to avoid data loss.

  4. Leverage AI Governance: For sensitive research code, enable AI governance policies to control model access.

  5. Port Forwarding: For web applications running in your workspace:

    Terminal window
    coder port-forward <workspace-name> 8080:8080

  • Check resource quotas: kubectl describe quota -n sci-myproject
  • Verify GPU availability: kubectl describe nodes | grep -A 5 "Allocated resources"
  • Review workspace logs: coder logs <workspace-name>
  • Ensure your Coder CLI is up to date: coder version
  • Check network connectivity: coder ping <workspace-name>
  • Restart the code-server: coder restart <workspace-name>
  • Verify GPU resource requests in your template
  • Check NVIDIA device plugin: kubectl get pods -n kube-system | grep nvidia
  • Restart workspace with GPU flag: coder start <workspace-name> --gpu


  • Office Hours: Tuesday & Thursday, 11am – 12pm PT (Zoom link in Slack)
  • Slack: #coder-users on the LBNL workspace
  • Help Desk: Submit a ticket for Coder-specific issues