Skip to content

dever-labs/workspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Workspace

A collection of containerized development environments designed to provide complete, isolated, and portable development workstations. Break free from IT restrictions and work anywhere with consistent tooling.

Portable, containerized developer workstations with full desktop environments and GPU-accelerated remote access.

πŸš€ Quick Start

Ubuntu Developer Workstation (Recommended)

Full-featured Linux desktop environment with GPU-accelerated remote access:

cd src/ubuntu
.\start.ps1

Then connect via:

  • RDP: localhost:3389 (user: dev, password: from .env)
  • Sunshine/Moonlight: Ultra-low latency streaming (5-15ms) with NVENC GPU encoding
  • SSH/X2Go: Terminal or remote desktop via port 2222

πŸ“– Full Documentation β†’

πŸ“¦ What's Inside

src/ubuntu - Developer Workstation Container

A complete Ubuntu 24.04 XFCE desktop environment optimized for development work:

Features

  • βœ… Full Linux Desktop (XFCE) - Complete GUI environment
  • βœ… GPU Acceleration - NVIDIA NVENC hardware video encoding (RTX GPUs)
  • βœ… Multiple Access Methods - RDP, SSH, X2Go, Sunshine/Moonlight streaming
  • βœ… JetBrains IDEs Ready - Optimized for Rider, WebStorm, IntelliJ IDEA, etc.
  • βœ… Docker-in-Docker - Run containers within the workspace
  • βœ… Persistent Storage - Home directory and caches preserved across restarts
  • βœ… Flexible Deployment - Local Docker Desktop, Remote VM, or Kubernetes

Deployment Options

Local Development (Docker Desktop):

cd src/ubuntu
docker compose up -d

Remote VM (with WireGuard VPN):

cd src/ubuntu
./deploy-remote.sh user@remote-vm

Kubernetes:

cd src/ubuntu
kubectl apply -f k8s/devworkstation.yaml

Technologies

  • Base: Ubuntu 24.04 LTS
  • Desktop: XFCE4 (lightweight & fast)
  • Streaming: Sunshine v0.23.1 with NVENC GPU encoding
  • Remote Access: xrdp, OpenSSH, X2Go
  • Tools: Git, Docker CLI, Python 3, Node.js, build tools
  • IDEs: Ready for JetBrains Toolbox, VS Code, etc.

Performance Comparison

Access Method Latency Smoothness Use Case
Sunshine/Moonlight 5-15ms ⭐⭐⭐⭐⭐ 60-120 FPS Best for remote work
X2Go 10-30ms ⭐⭐⭐⭐ Excellent alternative
RDP (xrdp) 50-150ms ⭐⭐⭐ Local/testing

Note: Sunshine on Windows Docker Desktop has a networking limitation causing 10-second timeouts. Works perfectly on Linux Docker Engine and Kubernetes.

🎯 Use Cases

Bypass IT Restrictions

Run your entire development stack (IDEs, Docker, databases, tools) in an isolated container that IT can't restrict or monitor.

Consistent Development Environment

Same tools, same versions, same setup across your laptop, workstation, and remote VMs.

Remote Development

Access your full desktop development environment from anywhere via ultra-low latency streaming or RDP.

Team Standardization

Share the exact same development environment across your entire team via container images.

Cloud Development

Deploy development workstations to cloud VMs or Kubernetes clusters for powerful remote coding.

πŸ“‹ Requirements

  • Local:

    • Docker Desktop (Windows/Mac) or Docker Engine (Linux)
    • 16GB+ RAM recommended
    • NVIDIA GPU (optional, for hardware encoding)
  • Remote:

    • Linux VM with Docker Engine
    • NVIDIA GPU (optional, for Sunshine NVENC encoding)
    • WireGuard VPN (recommended for secure access)
  • Kubernetes:

    • K8s cluster with NVIDIA GPU Operator (for GPU support)
    • Persistent Volume support
    • NodePort or LoadBalancer service

πŸ”§ Configuration

Each environment has its own .env file for configuration:

# Core settings
DEV_PASSWORD=your-secure-password
TIMEZONE=America/New_York
GIT_USER_NAME=Your Name
GIT_USER_EMAIL=your.email@example.com

# Remote access options (choose based on your needs)
ENABLE_RDP=true        # Windows native client (50-150ms)
ENABLE_X2GO=true       # Better performance (10-30ms)
ENABLE_SSH=true        # Terminal access
ENABLE_SUNSHINE=true   # Best performance (5-15ms, 60 FPS)

# Resource limits
CPU_LIMIT=8
MEMORY_LIMIT=16G

