-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Description
Create a VSCode user container image for Holistix Forge. This will allow users to run VSCode Server as a user container service, accessible through the gateway's two-stage Nginx setup.
Context
Holistix Forge supports user containers for various services (JupyterLab, pgAdmin, n8n, etc.). VSCode Server would be a valuable addition, allowing users to:
- Edit code directly in the browser
- Access files in their organization/project
- Use VSCode extensions
- Collaborate on code
Current State
User Containers:
- Location:
packages/modules/user-containers/ - Supported services: JupyterLab, pgAdmin, n8n
- Integration: Services accessible via gateway Nginx
No VSCode Image:
- No VSCode Server container image exists
- Users cannot run VSCode as a user container
Requirements
1. VSCode Server Image
Create Docker image with VSCode Server:
- Base image: Use official VSCode Server or code-server
- Configuration: Configure for Holistix Forge integration
- OAuth: Support OAuth2 authentication via gateway
- File access: Access to organization/project files
- Extensions: Support VSCode extensions
2. Integration
Integrate with user containers module:
- Container type: Add VSCode as container type
- Service registration: Register VSCode service with gateway
- URL routing: Route VSCode requests through Nginx
- OAuth flow: Integrate with gateway OAuth
3. Configuration
Make VSCode configurable:
- Port: Configurable port (default: 8080)
- Workspace: Configurable workspace directory
- Extensions: Pre-install common extensions (optional)
- Settings: Default VSCode settings
4. Documentation
Document VSCode container:
- Usage: How to create/use VSCode container
- Configuration: Configuration options
- Troubleshooting: Common issues and solutions
Implementation Plan
Phase 1: Image Creation
- Create Dockerfile for VSCode Server
- Base on code-server or official VSCode Server
- Configure OAuth integration
- Test image build
Phase 2: Integration
- Add VSCode to user containers module
- Register VSCode service type
- Configure Nginx routing
- Test OAuth flow
Phase 3: Testing
- Test VSCode container creation
- Test VSCode access via gateway
- Test OAuth authentication
- Test file access
- Test extensions
Phase 4: Documentation
- Document VSCode container usage
- Document configuration options
- Add troubleshooting guide
- Update user containers documentation
Related Files
docker-images/user-containers/- User container imagespackages/modules/user-containers/- User containers modulepackages/app-gateway/src/routes/- Gateway routes
Acceptance Criteria
- VSCode Server Docker image created
- Image builds successfully
- VSCode accessible via gateway
- OAuth authentication working
- File access working
- Extensions support working
- Integration with user containers module
- Documentation created
- Tested and working
Questions to Resolve
- Use code-server or official VSCode Server?
- What extensions should be pre-installed?
- How should workspace be configured? (Organization root? Project root?)
- Should we support multiple VSCode instances per user?
- What port should VSCode use?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request