This guide covers setting up a development environment for the Remote Docker Extension.
- Docker Desktop
- Node.js and npm
- Go programming language
- Make
-
Clone the repository
-
Run the development setup script:
./scripts/dev-setup.sh
-
Start the UI development server:
make run-client
-
Build the extension:
make build-extension
remote-docker/
├── assets/ # Extension icons and screenshots
├── backend/ # Go backend code
├── docs/ # Documentation
├── scripts/ # Build and deployment scripts
├── ui/ # React frontend code
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ └── main.tsx # Entry point
│ └── build/ # Build output
├── Dockerfile # Extension container definition
├── Makefile # Build targets
└── metadata.json # Extension metadata
The UI is built with React and Vite. To start development:
make run-clientThis starts a development server at http://localhost:3000 with hot module replacement.
The backend is written in Go. To build the backend:
cd backend
go build -o ../server main.goThe MCP (Model Context Protocol) integration adds several new components:
-
backend/mcp/- MCP server management logictypes.go- Type definitions for MCP entitiesmanager.go- MCP server lifecycle managementpredefined.go- Pre-configured server templatesssh_adapter.go- SSH integration for remote execution
-
ui/src/components/MCP/- Frontend MCP componentsMCPServers.tsx- Main MCP management interfacetypes.ts- TypeScript type definitions
When developing MCP features:
- Update server templates in
predefined.gofor new MCP server types - Modify the manager for new lifecycle operations
- Update the UI components for new functionality
-
Build the extension:
make build-extension
-
Install the extension:
make install-extension
-
Debug the UI:
make debug-ui
build.sh- Build the Docker extensiondeploy.sh- Deploy to Docker Hubdev-setup.sh- Set up development environmentclean.sh- Clean build artifacts
Run make help to see all available targets:
build-extension- Build the extensioninstall-extension- Install the extension locallyupdate-extension- Update an installed extensionrun-client- Start UI development serverpush-extension- Push to Docker Hubvalidate-extension- Validate extension metadata