Add Playground Apps Manager - Web-based devcontainer app deployment system#294
Merged
Conversation
024e4b6 to
9767e9c
Compare
9767e9c to
c6c7056
Compare
There was a problem hiding this comment.
Pull request overview
This PR introduces the Playground Apps Manager, a web-based system enabling users to create, manage, and deploy custom devcontainer-based applications with real-time monitoring and build log streaming.
Changes:
- Full-stack web application with Go backend and vanilla JavaScript frontend for CRUD operations on containerized apps
- Integration with Docker and Caddy for container lifecycle management and reverse-proxy routing
- PostgreSQL database for persistent app storage with automatic Caddy route synchronization on startup
Reviewed changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/playground/playground/main.go | Application entry point configuring database, Docker, Caddy clients and HTTP routing |
| src/playground/playground/handlers.go | HTTP handlers for app CRUD operations, container control, and log viewing |
| src/playground/playground/models.go | Data structures for apps, requests, and responses |
| src/playground/playground/validation.go | Input validation for app creation including name format and port range checks |
| src/playground/playground/database.go | PostgreSQL database layer with schema initialization and CRUD operations |
| src/playground/playground/docker.go | Docker client for container operations via devcontainer CLI |
| src/playground/playground/docker_service.go | Service layer orchestrating Docker operations and database updates |
| src/playground/playground/caddy.go | Caddy Admin API client for dynamic route management |
| src/playground/playground/caddy_service.go | Service layer for Caddy route synchronization with status updates |
| src/playground/playground/constants.go | Configuration constants and templates for devcontainer generation |
| src/playground/playground/static/index.html | Frontend UI for app management with real-time status updates |
| src/playground/playground/go.mod | Go module definition with PostgreSQL driver dependency |
| src/playground/playground/Dockerfile | Multi-stage build with devcontainer CLI and ttyd installation |
| src/playground/docker-compose.yaml | Service definitions for Caddy, playground app, and PostgreSQL |
| src/playground/.devcontainer.json | Devcontainer configuration for the playground manager itself |
| src/playground/caddy/Caddyfile | Caddy configuration with admin API enabled |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
yuhuyoyo
approved these changes
Jan 16, 2026
PeterSu92
pushed a commit
that referenced
this pull request
May 21, 2026
…ystem (#294) ## Summary Introduces the Playground Apps Manager - a web-based system for creating, managing, and deploying custom devcontainer-based applications with real-time monitoring and build log streaming. ## Overview The Playground Apps Manager provides a self-service interface for users to create and manage containerized applications using devcontainer configurations. Apps are built with the devcontainer CLI and run as isolated containers with reverse-proxy routing through Caddy. ## Key Features ### App Management - **Web UI**: Full-featured interface for CRUD operations on apps - **Dynamic Routing**: Automatic Caddy configuration for reverse-proxy routing to each app - **Container Lifecycle**: Start, stop, and monitor container status - **Real-time Status**: Live updates for app and container states ### Build System - **Devcontainer-based**: Uses devcontainer CLI for building and starting containers - **Live Build Logs**: Real-time streaming of build output to playground logs - **Platform Support**: Builds as `linux/amd64` for maximum compatibility - **Async Building**: Apps build in background with status tracking ### Optional Features Built-in support for common feature sets: - **Workbench CLI** (`wb`): Java 17, AWS CLI, gcloud CLI, startup scripts (~4 min build) - **Workbench Tools** (`workbench-tools`): Bioinformatics toolkit including bcftools, bedtools, plink, plink2, samtools, VEP, REGENIE (~8 min build) Features are automatically installed during devcontainer build with proper configuration. ### Example Apps Quick-start templates for common use cases: - **ttyd**: Web-based terminal access - **JupyterLab**: Interactive notebook environment ### Monitoring & Debugging - **Container Logs**: View logs for individual app containers - **Playground Logs**: System-level logs for build processes - **Auto-refresh**: Toggle auto-refresh (3s interval) for real-time log monitoring - **Smart Scrolling**: Maintains scroll position during log updates <img width="1494" height="465" alt="image" src="https://github.com/user-attachments/assets/5e990bee-f995-4f7e-a1fc-82072154230e" /> <img width="822" height="1114" alt="image" src="https://github.com/user-attachments/assets/32929fcf-eb27-4a21-96f6-bacb3cb1cf97" /> <img width="822" height="780" alt="image" src="https://github.com/user-attachments/assets/28dc93bc-2913-4080-9fd0-d6b6e8c45713" /> 🤖 Generated with Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Introduces the Playground Apps Manager - a web-based system for creating, managing, and deploying custom devcontainer-based applications with real-time monitoring and build log streaming.
Overview
The Playground Apps Manager provides a self-service interface for users to create and manage containerized applications using devcontainer configurations. Apps are built with the devcontainer CLI and run as isolated containers with reverse-proxy routing through Caddy.
Key Features
App Management
Build System
linux/amd64for maximum compatibilityOptional Features
Built-in support for common feature sets:
wb): Java 17, AWS CLI, gcloud CLI, startup scripts (~4 min build)workbench-tools): Bioinformatics toolkit including bcftools, bedtools, plink, plink2, samtools, VEP, REGENIE (~8 min build)Features are automatically installed during devcontainer build with proper configuration.
Example Apps
Quick-start templates for common use cases:
Monitoring & Debugging
🤖 Generated with Claude Code