Coder is deployed on Kubernetes and includes the following components:

  • Manager: the central authority; provides authentication and supports the Dashboard and an API which you can use to create and interact with Workspaces
  • Envproxy: the WebSocket proxy to a workspace's editor and terminal
  • PostgreSQL: data storage for session tokens, workspace information, etc.

Each component runs in its own Kubernetes pod.

Architecture

Kubernetes NGINX ingress

Coder deploys an NGINX Kubernetes ingress controller to allocate and route requests to the appropriate service. You can disable this controller in the helm chart if you use your ingress or gateway.

Ports

The following is a table of the listening ports associated with Coder resources in the cluster. The environment ports are:

  • code-server: 13337
  • envagent (used for shell sessions): 26337
  • envagent (SSH proxy): 12212

Note: This table represents Coder's current behavior. It is subject to change in future releases.

PodSourceSource portDestinationDestination port
cemanagerloadbalancer8080envproxyN/A
envproxy8080dashboardN/A
dashboard8080resourceN/A
N/AN/Aloadbalancer80, 443
envproxyloadbalancer8080cemanager8080
N/AN/AdashboardN/A
N/AN/Aresource13337, 12212, 26337
dashboardloadbalancer3000cemanager8080
N/AN/AenvproxyN/A
N/AN/AresourceN/A
resourceenvproxy13337loadbalancer80, 443
envproxy26337N/AN/A
envproxy12212N/AN/A

Deployment options

There are two ways to deploy Coder:

  1. The default installation, which is a non-air-gapped option, using the Kubernetes provider of your choice; you should be able to access Coder resources from this workspace freely
  2. A secured, air-gapped option; you can choose to limit access and deploy Coder by first pulling in all of the required resources, or you can choose to whitelist the URLs/IP addresses needed to access Coder resources

Coder cannot be deployed in an air-gapped workspace when using the free license tier. If you need to deploy an air-gapped Coder instance, please contact our sales department to see about purchasing licenses.

See an opportunity to improve our docs? Make an edit.