No description
Find a file
Claude 369f459203
Add AWS Client VPN support for secure private access to code-server
This commit adds comprehensive VPN infrastructure to enable secure,
certificate-based access to code-server deployments. VPN provides an
additional security layer by requiring network-level authentication
before accessing internal resources.

Features:
- AWS Client VPN endpoint with certificate-based authentication
- Split tunnel support (route only VPC traffic through VPN)
- CloudWatch logging for all VPN connections
- Multi-platform client support (Windows, macOS, Linux, iOS, Android)
- Automatic certificate generation and ACM upload
- Client configuration export scripts
- Integration with both EC2 and EKS deployments

New Terraform Module:
- modules/vpn: Complete AWS Client VPN infrastructure
  - VPN endpoint with configurable authentication
  - Network associations for HA across multiple AZs
  - Authorization rules for VPC access
  - Security groups for VPN traffic
  - CloudWatch log groups and streams
  - Support for SAML/federated authentication

Scripts:
- scripts/generate-vpn-certificates.sh: Generate and upload VPN certificates
  - Creates CA, server, and client certificates
  - Automatically uploads to AWS Certificate Manager
  - Outputs certificate ARNs for Terraform configuration
- scripts/export-vpn-config.sh: Export client VPN configuration
  - Downloads VPN config from AWS
  - Embeds client certificates
  - Creates platform-ready .ovpn files

Deployment Updates:
- EC2 and EKS deployments now support optional VPN
- New variables for VPN configuration
- Updated outputs to include VPN endpoint information
- Example configurations with VPN settings

Documentation:
- VPN-SETUP-GUIDE.md: Comprehensive VPN setup guide
  - Certificate generation process
  - Terraform configuration
  - Client setup for all major platforms
  - Testing and troubleshooting
  - Advanced configuration options
  - Cost considerations and optimization

Configuration Options:
- Certificate-based or SAML/SSO authentication
- Split tunnel (recommended) or full tunnel
- UDP (faster) or TCP (more reliable) transport
- Configurable session timeout (8-24 hours)
- Custom DNS servers
- Client login banner
- Multiple authorization rules

Security Features:
- X.509 certificate authentication
- Private subnet associations
- Network-level access control
- Session logging and audit trail
- Support for multi-factor (VPN cert + OAuth2/SAML)

Cost: ~$216/month base + ~$0.40/user/day for active connections
2025-11-15 17:40:23 +00:00
.github Use secure context in bug report template 2023-10-11 17:19:19 -08:00
.tours docs: rename master to main in all github doc links (#5190) 2022-05-11 14:39:57 -07:00
ci Release v4.18.0 2023-10-20 12:03:13 -08:00
docs Remove mention of legacy extension API 2023-10-04 15:44:54 -08:00
lib Update Code to 1.83.1 (#6488) 2023-10-19 00:50:21 +00:00
patches Update Code to 1.83.1 (#6488) 2023-10-19 00:50:21 +00:00
src Modify manifest for window control overlay support (#6468) 2023-10-02 18:03:37 +00:00
terraform Add AWS Client VPN support for secure private access to code-server 2025-11-15 17:40:23 +00:00
test Update dependencies and force-update qs (#6440) 2023-09-21 16:13:34 -08:00
typings chore(deps): update dependency @types/node to v16 (#5170) 2022-08-10 16:15:52 -05:00
.dockerignore Simplify packaging and improve scripts 2020-05-08 01:04:24 -04:00
.editorconfig Revert .editorconfig (#4640) 2021-12-16 15:30:07 -06:00
.eslintrc.yaml chore: replace eslint-import-resolver-alias with eslint-import-resolver-typescript (#4546) 2021-12-07 14:39:01 -07:00
.gitattributes browser: Add favicon.afdesign 2021-01-08 23:03:34 -05:00
.gitignore chore(Code): upgrade to 1.65 (#5047) 2022-03-30 18:33:58 -05:00
.gitmodules chore: move to patches (#4997) 2022-03-22 15:07:14 -05:00
.node-version Fix cross-compilation (#6441) 2023-09-21 23:21:01 -08:00
.nvmrc chore: Update dependency requirements. Fix node version manager. 2021-07-21 14:32:16 -04:00
.prettierignore release: 4.9.0 (#5772) 2022-12-06 13:28:27 -07:00
.prettierrc.yaml chore(prettier): ignore lib/vscode (#5347) 2022-07-15 21:13:13 +00:00
CHANGELOG.md Release v4.18.0 2023-10-20 12:03:13 -08:00
flake.lock Update to 1.78.2 (#6201) 2023-05-15 15:44:03 -08:00
flake.nix Update dependencies and force-update qs (#6440) 2023-09-21 16:13:34 -08:00
install.sh Update to VS Code 1.82.2 (#6436) 2023-09-20 15:33:28 -08:00
LICENSE chore: remove file ext. from LICENSE (#5070) 2022-04-07 10:36:33 -07:00
package.json Update dependencies and force-update qs (#6440) 2023-09-21 16:13:34 -08:00
renovate.json chore: use matchUpdateTypes (#5942) 2023-01-04 23:08:39 +00:00
ThirdPartyNotices.txt Add ThirdPartyNotices.txt 2020-07-16 19:01:09 -06:00
tsconfig.json feat: add i18n in login page (#5947) 2023-01-13 17:42:49 +00:00
yarn.lock chore: bump @types/node from 18.17.18 to 18.18.1 (#6467) 2023-10-02 13:25:52 -08:00

code-server

"GitHub Discussions" "Join us on Slack" Twitter Follow codecov See latest

Run VS Code on any machine anywhere and access it in the browser.

Screenshot Screenshot

Highlights

  • Code on any device with a consistent development environment
  • Use cloud servers to speed up tests, compilations, downloads, and more
  • Preserve battery life when you're on the go; all intensive tasks run on your server

Requirements

See requirements for minimum specs, as well as instructions on how to set up a Google VM on which you can install code-server.

TL;DR: Linux machine with WebSockets enabled, 1 GB RAM, and 2 vCPUs

Getting started

There are four ways to get started:

  1. Using the install script, which automates most of the process. The script uses the system package manager if possible.
  2. Manually installing code-server
  3. Deploy code-server to your team with coder/coder
  4. Using our one-click buttons and guides to deploy code-server to a cloud provider

If you use the install script, you can preview what occurs during the install process:

curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run

To install, run:

curl -fsSL https://code-server.dev/install.sh | sh

When done, the install script prints out instructions for running and starting code-server.

Note

To manage code-server for a team on your infrastructure, see: coder/coder

We also have an in-depth setup and configuration guide.

Questions?

See answers to frequently asked questions.

Want to help?

See Contributing for details.

Hiring

Interested in working at Coder? Check out our open positions!

For Organizations

Want remote development for your organization or enterprise? Visit our website to learn more about Coder.