Projects & Workspaces
Organize work with projects and develop in powerful cloud-based environments (JupyterHub, VS Code) with three types of persistent storage for seamless team collaboration.
How to Create a Project
Step 1: Navigate to Projects
- Click Projects in the main navigation
- Click Create Project button
Step 2: Configure Project
Project Details:
- Name: Unique project identifier (e.g., customer-churn-analysis)
- Display Name: Friendly name shown in UI
- Description: Project purpose and goals
- Tags: Organize by department, team, or category
- Team Members: Add collaborators with view or edit permissions
Step 3: Create Project Volumes (Optional)
Add shared storage volumes accessible to all workspaces in this project:
- Click Add Volume in project settings
- Enter volume name (e.g., training-data, models, results)
- Set storage size (default: 10GB, max: 1TB)
- Choose storage class: gp3 (general purpose), io1 (high performance)
- Click Create Volume
Project volumes are mounted at /project/volume-name in all workspaces. Perfect for shared datasets and team code.
How to Create a Workspace
Step 1: Select Project
- Navigate to Projects
- Click on a project name
- Click Create Workspace button
Step 2: Choose Environment
Development Environments
JupyterHub
- Image:
jupyter/datascience-notebook - Port: 8888
- Best For: Data science, ML, interactive notebooks, Python/R development
- Pre-installed data science libraries
- Multiple kernels (Python, R, Julia)
- Interactive visualizations
VS Code
- Image:
codercom/code-server - Port: 8080
- Best For: Full-stack development, debugging, version control
- Full VS Code IDE in browser
- Extensions marketplace
- Git integration, debugging
Three Volume Types
| Volume Type | Scope | Mount Path | Lifecycle |
|---|---|---|---|
| Workspace Volume | Single workspace only | /workspace | Persists for life of workspace (deleted with workspace) |
| Project Volume | All workspaces in project | /project/<name> | Persists for life of project (deleted with project) |
| Shared Volume | Multiple projects | /shared/<name> | Persists until explicitly deleted |
Volume Lifecycle Details
Workspace Volumes:
- Data in
/workspacepersists through workspace stop/start cycles - Volume is deleted only when the workspace itself is deleted
- Perfect for personal files, experiments, and temporary data
Project Volumes:
- Accessible from all workspaces within the project
- Data persists through workspace stop/start and even workspace deletion
- Volume is deleted only when the project is deleted
- Use the Sync button in workspace header to backup changes to project storage
Shared Volumes:
- Accessible from workspaces across multiple projects
- Persists independently until explicitly deleted by an admin
- Use the Sync button in workspace header to backup changes to shared storage
Only files saved within /workspace, /project/*, or /shared/* directories persist. System-level installations (e.g., pip install or apt-get install) do not persist between workspace restarts.
To persist Python packages, use a virtual environment inside your workspace:
python -m venv /workspace/venv
source /workspace/venv/bin/activate
pip install your-packages
Step 3: Configure Resources
Resource Allocation:
- CPU: 0.5 - 16 cores
- Memory: 1GB - 64GB RAM
- GPU: Optional (NVIDIA T4, A10G, A100)
- Workspace Storage: 5GB - 500GB persistent disk
Step 4: Connect Services (Optional)
Connect data sources, add-ons, and AI models to your workspace via STRONGLY_SERVICES:
- Select PostgreSQL, MongoDB, or other data sources
- Connect to AI models from AI Gateway
- Link workflows for programmatic execution
Step 5: Launch Workspace
- Review configuration
- Click Create Workspace
- Wait for provisioning (typically 30-90 seconds)
- Click Open to launch JupyterHub or VS Code in new tab
Using Volumes in Code
# Python Example
import pandas as pd
import os
# Workspace volume (personal - unique to this workspace)
results_df.to_csv('/workspace/experiments/results.csv')
# Project volume (shared across all workspaces in project)
train_df = pd.read_csv('/project/training-data/train.csv')
# Shared volume (organization-wide access)
reference_df = pd.read_parquet('/shared/common-datasets/reference.parquet')
Managing Workspaces
Start/Stop/Restart
- Stop idle workspaces to save costs
- All data in volumes persists when stopped
- Restart anytime without losing work
- Auto-stop after configurable idle time
Upgrade Resources
- Stop workspace before upgrading
- Modify CPU, memory, or GPU allocation
- Increase workspace storage size
- Restart with new configuration
Install Packages
- JupyterHub: Use pip, conda, or apt-get in terminal
- VS Code: Install extensions from marketplace
- Use virtual environments in
/workspace/venvto persist Python packages - Share environment.yml or requirements.txt with team
Collaborate with Team
- Share project volumes for common datasets
- Use Git for version control within workspace
- Export notebooks to share with project members
- Set up shared volumes for organization-wide access