Architecture
Technical architecture of DevEnv Pro - services, networks, and data flow
Architecture
Technical overview of the DevEnv Pro system architecture.
System Overview
Services
devenv-full
The main development environment container.
Purpose: All-in-one development environment with desktop, IDE, and tools.
Services Managed by Supervisord:
| Service | Port | Description |
|---|---|---|
| Xvfb | :99 | Virtual framebuffer for headless display |
| DBus | - | System bus for desktop applications |
| xrdp | 3389 | RDP server for remote desktop access |
| Xfce4 | - | Desktop environment |
| SSH | 22 | SSH server for terminal/IDE access |
| Code-Server | 8443 | VS Code in browser |
Installed Software:
- Runtime: Bun v1.1.43, Node.js v22, Python 3, OpenJDK 17
- IDEs: VS Code Desktop, Code-Server
- CLI: ZSH, Alacritty, Tmux, Lazygit, bat, eza, btop, ripgrep, fd-find, fzf
- Testing: Playwright (Chromium, Firefox, WebKit)
- Integrations: GitHub CLI, Claude Code
guacamole-postgres
PostgreSQL database for Guacamole authentication.
Purpose: Stores user accounts, connections, and permissions.
Default Database: guacamole_db
Connection:
- Host:
guacamole-postgres - Port: 5432
- User:
guacamole_user
guacamole-guacd
Guacamole proxy daemon.
Purpose: Translates Guacamole protocol to RDP/VNC/SSH.
Port: 4822
guacamole
Web application for Guacamole (Tomcat-based).
Purpose: Browser-based UI for remote desktop connections.
Port: 8081 (host)
Default Credentials: guacadmin / guacadmin
Network
mks-devenv-network
Bridge network that connects all containers.
Connected Services:
- devenv-full
- guacamole-postgres
- guacamole-guacd
- guacamole
Communication:
- All containers can communicate via service names
- devenv-full accessible as hostname
devenvfrom Guacamole
Data Flow
Web Desktop Access (Guacamole)
Direct RDP Access
Volumes
| Volume | Purpose | Mount Point |
|---|---|---|
mks-devenv-workspace | Workspace files | /workspace |
mks-devenv-config | Application configs | /root/.config |
mks-devenv-vscode | VS Code settings | /root/.vscode |
mks-devenv-vscode-data | Code-Server data | /root/.local/share/code-server |
mks-devenv-claude | Claude Code config | /root/.claude |
mks-devenv-ssh-keys | SSH keys | /root/.ssh |
mks-guacamole-db | Guacamole database | /var/lib/postgresql/data |
Ports
| Port | Service | Access Method |
|---|---|---|
| 2222 | SSH (from host) | ssh root@localhost -p 2222 |
| 3389 | RDP | rdp://localhost:3389 |
| 8081 | Guacamole Web | http://localhost:8081/guacamole |
| 8443 | Code-Server | http://localhost:8443 |
Health Checks
All services include health checks:
- devenv-full: Code-Server HTTP check every 30s
- guacamole-postgres:
pg_isreadycheck every 10s - guacamole-guacd: Port 4822 connectivity check every 10s
- guacamole: HTTP endpoint check every 30s