MKS DevEnv

devenv-full

Complete development environment with desktop, IDE, and testing tools

devenv-full Container

The devenv-full container is the heart of DevEnv Pro. It provides a complete development environment with desktop, IDE, and testing tools.

Overview

Installed Software

Runtime Environments

  • Bun v1.1.43 - Modern JavaScript runtime
  • Node.js v22 - Latest LTS Node.js
  • Python 3 - With pip and venv support
  • OpenJDK 17 - For Java applications and JetBrains Gateway

Code Editors

  • VS Code Desktop - Native VS Code with full extension support
  • Code-Server - Browser-based VS Code (fallback)

Testing

  • Playwright - E2E testing framework
  • Browsers: Chromium, Firefox, WebKit pre-installed

Modern CLI Tools

  • Alacritty - GPU-accelerated terminal emulator
  • ZSH + Oh My Posh - Modern shell with beautiful prompt
  • Tmux - Terminal multiplexer with custom utilities (tx, txout, cx)
  • Lazygit - Terminal UI for Git
  • bat - cat with syntax highlighting
  • eza - Modern ls replacement
  • btop - System monitor
  • ripgrep - Fast search
  • fd-find - Fast file search
  • fzf - Fuzzy finder

Integrations

  • GitHub CLI - Command-line GitHub integration
  • Claude Code - AI assistant with model switcher

Supervisord Services

The container uses Supervisord to manage multiple services:

All services are configured with auto-restart on failure.

Desktop Group (priority: 20)

ServicePortDescription
Xvfb:99Virtual framebuffer for headless X11
DBus-System bus for desktop applications
xrdp3389RDP server for remote desktop access
Xfce4-Full desktop environment

Services Group (priority: 10)

ServicePortDescription
SSH22SSH server for terminal/IDE access
Code-Server8443VS Code in browser

Service Startup Order

Services start in priority order:

  1. DBus (priority: 5)
  2. Xvfb (priority: 20)
  3. xrdp (priority: 30) - depends on Xvfb
  4. Xfce4 (priority: 40) - depends on Xvfb
  5. SSH (priority: 10)
  6. Code-Server (priority: 60)

Access Methods

RDP (Remote Desktop Protocol)

Connect from any RDP client:

  • Address: localhost:3389
  • Username: root
  • Password: From .env (default: devenv)

Windows: Use Remote Desktop Connection
Mac: Microsoft Remote Desktop (from App Store)
Linux: Remmina or rdesktop

X2Go (High Performance)

X2Go offers the best performance for remote desktop connections with lower latency than RDP/VNC.

Installation:

# macOS
brew install --cask x2goclient

# Linux (Debian/Ubuntu)
sudo apt install x2goclient

# Linux (Fedora)
sudo dnf install x2goclient

Connection:

  • Host: Your server IP or localhost
  • Port: 2223
  • Username: root
  • Session Type: XFCE
  • Quality: High

X2Go uses the same SSH port (2223) as JetBrains Gateway and terminal access.

SSH

ssh root@localhost -p 2223

Requires SSH key configured in .env.

Also compatible with:

  • JetBrains Gateway - For IDE remote development
  • X2Go - For high-performance remote desktop

Code-Server (Browser-based VS Code)

Open: http://localhost:8443

Code-Server serves as a fallback when VS Code Desktop is not available.

Environment Variables

Configure via docker/.env:

# Passwords
CODE_SERVER_PASSWORD=devenv
RDP_PASSWORD=devenv
VNC_PASSWORD=devenv

# SSH
SSH_PUBLIC_KEY="ssh-rsa AAAA... your@email.com"

# GitHub
GITHUB_TOKEN=ghp_xxxxxxxxxxxx

# Display
VNC_RESOLUTION=1920x1080
VNC_DEPTH=24

# RDP color depth (16=performance, 24=quality, 32=maximum)
RDP_COLOR_DEPTH=24

# Picom compositor (disabled by default for better RDP performance)
PICOM_ENABLED=false
PICOM_BLUR=false

# Timezone
TZ=Europe/Madrid

Persistence

The following directories are persisted as Docker volumes:

  • /workspace - Your working directory
  • /root/.config - Application configurations
  • /root/.vscode - VS Code settings
  • /root/.local/share/code-server - Code-Server data
  • /root/.claude - Claude Code configuration
  • /root/.ssh - SSH keys

Troubleshooting devenv-full

Services Not Starting

# Check service status
docker exec mks-devenv-full supervisorctl status all

# View service logs
docker compose logs devenv

Desktop Not Displaying

Check Xvfb and Xfce4:

docker exec mks-devenv-full supervisorctl status xvfb
docker exec mks-devenv-full supervisorctl status xfce4

RDP Connection Failed

  1. Check xrdp is running:

    docker exec mks-devenv-full supervisorctl status xrdp
  2. Verify Xvfb display:

    docker exec mks-devenv-full echo $DISPLAY
  3. Check Xfce4 is running:

    docker exec mks-devenv-full supervisorctl status xfce4

Actions

On this page