coder server shutdown procedure (#3246)
* fix: Improve `coder server` shutdown procedure This commit improves the `coder server` shutdown procedure so that all triggers for shutdown do so in a graceful way without skipping any steps. We also improve cancellation and shutdown of services by ensuring resources are cleaned up at the end. Notable changes: - We wrap `cmd.Context()` to allow us to control cancellation better - We attempt graceful shutdown of the http server (`server.Shutdown`) because it's less abrupt (compared to `shutdownConns`) - All exit paths share the same shutdown procedure (except for early exit) - `provisionerd`s are now shutdown concurrently instead of one at a time, the also now get a new context for shutdown because `cmd.Context()` may be cancelled - Resources created by `newProvisionerDaemon` are cleaned up - Lifecycle `Executor` exits its goroutine on context cancellation Fixes #3245
Coder
Coder creates remote development machines so your team can develop from anywhere.
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
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
Getting Started
Note
: Coder is in an alpha state. Report issues here.
The easiest way to install Coder is to use our install script for Linux and macOS.
To install, run:
curl -L https://coder.com/install.sh | sh
You can preview what occurs during the install process:
curl -L https://coder.com/install.sh | sh -s -- --dry-run
You can modify the installation process by including flags. Run the help command for reference:
curl -L https://coder.com/install.sh | sh -s -- --help
See install for additional methods.
Once installed, you can start a production deployment with a single command:
# Automatically sets up an external access URL on *.try.coder.app
coder server --tunnel
# Requires a PostgreSQL instance and external access URL
coder server --postgres-url <url> --access-url <url>
Use coder --help to get a complete list of flags and environment variables. Use our quickstart guide for a full walkthrough.
Documentation
Visit our docs here.
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 |
Last updated: 5/27/22
Community and Support
Join our community on Discord and Twitter!
Suggest improvements and report problems
Contributing
Read the contributing docs.
Find our list of contributors here.