# GPU support
NVIDIA_VISIBLE_DEVICES=all
NVIDIA_DRIVER_CAPABILITIES=all

πŸ“š Documentation

πŸ” Security Best Practices

  1. Change default passwords - Never use dev:dev in production
  2. Use WireGuard VPN - For remote access to development workstations
  3. Never expose RDP/SSH - Don't open ports directly to internet
  4. Use SSH keys - Disable password authentication for SSH
  5. Bind services to VPN interface - Limit access to trusted networks only
  6. Regular updates - docker compose pull && docker compose up -d

πŸ› οΈ Common Commands

Local Development

cd src/ubuntu

# Start
docker compose up -d

# View logs
docker compose logs -f

# Shell access
docker compose exec devworkstation bash

# Restart
docker compose restart

# Stop
docker compose down

# Update
docker compose pull && docker compose up -d

Remote Deployment

cd src/ubuntu

# Deploy
./deploy-remote.sh user@remote-vm

# Manage remotely
docker --context remote compose logs -f
docker --context remote compose restart

# Switch back to local
docker context use default

Kubernetes

cd src/ubuntu

# Deploy
kubectl apply -f k8s/devworkstation.yaml

# Check status
kubectl get pods -n devworkstations
kubectl logs -n devworkstations devworkstation-0 -f

# Access
kubectl get svc -n devworkstations
# Connect to NodePort or LoadBalancer IP

πŸš€ What Makes This Special?

GPU-Accelerated Streaming ✨

Unlike traditional remote desktop solutions, this setup uses Sunshine with NVENC hardware encoding:

  • 5-15ms latency (game-streaming technology)
  • 60-120 FPS smooth desktop
  • Works at ultra-wide resolutions (5120x1440)
  • Minimal CPU usage (encoding done on GPU)
  • Supports RTX 3070 Ti and newer NVIDIA GPUs

Modular Compose Architecture

Three-layer compose file structure for maximum flexibility:

  • compose.yaml - Base configuration (works everywhere)
  • compose.override.yaml - Local development overrides
  • compose.remote.yaml - Remote VM specific settings

Production-Ready Design

  • StatefulSets for Kubernetes
  • Persistent volumes for data
  • Healthchecks and readiness probes
  • Resource limits and reservations
  • Security contexts and capabilities

πŸ› Troubleshooting

GPU not detected

# Check NVIDIA drivers on host
nvidia-smi

# Check GPU in container
docker exec devworkstation nvidia-smi

# Verify Docker GPU support
docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi

RDP connection fails

# Check container is running
docker compose ps

# Check xrdp service
docker exec devworkstation pgrep xrdp

# View logs
docker compose logs -f

Sunshine/Moonlight disconnects after 10 seconds

This is a known limitation with Docker Desktop on Windows bridge networking. Sunshine's ping verification cannot reach back through the Docker bridge.

Solutions:

  • Use X2Go instead (reliable on all platforms)
  • Deploy to Linux VM or Kubernetes (works perfectly)
  • Use RDP for local testing

See SUNSHINE_SETUP.md for details.

πŸ“Š Performance Benchmarks

Software Encoding (x264):

  • 1920x1080 @ 60 FPS: βœ… Works (40-60% CPU)
  • 2560x1440 @ 30 FPS: βœ… Acceptable
  • 5120x1440: ❌ Too slow, frame drops

Hardware Encoding (NVENC - RTX 3070 Ti):

  • 1920x1080 @ 120 FPS: βœ… Smooth (5-10% CPU)
  • 2560x1440 @ 120 FPS: βœ… Excellent
  • 3440x1440 @ 60 FPS: βœ… Great
  • 5120x1440 @ 60-120 FPS: βœ… Works! (100+ Mbps bitrate)

🀝 Contributing

We welcome contributions! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.

Please read our Contributing Guidelines for details on:

  • How to report issues
  • How to suggest features
  • Development setup and guidelines
  • Pull request process

Please also review our Code of Conduct - we are committed to providing a welcoming and inclusive environment for all contributors.

Issues and pull requests are welcome!

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Use freely for personal or commercial projects.

πŸ™ Acknowledgments

Built with:

  • Ubuntu 24.04 LTS
  • XFCE Desktop Environment
  • Sunshine/Moonlight streaming technology
  • xrdp by Neutrinolabs
  • Docker & Docker Compose
  • Kubernetes

πŸŽ“ Learn More

Built to Free Developers from IT Restrictions πŸš€

Need help? Check the Ubuntu Dev Workstation docs or open an issue!

About

Containerized development workspaces providing complete, portable, GPU-accelerated developer environments that run anywhere.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors