coder/code-server
Code Server
This project provides a remote development platform that enables users to access a full-featured integrated development environment through a standard web browser. By decoupling the user interface from the server-side filesystem, it allows for persistent coding workspaces to be hosted on remote servers, virtual machines, or cloud-native infrastructure, ensuring a consistent development experience from any device.
The platform distinguishes itself through a secure gateway architecture that manages traffic, authentication, and encryption at the edge. It utilizes persistent WebSocket connections to synchronize editor state and terminal input-output between the remote server and the browser. Furthermore, it includes built-in service proxying capabilities that allow developers to expose locally running web applications via secure subdomains or subpaths, complete with integrated identity verification and traffic management.
To support diverse infrastructure requirements, the system offers flexible deployment options including containerized environments and automated provisioning workflows. It maintains state continuity through filesystem-mounted persistence, ensuring that configurations and project data remain intact across restarts. The platform also enforces network security by managing TLS certificates for HTTPS traffic and providing integration layers for external authentication providers.
Installation is supported across various host architectures through shell scripts, package managers, or standalone archives, with built-in utilities for managing the application lifecycle.
Features
- Cloud-Native IDE Hosts - A container-ready application architecture that facilitates the deployment of full-featured development environments within virtualized or cloud-based infrastructure.
- Remote Development Workspaces - The platform enables remote environment hosting by running the editor on a remote server to provide persistent, browser-accessible development workspaces from any device.
- Browser-Based Development Environments - A remote-hosted integrated development environment accessible through standard web browsers, providing a consistent coding experience across any device or location.
- Browser-Based IDE Runtimes - Executes a full-featured code editor within a web sandbox by decoupling the user interface from the underlying server-side filesystem.
- Browser-Based IDEs - Accessing a full-featured code editor from any device by running the development environment on a remote server.
- Containerized Development Environments - Encapsulates the development environment within a portable runtime to ensure consistent dependency management and filesystem persistence across diverse host infrastructures.
- Remote Development Platforms - A server-side infrastructure layer that hosts persistent coding workspaces, enabling secure access to terminal, file system, and development tools.
- Secure Cloud Development Environments - Exposing development workspaces over the internet with integrated authentication, encryption, and controlled access to internal services.
- Secure Development Gateways - A proxy-based access layer that enforces authentication, encryption, and traffic management for remote development services exposed over network connections.
- Local Web Service Proxies - The platform provides local web service proxying through subdomains or subpaths to access development applications securely while utilizing built-in authentication mechanisms for protected endpoints.
- WebSocket Synchronization Protocols - Streams bidirectional editor state and terminal I/O over persistent connections to synchronize remote server environments with local browser clients.
- Remote Server Provisioning - The platform supports remote server provisioning by deploying virtual machines with sufficient CPU, memory, and WebSocket support to host remote development environments.
- Secure Environment Exposure Tools - The platform facilitates secure development environment exposure by configuring authentication, encryption, and port forwarding via SSH to prevent unauthorized access to internal services.
- Subdomain Routing Gateways - Maps internal development ports to external-facing URLs by dynamically proxying traffic through a centralized gateway to expose local web services.
- Filesystem Persistence Volumes - Maps host-level directories into the execution environment to maintain state and configuration continuity across container restarts or server re-provisioning.
- Containerized Deployments - The platform supports containerized deployment by mounting local directories within Docker containers to ensure configuration persistence and consistent execution across different host systems.
- HTTPS Traffic Security - The platform secures traffic with HTTPS by generating or providing custom TLS certificates to encrypt data transmissions and automatically redirect insecure HTTP requests.
- Development Service Proxies - Exposing locally running web applications through secure subdomains or subpaths to facilitate testing and collaboration on remote servers.
- External Authentication Integrations - The platform supports external authentication providers by integrating reverse proxies to manage user access and secure identity verification across the application infrastructure.
- Cloud Provisioning Templates - The platform enables cloud infrastructure deployment using pre-configured provider templates and automated installation scripts to ensure rapid environment setup and consistent provisioning.
- Edge Authentication Strategies - Intercepts incoming traffic at the edge to enforce identity verification and secure access before routing requests to the internal development environment.
- Infrastructure-Agnostic Workflows - Standardizing coding environments across diverse cloud, container, and virtual machine platforms to ensure consistent developer experiences.