Back to articles
Technology Insight

Building a Self-Hosted Cloud Development Environment (CDE) for a Team of 10 Using Gitpod on Hetzner VPS

June 4, 2026

Introduction: The Shift to Cloud Development Environments (CDEs)

For decades, software development has relied heavily on local environments. Engineers spend hours, sometimes days, configuring their local machines with specific runtimes, databases, and dependencies. Yet, the infamous phrase "it works on my machine" remains a persistent roadblock to continuous delivery.

As teams scale, local environment drift introduces subtle bugs, security vulnerabilities, and massive onboarding friction. This is where Cloud Development Environments (CDEs) change the paradigm. By moving the development environment to the cloud, you ensure absolute consistency, instant onboarding, and centralized security. In this guide, we will walk through how to build a self-hosted CDE for a 10-person team using Gitpod Self-Hosted deployed on a highly cost-effective Hetzner VPS.

Why Gitpod and Hetzner for a 10-Person Team?

When engineering leaders consider CDEs, enterprise SaaS solutions often come to mind. However, for a tight-knit team of 10 developers, public cloud costs can escalate rapidly. A self-hosted architecture balances budget constraints with absolute infrastructure control.

  • Gitpod's Power: Gitpod automates the provisioning of ready-to-code developer environments directly from your Git repositories. It supports prebuilds, meaning your dependencies are downloaded and compiled before the developer even opens the workspace.
  • Hetzner's Cost Efficiency: Hetzner provides some of the highest performance-to-price ratios in the hosting industry. Compared to major hyperscalers, Hetzner’s dedicated vCPU cloud instances offer predictable pricing without hidden egress bandwidth fees.

Sizing the Infrastructure for 10 Developers

To ensure a smooth user experience, your VPS must comfortably handle concurrent workspace initializations. Assuming a team of 10, it is rare that all 10 will actively compile heavy code simultaneously. However, we must provision for peak concurrent usage (typically 5–7 active environments).

Rule of Thumb: Allocate at least 2 vCPUs and 4GB of RAM per active standard web development workspace (e.g., Node.js, Python, or Go). For Java or heavy Docker-in-Docker workloads, increase this to 4 vCPUs and 8GB of RAM.

For our 10-person team, we recommend Hetzner’s CCX33 or CCX43 Dedicated vCPU instances. The CCX43 instance, boasting 8 Dedicated vCPUs and 32 GB of RAM, provides a robust foundation, ensuring that CPU throttling does not interrupt a developer's flow state.

Step-by-Step Deployment Blueprint

1. Prerequisites and Initial Server Setup

Before installing Gitpod, provision a clean Ubuntu 22.04 LTS server on Hetzner. Ensure you have pointed a wildcard domain (e.g., *.cde.yourcompany.com) to your VPS IP address. Gitpod relies heavily on wildcard subdomains to isolate individual developer workspaces securely.

Secure the server by configuring a basic firewall and installing essential dependencies:

  1. Update the system repositories and packages.
  2. Set up SSH key access and disable password authentication.
  3. Install Docker Engine, as Gitpod leverages containerized infrastructure to isolate environments.

2. Installing K3s (Lightweight Kubernetes)

Modern versions of Gitpod Self-Hosted are built to run on top of Kubernetes. For a single-node VPS setup, K3s by Rancher is the ideal lightweight distribution. It strips out unnecessary cloud provider plugins, saving valuable RAM for your actual development workloads.

Execute the K3s installation script with parameters optimized for Gitpod, ensuring the embedded Traefik ingress controller or an external Nginx ingress is properly aligned with your wildcard SSL certificates.

3. Configuring Gitpod Self-Hosted via Helm

With your K3s cluster operational, Gitpod deployment is managed via Helm, the Kubernetes package manager. Create a custom values.yaml file to define your configuration:

  • Domain Configuration: Input your root domain (e.g., cde.yourcompany.com).
  • Database & Storage: For a 10-person team, Gitpod’s built-in MySQL and MinIO storage components are sufficient. Ensure persistent volume claims (PVCs) are backed by Hetzner's fast NVMe storage blocks.
  • Git Provider Integration: Generate an OAuth application inside GitHub, GitLab, or Bitbucket to allow your developers to authenticate securely using their existing corporate git identities.

Deploy the Helm chart and monitor the pods until all services transition to a Running state.

Optimizing the CDE for Peak Developer Velocity

Simply installing Gitpod is only half the battle. To truly win over your engineering team, the cloud experience must feel faster than their local MacBook Pro. Implement these two optimization strategies:

Leverage Prebuilds Continuously

Configure Gitpod webhooks within your git repositories. Every time a developer pushes code or opens a Pull Request, Gitpod should automatically spin up a headless workspace, run npm install, go mod download, or database migrations, and snapshot the state. When the developer clicks "Open Workspace", the environment loads instantly with all dependencies pre-cached.

Workspace Timeout Management

To prevent your Hetzner VPS from running out of memory, aggressively manage workspace lifecycles. Set an automatic shutdown timeout of 15 or 30 minutes of inactivity. Because Gitpod saves the uncommitted workspace state, developers can resume exactly where they left off without losing progress, while freeing up resources for active team members.

Security and Backup Considerations

Moving source code off local laptops dramatically improves your corporate security posture—code no longer leaves your secure cloud boundary. However, it centralizes risk onto your single Hetzner VPS.

Ensure you enable Hetzner’s automated daily snapshots. Additionally, configure offsite backups for your Gitpod MinIO bucket and database volumes to an S3-compatible cold storage tier. Enforce Multi-Factor Authentication (MFA) on your Git provider, as it acts as the primary gateway to your entire CDE infrastructure.

Conclusion

Building a self-hosted Cloud Development Environment using Gitpod and Hetzner provides enterprise-grade developer velocity at a fraction of the cost of managed alternatives. For a team of 10, this setup eliminates configuration drift, slashes onboarding time from days to seconds, and keeps your intellectual property secure. By investing a few hours into infrastructure automation today, you unlock a highly optimized workflow that empowers your engineering team to focus entirely on what matters most: writing great code.

Building a Self-Hosted Cloud Development Environment (CDE) for a Team of 10 Using Gitpod on Hetzner VPS | DPTCloud