* feat: Add app support This adds apps as a property to a workspace agent. The resource is added to the Terraform provider here: https://github.com/coder/terraform-provider-coder/pull/17 Apps will be opened in the dashboard or via the CLI with `coder open <name>`. If `command` is specified, a terminal will appear locally and in the web. If `target` is specified, the browser will open to an exposed instance of that target. * Compare fields in apps test * Update Terraform provider to use relative path * Add some basic structure for routing * chore: Remove interface from coderd and lift API surface Abstracting coderd into an interface added misdirection because the interface was never intended to be fulfilled outside of a single implementation. This lifts the abstraction, and attaches all handlers to a root struct named `*coderd.API`. * Add basic proxy logic * Add proxying based on path * Add app proxying for wildcards * Add wsconncache * fix: Race when writing to a closed pipe This is such an intermittent race it's difficult to track, but regardless this is an improvement to the code. * fix: Race when writing to a closed pipe This is such an intermittent race it's difficult to track, but regardless this is an improvement to the code. * fix: Race when writing to a closed pipe This is such an intermittent race it's difficult to track, but regardless this is an improvement to the code. * fix: Race when writing to a closed pipe This is such an intermittent race it's difficult to track, but regardless this is an improvement to the code. * Add workspace route proxying endpoint - Makes the workspace conn cache concurrency-safe - Reduces unnecessary open checks in `peer.Channel` - Fixes the use of a temporary context when dialing a workspace agent * Add embed errors * chore: Refactor site to improve testing It was difficult to develop this package due to the embed build tag being mandatory on the tests. The logic to test doesn't require any embedded files. * Add test for error handler * Remove unused access url * Add RBAC tests * Fix dial agent syntax * Fix linting errors * Fix gen * Fix icon required * Adjust migration number * Fix proxy error status code * Fix empty db lookup
Coder
Run Coder now
curl -L https://coder.com/install.sh | sh
What Coder does
Coder creates remote development machines so you can develop your code from anywhere. #coder
Note
: Coder is in an alpha state, but any serious bugs are P1 for us so please report them.
Code more
- Build and test faster
- Leveraging cloud CPUs, RAM, network speeds, etc.
- Access your environment from any place on any client (even an iPad)
- Onboard instantly then stay up to date continuously
Manage less
- Ensure your entire team is using the same tools and resources
- Rollout critical updates to your developers with one command
- Automatically shut down expensive cloud resources
- Keep your source code and data behind your firewall
How it works
Coder workspaces are represented with Terraform. But, no Terraform knowledge is required to get started. We have a database of pre-made templates built into the product.
Coder workspaces don't stop at compute. You can add storage buckets, secrets, sidecars and whatever else Terraform lets you dream up.
Learn more about managing infrastructure.
IDE Support
You can use any Web IDE (code-server, projector, Jupyter, etc.), JetBrains Gateway, VS Code Remote or even a file sync such as mutagen.
Installing Coder
There are a few ways to install Coder: install script (macOS, Linux), docker-compose, or manually via the latest release (macOS, Windows, and Linux).
If you use the install script, you can preview what occurs during the install process:
curl -fsSL https://coder.com/install.sh | sh -s -- --dry-run
To install, run:
curl -fsSL https://coder.com/install.sh | sh
Once installed, you can run a temporary deployment in dev mode (all data is in-memory and destroyed on exit):
coder server --dev
Use coder --help to get a complete list of flags and environment variables.
Creating your first template and workspace
In a new terminal window, run the following to copy a sample template:
coder templates init
Follow the CLI instructions to modify and create the template specific for your usage (e.g., a template to Develop in Linux on Google Cloud).
Create a workspace using your template:
coder create --template="yourTemplate" <workspaceName>
Connect to your workspace via SSH:
coder ssh <workspaceName>
Modifying templates
You can edit the Terraform template using a sample template:
coder templates init
cd gcp-linux/
vim main.tf
coder templates update gcp-linux
Documentation
Community
Join the community on Discord and Twitter #coder!
Suggest improvements and report problems
Comparison
Please file an issue if any information is out of date. Also refer to: What Coder is not.
| Tool | Type | Delivery Model | Cost | Environments |
|---|---|---|---|---|
| Coder | Platform | OSS + Self-Managed | Pay your cloud | All Terraform resources, all clouds, multi-architecture: Linux, Mac, Windows, containers, VMs, amd64, arm64 |
| code-server | Web IDE | OSS + Self-Managed | Pay your cloud | Linux, Mac, Windows, containers, VMs, amd64, arm64 |
| Coder (Classic) | Platform | Self-Managed | Pay your cloud + license fees | Kubernetes Linux Containers |
| GitHub Codespaces | Platform | SaaS | 2x Azure Compute | Linux containers |
As of 5/27/22
Contributing
Read the contributing docs.
Find our list of contributors here.

