Sign inSign up

readystack/coder

By readystack

•Updated 1 day ago

Coder: self-hosted development workspaces from templates. Signed; SBOM and SLSA v1 provenance.

Image
Developer tools
0

8.8K

readystack/coder repository overview

⁠Coder

Signed: cosign SBOM: SPDX attached Provenance: SLSA v1

readystack/coder:v2.39.0-CE-ubuntu24.04-r1

Source, recipe and records

A cosign-signed build of github.com/coder/coder v2.39.0 (AGPL-3.0 core; the proprietary /enterprise/ tree is STRIPPED — this is the Community/AGPL edition), built clean-room from official upstream source, with the source changes listed below by ReadyStack⁠.

⁠Who uses it and why

Who: Platform teams who give developers standard, ready-to-use development environments on infrastructure they control.

Why: Coder creates development workspaces from templates that administrators maintain. Developers connect from their own editor, and workspaces left idle shut down automatically.

Use case: New developers on a large codebase spend days setting up laptops. With Coder, the platform team writes one workspace template; a new developer creates a workspace from it and starts work right away, and workspaces left idle overnight shut down on their own.

About the upstream project, written from its own description: https://github.com/coder/coder⁠ · https://coder.com/docs⁠

⁠What you get

Signature, user and attestations below were measured on the published digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e on 2026-11-09.

  • Scan scores — we scan every image we publish every day (an SBOM made with syft, vulnerabilities matched with grype, scored with cerodeo-v2, ce.rodeo's current rubric; scans before 2026-11-08 used cerodeo-v1) and record each scan with how its score was derived. This release's first and latest scan: https://readystack.dev/products/coder⁠
  • ReadyStack release check — passed at release on 2026-11-08: no fixable critical or high vulnerability (Docker Scout and OSV), a non-root user, SBOM and provenance attached. This is ReadyStack's own test, not a Docker grade; vulnerabilities published since then are in today's result at https://readystack.dev/queue⁠.
  • Signed — cosign signature by the ReadyStack release key (fingerprint 04daa92344a52dbc) on this release's index digest sha256:b747787e9cba487c66eeb971ce617d2ee758dac055cc322229ef573a46af313e; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/coder:v2.39.0-CE-ubuntu24.04-r1.
  • Attestations — An SPDX SBOM and SLSA v1 build provenance are attached to this digest.
  • Runs as a non-root user (coder).
  • Built from source by ReadyStack.

⁠Which tag should I pull?

This image follows the ReadyStack release-tag convention:

  • The current release is v2.39.0-CE-ubuntu24.04-r1 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement⁠.

  • Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.

  • Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html⁠

  • Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.

# ✓ current release
docker pull readystack/coder:v2.39.0-CE-ubuntu24.04-r1

# ✗ unsupported (do not pull)
docker pull readystack/coder:internal-...

This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/coder:v2.39.0-CE-ubuntu24.04-r1 (the signature is recorded in the public Sigstore transparency log). Support: [email protected]⁠, as set out in the ReadyStack Agreement⁠.

⁠Deployment

Single container, single static Go binary (CGO-free) with the React web UI embedded — a self-hosted cloud development environment / workspace platform. REQUIRES an EXTERNAL PostgreSQL database the customer provisions and points the container at via CODER_PG_CONNECTION_URL — there is NO embedded database (without that env, coder downloads a built-in PostgreSQL into the container, where its data is lost when the container is re-created). coder creates + migrates its own schema on first start. The image bundles no terraform or OpenTofu binary and none needs to be supplied: the server's built-in provisioners download HashiCorp Terraform 1.17.1 at startup, so the container needs internet access; without it the server shuts itself down shortly after starting unless started with -e CODER_PROVISIONER_DAEMONS=0 (it then runs without built-in provisioners and cannot build workspaces) or given a terraform binary of version 1.1.0 or later mounted read-only onto the container's PATH, which it then uses instead of downloading. Always set CODER_ACCESS_URL: without it the server publishes itself on the internet through a public *.try.coder.app tunnel.

Secrets go in an env file that only you can read, not on the command line, and passwords that only set up the first start come out of it after setup. Create coder.env with install -m 600 /dev/null coder.env, then write these lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.

# The PostgreSQL connection, password included; needed at every start. It is a URL: percent-encode every character of the password other than letters, digits and - . _ ~ (% is %25).
CODER_PG_CONNECTION_URL=postgres://coder:YOUR_PW@YOUR_PG_HOST:5432/coder?sslmode=require
docker run -d --name coder -p 3000:3000 -e CODER_HTTP_ADDRESS=0.0.0.0:3000 -e CODER_ACCESS_URL=https://coder.example.com --env-file ./coder.env readystack/coder:v2.39.0-CE-ubuntu24.04-r1

coder.env holds the database connection URL, which Coder reads at every start. Write it as it is, without quotes (docker reads the line literally).

⁠Source changes (AGPL)

This software is licensed under the GNU Affero General Public License, and the releases below are built from a modified copy of its source. Each line names a release, what ReadyStack changed and where the diff is published. From 2026-10-27 a release's diff carries every upstream file its build changes, the dependency manifests and lockfiles included, so its complete corresponding source is the upstream tag with that diff applied; the diff of an earlier release carries the source edits its line names, and the dependency files that release's build changed are in its release archive (vendored/). If you let users interact with the server over a network, AGPL-3.0 section 13 asks you to offer them its source; for a release from 2026-10-27 on, a link to its diff and the upstream tag does that.

⁠The full ReadyStack Hermetic Build Kit

The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/coder⁠. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:23d7f51da1e6f6048932c04d9832af90b45dd223a48427967a4b0966600f6aac on 2026-11-09.

— ReadyStack · readystack.dev

Tag summary

Content type

Image

Digest

sha256:b747787e9…

Size

151.9 MB

Last updated

1 day ago

docker pull readystack/coder:v2.39.0-CE-ubuntu24.04-r1