New developer joins. Three days setting up the local environment. Docker, language runtimes, database, env vars, VPN. Coder provisions a ready-to-code workspace in minutes with everything pre-configured.
How Coder Works
Developer → VS Code / Browser → Coder Workspace (K8s pod / VM)
├── Code (git clone)
├── Runtime (Node 20, Go 1.22)
├── Database (local Postgres)
├── Tools (kubectl, terraform)
└── Env vars (from Vault)Workspaces run on your infrastructure. Code stays in your network. Nothing leaves.
Installation
helm install coder coder-v2/coder \
--namespace coder --create-namespace \
--set coder.accessURL=https://coder.myorg.comMaster this topic with hands-on labs
Go beyond reading — build real projects in sandboxed environments with expert video guidance.
Browse Courses →Templates
Templates define workspace environments using Terraform:
# templates/backend/main.tf
terraform {
required_providers {
coder = { source = "coder/coder" }
kubernetes = { source = "hashicorp/kubernetes" }
}
}
data "coder_workspace" "me" {}
resource "kubernetes_pod" "workspace" {
metadata {
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
namespace = "coder-workspaces"
}
spec {
container {
name = "dev"
image = "myorg/dev-image:latest"
command = ["sh", "-c", "sleep infinity"]
resources {
requests = {
cpu = "2"
memory = "4Gi"
}
limits = {
cpu = "4"
memory = "8Gi"
}
}
volume_mount {
name = "home"
mount_path = "/home/coder"
}
}
volume {
name = "home"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.home.metadata[0].name
}
}
}
}
resource "kubernetes_persistent_volume_claim" "home" {
metadata {
name = "coder-${data.coder_workspace.me.owner}-home"
namespace = "coder-workspaces"
}
spec {
access_modes = ["ReadWriteOnce"]
resources {
requests = { storage = "20Gi" }
}
}
}
resource "coder_agent" "main" {
os = "linux"
arch = "amd64"
dir = "/home/coder"
startup_script = <<-EOF
git clone https://github.com/myorg/order-api /home/coder/order-api || true
cd /home/coder/order-api && npm install
EOF
}Dev Image
# dev-image/Dockerfile
FROM ubuntu:22.04
# Languages
RUN apt-get update && apt-get install -y \
nodejs npm python3 python3-pip golang-go
# Tools
RUN apt-get install -y \
git curl wget vim \
kubectl helm terraform \
docker.io postgresql-client redis-tools
# VS Code Server (for browser IDE)
RUN curl -fsSL https://code-server.dev/install.sh | sh
# Non-root user
RUN useradd -m -s /bin/bash coder
USER coder
WORKDIR /home/coderConnect with VS Code
# Install Coder CLI
curl -fsSL https://coder.com/install.sh | sh
# Login
coder login https://coder.myorg.com
# Create workspace
coder create my-workspace --template backend
# Open in VS Code (SSH tunnel)
coder open vscode my-workspaceVS Code connects over SSH to the remote workspace. Extensions, terminal, debugger — everything runs remotely with local-feeling latency.
Get weekly IT automation tips
Docker, Ansible, Terraform, MLOps — curated insights delivered to your inbox. No spam.
Subscribe Free →Auto-Stop
resource "coder_workspace" "me" {
# Stop workspace after 2 hours of inactivity
ttl = 7200
}Workspaces stop when developers are not using them. Start again in seconds — PVC preserves all state.
Parameters
Let developers customize their workspace:
data "coder_parameter" "cpu" {
name = "CPU cores"
type = "number"
default = 2
validation {
min = 1
max = 8
}
}
data "coder_parameter" "dotfiles" {
name = "Dotfiles repo"
type = "string"
default = ""
}When to Use Coder
Good fit: - Teams with complex dev environment setup (>30 min onboarding) - Organizations needing consistent environments across developers - Security-sensitive work (code never on laptops) - Teams with underpowered developer laptops
Not needed:
- Small teams where docker compose up is sufficient
- Projects with simple setup (clone + npm install)
- Developers who prefer full local control
---
Ready to go deeper? Build your developer platform with hands-on courses at CopyPasteLearn.
Ready to learn by doing?
Stop reading tutorials — start building. Expert video courses with hands-on labs in real sandboxed environments.
Related Articles
Platform Engineering vs DevOps
Platform engineering and DevOps solve different problems. Learn how platform teams build internal developer platforms, where DevOps still applies.
Golden Paths in Platform Engineering
Golden paths give developers a paved road through infrastructure complexity. Learn how to design golden paths for your internal developer platform.
Internal Developer Platform Guide
Build an internal developer platform that developers actually use. Learn the five layers of an IDP, common mistakes, build vs buy decisions.
Confidential Computing Explained
Understand confidential computing with TEEs, secure enclaves, and practical deployment patterns for protecting sensitive workloads in cloud environments.
Container Runtime Security Guide
Secure container runtimes in production. Non-root users, read-only filesystems, seccomp profiles, AppArmor, and automated vulnerability scanning.
Container Security Best Practices
Secure containers in production. Image scanning, rootless, read-only filesystems, secrets management, and runtime security.
Explore topics
Browse more articles on the topics covered here.