All Guides

Self-Hosted Cloud IDE: code-server, Coder & DevPod on Your Own VPS (2026)

VS Code in the browser on your own VPS: code-server, Coder, OpenVSCode Server and DevPod at a glance, with setup guide and security notes.

Dirk Hesse
May 26, 2026
10 min read

GitHub Codespaces bills by usage: compute time per hour, storage by space used; personal accounts get a monthly allowance (GitHub Docs, as of Nov 8, 2026).

A VPS with code-server, by contrast, bills by server runtime, not by IDE usage; current prices at /en/use-case/cloud-ide. You have root access, and your code sits on your server. With code-server, extensions come from the Open VSX gallery, not the Microsoft Marketplace (code-server FAQ, as of Nov 8, 2026).

This guide presents four self-hosted cloud IDEs, shows the setup and explains when self-hosting makes sense.


Why run your own cloud IDE?

Billing

Codespaces is convenient but bills by usage (see above). What a VPS costs for your team is shown by the calculator at /en/use-case/cloud-ide, with price date.

Data location and privacy

With Codespaces, the region is set by default based on your location and can be chosen manually (GitHub Docs, as of Nov 8, 2026).

With a self-hosted cloud IDE on a VPS (Hetzner, IONOS, Netcup): data on your server, location of your choice; if you process other people's data, you remain responsible for GDPR compliance, usually with a data processing agreement with the host.

No vendor lock-in

You are not tied to one provider. Moving to another VPS provider means: copy the Compose files, migrate the data, switch DNS.


Four self-hosted cloud IDEs at a glance

code-server and OpenVSCode Server bring VS Code into the browser; Coder and DevPod provide development environments that various editors connect to. Details per the project pages, as of Nov 8, 2026 (sources in the sections below).

ToolTypeMulti-userMinimum per the projectNotes
code-serverVS Code in the browserNo (one password)1 GB RAM, 2 CPU coresone container, password login
CoderWorkspace platformYes (templates + SSO)2 CPU cores, 4 GB (Docker install)templates, SSO, admin dashboard
OpenVSCode ServerVS Code in the browserNonot stated by the projectstarts without Docker, project by Gitpod
DevPodClient toolnot applicable (client tool)per workspace, by projectdevcontainer.json, no server daemon

code-server

code-server by Coder runs e.g. as a Docker container with password login, VS Code in the browser; as a minimum requirement the project names 1 GB RAM and 2 CPU cores (code-server docs, as of Nov 8, 2026). Suits individuals who access their projects from different devices.

code-server knows a single password; for several people the project recommends a separate VM per person (code-server FAQ, as of Nov 8, 2026).

Coder

Coder is a platform for team workspaces: every developer gets a workspace from a Terraform template. Coder supports password login, GitHub OAuth and OpenID Connect, e.g. with Okta (Coder docs, as of Nov 8, 2026), and has a REST API (Coder docs, as of Nov 8, 2026). Some features require a paid license (Coder docs, as of Nov 8, 2026).

For production, Coder recommends an external PostgreSQL from version 13; the built-in database is meant for proofs of concept. The Docker installation names 2 CPU cores and 4 GB of memory (Coder docs, as of Nov 8, 2026).

OpenVSCode Server

OpenVSCode Server by Gitpod starts from the release archive with ./bin/openvscode-server, without Docker. Since v1.64 the web UI starts without authentication; it can be secured with --connection-token, and the Docker image runs with --without-connection-token (README, as of Nov 8, 2026). Put a reverse proxy with authentication or a VPN such as Tailscale in front.

Fits if you secure access via the network or a VPN.

DevPod

DevPod, an open-source project under github.com/loft-sh, is a pure client tool: it uses devcontainer.json files and starts workspaces locally, on Kubernetes, on remote machines or cloud VMs; besides VS Code it supports JetBrains, other editors via SSH (README, as of Nov 8, 2026).

Advantage: no running server daemon. Resource needs depend on the dev container.


Which VPS is enough? Hardware requirements

The IDE itself is lean – the load comes from language servers (TypeScript, Python, Go), linters, compilers and Docker containers. Guidance from RackDiff, not a vendor figure:

ScenarioRAMCPUStorage
Solo dev (code-server)4 GB2 vCPU40 GB NVMe
2–3 devs (Coder)8 GB2–4 vCPU80 GB NVMe
Small team 5+ (Coder)16 GB4–8 vCPU160 GB NVMe
DevPod (per workspace)by dev containerby dev containerby project

Matching offers with price date: cloud IDE calculator and VPS comparison.

Note: Language servers read many small files; NVMe storage can help with that.

The interactive cloud IDE calculator estimates RAM and CPU by team size and tool.


Setup: code-server with Docker Compose

The simplest setup: code-server behind Caddy as a reverse proxy with automatic HTTPS.

Requirements

  • VPS with Ubuntu 22.04/24.04 and Docker installed
  • Domain or subdomain (e.g. code.example.com) with DNS pointing to the VPS IP

Docker Compose

On the VPS, create the file /opt/code-server/docker-compose.yml:

