MKS DevEnv

Getting Started

Introduction to MKS DevEnv - Containerized development environment

Getting Started

Welcome to the documentation for MKS DevEnv - a containerized remote development environment with full desktop, IDE, and testing tools accessible via web or RDP.

What is MKS DevEnv?

Remote development environment containerized with Docker

Full desktop environment with VS Code, browsers, testing tools, and modern CLI utilities - all accessible through your browser or RDP client.

Why DevEnv Pro?

For Individual Developers

  • πŸš€ Instant Setup β€” Get a complete development environment running in minutes
  • πŸ”„ Environment Consistency β€” Same tools across all projects and machines
  • πŸ§ͺ Isolated Testing β€” Run tests without affecting your host system
  • πŸ“¦ No Installation Hassles β€” All tools pre-configured and ready to use

For Teams & Remote Work

  • 🌐 Browser-Based Access β€” Work from any device with a web browser
  • πŸ”— Shared Environments β€” Ensure all team members use identical tooling
  • πŸ’Ύ Persistent Workspaces β€” Your work is saved across sessions
  • πŸ”Œ Easy Collaboration β€” Share environment configurations with teammates

For CI/CD & Testing

  • πŸ§ͺ Pre-Installed Browsers β€” Playwright with Chromium, Firefox, WebKit
  • ⚑ Fast Test Execution β€” Optimized for automated testing pipelines
  • πŸ”„ Reproducible Builds β€” Same environment for development and CI/CD
  • 🎯 Headless Operation β€” Run tests without a display

For Learning & Teaching

  • πŸ“š Safe Playground β€” Experiment without risk to your main machine
  • πŸŽ“ Complete Toolchain β€” Learn modern development workflows
  • πŸ”„ Easy Reset β€” Start fresh anytime with Docker volumes
  • πŸ“‹ Reproducible Demos β€” Share exact setups for workshops and courses

Live Demo

Experience DevEnv Pro in action with our live deployment:

ServiceAccess URLDescription
πŸ–₯️ Web Desktoplab1-helsinki.devenv-1-guaka1.mks2508.systemsFull XFCE4 desktop in browser
πŸ’» Code-Serverlab1-helsinki.devenv-1.mks2508.systemsVS Code in browser
πŸš€ Guacamole Daemonlab1-helsinki.devenv-1-guaka2.mks2508.systemsProxy daemon for connections

Try it yourself! Follow the Quick Start guide below to deploy your own instance in minutes.

Quick Overview

Key Features:

  • πŸ–₯️ Full Linux desktop (XFCE4)
  • πŸ’» VS Code Desktop + Browser-based Code-Server
  • πŸ§ͺ Playwright testing with pre-installed browsers
  • πŸ”§ Modern runtime: Bun, Node.js, Python, OpenJDK
  • 🎨 GPU-accelerated terminal (Alacritty) with ZSH + Oh My Posh
  • 🌐 Web access via Apache Guacamole
  • πŸ“¦ Persistent volumes for workspace and config

Prerequisites

Before you begin, ensure you have:

  • Docker v20.10+ with Docker Compose v2
  • Docker Desktop (macOS/Windows) or Docker daemon (Linux)
  • 4GB+ RAM allocated to Docker
  • 20GB+ disk space available

Memory Requirements: For optimal performance, allocate at least 4GB RAM to Docker. 8GB+ recommended for multiple environments.

Installation Methods

Clone the repository:

git clone https://github.com/MKS2508/mks-dev-environment.git
cd mks-dev-environment/docker

Configure environment:

cp .env.example .env
# Edit .env with your passwords

Required variables:

  • CODE_SERVER_PASSWORD - Password for Code-Server
  • RDP_PASSWORD - Password for RDP access
  • GUACAMOLE_DB_PASSWORD - Database password
  • SSH_PUBLIC_KEY - Your public SSH key

Start services:

docker compose up -d

Initialize Guacamole:

cd guacamole
chmod +x init.sh
./init.sh

Access your environment:

Option 2: Coolify Deployment

For VPS deployment with Coolify:

  1. Push repository to GitHub
  2. Connect repository in Coolify
  3. Set environment variables in Coolify secrets
  4. Deploy with automatic HTTPS

See Deployment for detailed instructions.

Option 3: Manual Installation

# Download release tarball
wget https://github.com/MKS2508/mks-dev-environment/archive/refs/heads/master.tar.gz
tar -xzf master.tar.gz
cd mks-dev-environment/docker

# Follow Quick Start steps 2-5

Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Browser / RDP Client                       β”‚
β”‚  β”œβ”€ Guacamole (:8081)                      β”‚
β”‚  β”œβ”€ Code-Server (:8443)                    β”‚
β”‚  └─ RDP Client (:3389)                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                    β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Docker Network                             β”‚
β”‚  β”œβ”€ devenv-full (Desktop + IDE)            β”‚
β”‚  β”œβ”€ guacamole (Web UI)                     β”‚
β”‚  β”œβ”€ guacd (Proxy)                          β”‚
β”‚  └─ postgres (Database)                    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Next Steps

Pro Tip: Use the built-in tmux utilities (tx, txout, cx) for seamless development workflow with Claude Code.

Verification

Verify your installation:

# Check all services are running
docker compose ps

# Check service health
docker compose ps

# Test Guacamole
curl -f http://localhost:8081/guacamole

# Test Code-Server
curl -f http://localhost:8443/healthz

Getting Help

Actions

On this page