services:
  code-server:
    image: codercom/code-server:<version>
    container_name: code-server
    restart: unless-stopped
    environment:
      - HASHED_PASSWORD=<your-argon2-hash, every $ as $$>
    volumes:
      - code-data:/home/coder
    networks:
      - web

  caddy:
    image: caddy:2-alpine
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy-data:/data
    networks:
      - web

volumes:
  code-data:
  caddy-data:

networks:
  web:

code-server reads PASSWORD or HASHED_PASSWORD (code-server source, as of Nov 8, 2026). If you put the hash directly into the Compose file, every $ becomes $$ (code-server FAQ, as of Nov 8, 2026). The code-server port is not published; only Caddy is reachable from outside; replace <version> with a fixed version.

Create the file Caddyfile in the same directory:

code.example.com {
    reverse_proxy code-server:8080
}

Start:

cd /opt/code-server
docker compose up -d

VS Code is then reachable at https://code.example.com. Caddy fetches a certificate automatically (Let's Encrypt, ZeroSSL as fallback) if the DNS record points to the server and ports 80 and 443 are reachable (Caddy docs, as of Nov 8, 2026).

Careful with the Docker socket: Whoever controls the Docker daemon effectively has root on the host (Docker docs, as of Nov 8, 2026). Mounting the socket into code-server only suits single-user setups you use alone; the Docker CLI is not in the image (code-server FAQ, as of Nov 8, 2026).


Setup: Coder for teams

For production, Coder recommends an external PostgreSQL. Use the project's official Compose file as a template (coder/coder compose.yaml, as of Nov 8, 2026). Adjust three points:

  1. HTTP address: The file sets CODER_HTTP_ADDRESS=0.0.0.0:7080; without it, Coder only listens on 127.0.0.1:3000 (Coder docs, as of Nov 8, 2026).
  2. No public port: Publish the port only on 127.0.0.1 ("127.0.0.1:7080:7080") or not at all, and attach Caddy to the same network. Ports published by Docker bypass ufw (Docker docs, as of Nov 8, 2026).
  3. Docker group and password: For the Docker socket, add group_add with the GID of the docker group (Coder docs, as of Nov 8, 2026), and set a long password of your own for the database.

CODER_ACCESS_URL must point to the public URL that users and workspaces reach from outside (Coder docs, as of Nov 8, 2026).

Set up the reverse proxy with HTTPS first, then create the admin account at https://coder.example.com right away; the account created during setup is the owner account (Coder docs, as of Nov 8, 2026).

Workspace templates

Coder uses Terraform templates to define workspaces. You upload a template with templates push (Coder CLI reference, as of Nov 8, 2026):

coder templates push docker \
  --directory ./templates/docker

For Git, Coder uses external auth tokens or an automatically generated SSH key pair per user (Coder docs, as of Nov 8, 2026).


Billing: self-hosted vs. Codespaces

Codespaces bills by usage (see above); a VPS bills by server runtime. Offers with price date are at /en/use-case/cloud-ide. In return, you handle setup, updates and security yourself.


Security: HTTPS, auth and network

A cloud IDE on the internet without protection is an open invitation. The code-server docs warn never to expose the IDE directly to the internet without authentication and encryption (code-server docs, as of Nov 8, 2026). Minimum requirements:

  • HTTPS: required. Caddy fetches the certificate automatically (see above).
  • Authentication: code-server has a rate-limited password login (code-server docs, as of Nov 8, 2026). For Coder: set up GitHub OAuth or OIDC.
  • Firewall: Do not publish internal services with ports:, or bind them to 127.0.0.1 only; Docker ports bypass ufw (Docker docs, as of Nov 8, 2026).
  • SSH alternative: Instead of browser access you can use VS Code Remote-SSH and treat the VPS as a back-end server. Then you need no reverse proxy.
  • Zero trust: Tailscale or WireGuard as a VPN layer in front of the IDE – then the IDE itself is not publicly reachable.

Tips from practice

Language servers need RAM: Language servers can take a lot of RAM on large projects; check usage in operation (e.g. with htop) and plan reserves.

Git credentials: git credential-store stores passwords unencrypted on disk (Git docs, as of Nov 8, 2026). Use an SSH agent or git credential-cache. With Coder, external auth or the per-user SSH key apply.

Automate dotfiles: With Coder, use coder dotfiles <repo> or a dotfiles module in the template (Coder docs, as of Nov 8, 2026).

Monitoring: Install htop or btop on the VPS to watch RAM and CPU usage.


Conclusion

code-server suits individuals, Coder suits teams. Both run on your own VPS, billed by runtime, not by IDE usage.

Whether it pays off depends on usage and team size; compare your current service's billing with the VPS prices at /en/use-case/cloud-ide. Plus control over data location and configuration.

Cloud IDE Server Calculator

How much RAM and CPU do you need? Enter team size and tool – our calculator shows suitable VPS offers with price date.

To the cloud IDE calculator

Matching VPS Calculator

Cloud IDE auf eigenem Server 2026

VS Code im Browser – ohne GitHub Codespaces, ohne Abokosten.

Go to Calculator

Related Articles