
XDA’s piece on building an entire developer workflow around Docker containers landed on a real pattern. The team’s stack pulled a self-hosted Git, a self-hosted CI runner, a containerized IDE, and a few smaller tools into one workflow that didn’t depend on GitHub, GitLab.com, or Replit being up. We tested 7 of the best apps for self-hosted developer tools on desktop in 2026. The list mixes Git hosts, CI engines, and full coding environments that run on a workstation, NAS, or rented VPS.
The brief: pick tools that install in an evening, run inside containers, and don’t ask for a license server at scale.
What to look for in a self-hosted developer tool
The category is broad; treat the picks as a stack, not a single replacement. Match each layer to what you actually need:
- Git hosting versus full forge. Gitea and Forgejo are full forges (Git, issues, PRs, CI, packages, container registry). Plain Git over SSH is lighter; pick a forge when you want PR review and CI in the same UI.
- CI runner versus CI engine. Drone, Woodpecker, and Jenkins are CI engines that orchestrate runners. Forgejo Actions and Gitea Actions are GitHub-Actions-compatible and run inside the same forge.
- Editor as a service. Coder and code-server let you host VS Code, browser-accessible, on a NAS or home server. Gitpod and JetBrains Space are the SaaS equivalents that have self-host paths.
- License model. MIT, Apache, AGPL, and BSL each have implications. Forgejo is fully AGPL; Gitea is split between MIT (older) and a permissive license with optional paid features.
- Resource footprint. Gitea and Forgejo run happily on 512 MB of RAM. Jenkins wants 2 GB minimum. Coder and Gitpod want a beefier machine.
- Maintenance. A self-hosted stack is your job to keep alive. Pick tools with active maintainers and a clear release cadence.
Quick comparison
| App | Best for | Free plan | License | Stack layer |
|---|---|---|---|---|
| Gitea | Lightweight full forge | Yes, fully | Split MIT / proprietary | Git host + CI + packages |
| Forgejo | Community-governed Gitea fork | Yes, fully | AGPL | Git host + CI + packages |
| Coder | Containerized dev environments | Open source core, paid Enterprise | AGPL | Coding environment |
| code-server | VS Code in the browser | Yes, fully | MIT | Coding environment |
| Gitpod | Cloud-style ephemeral dev envs | Self-hosted: paid; SaaS free tier | AGPL (legacy) | Coding environment |
| Woodpecker CI | Lightweight CI for forges | Yes, fully | Apache 2.0 | CI engine |
| Drone CI | Container-native CI | Open source core, paid Enterprise | Apache 2.0 (CE) | CI engine |
| Jenkins | The everything CI | Yes, fully | MIT | CI engine |
1. Gitea — the default lightweight forge
Gitea is the most-deployed self-hosted Git forge in homelab and small-team setups. It ships as a single static binary in Go, runs happily on 512 MB of RAM, and covers Git hosting, code review, issues, projects, container registry, package registry, LFS, SSH access, and a GitHub-Actions-compatible CI system (Gitea Actions). The web UI is closer to GitHub than to GitLab and the onboarding is the shortest in the category.
Where it falls short: Governance is the recurring criticism since the 2024 split. The fork (Forgejo) sits in the same role for users who want a community-only project.
Pricing:
- Free: Fully free, self-hosted
- Paid: Optional Gitea Cloud and managed offerings
Platforms: Linux, Windows, macOS, Docker, FreeBSD
Bottom line: The default forge for any homelab or small team that wants a single, batteries-included binary.
2. Forgejo — the community-governed Gitea fork
Forgejo is the soft-fork of Gitea created in late 2024 in response to Gitea’s corporate governance shift. It is fully compatible with Gitea (migrations are a database swap), feature-equivalent on the Git, issues, PRs, packages, and CI surface, and run by the Codeberg e.V. nonprofit. If governance and license clarity matter, this is the pick.
Where it falls short: Smaller community than Gitea by headcount, though growing fast. Some third-party integrations still ship “Gitea” branding by default.
Pricing:
- Free: Fully free, AGPL
- Paid: None
Platforms: Linux, Windows, macOS, Docker
Download: forgejo.org or Codeberg
Bottom line: Pick Forgejo over Gitea when license clarity and community-only governance matter to you.
3. Coder — containerized dev environments
Coder is the self-hosted platform for spinning up developer workspaces inside containers, VMs, or Kubernetes pods. Each workspace is defined by a Terraform template, persists across sessions, and is accessible from the browser, a local VS Code, or JetBrains Toolbox. The open-source core handles auth, templates, and access; the paid Enterprise tier adds RBAC, audit logging, and high availability.
Where it falls short: Requires real infrastructure to be useful (Kubernetes or a server with enough headroom for several workspaces). Onboarding the first template is a half-day project.
Pricing:
- Free: Open Source Edition (AGPL), full feature set for individuals and small teams
- Paid: Premium and Enterprise tiers per active user per month
Platforms: Linux server (Docker, Kubernetes, VM); clients on Windows, macOS, Linux, browser
Bottom line: The right pick when “what’s my dev environment?” is the question slowing the team down.
4. code-server — VS Code in the browser
code-server is the most-deployed way to run VS Code in a browser tab. It runs as a single binary or Docker container, opens any folder, and supports the full VS Code extension marketplace via the Open VSX registry. On a $5 VPS or a NAS, it gives you full editor parity from any browser, including iPads and Chromebooks.
Where it falls short: It is the editor only; CI, builds, and runners are your problem. Some extensions that depend on Electron-only APIs are unavailable.
Pricing:
- Free: Fully free, MIT
- Paid: None
Platforms: Linux server (Docker or native); clients on any modern browser
Download: code-server on GitHub
Bottom line: The simplest way to get VS Code on any machine that has a browser.
5. Gitpod — cloud-style ephemeral dev envs
Gitpod is the prebuilt-dev-environment platform. Each workspace boots from a Dockerfile and a .gitpod.yml, dependencies are pre-installed by the prebuild step, and a fresh workspace is two clicks away. The hosted version has a generous free tier; the self-hosted Enterprise version (Gitpod Flex) targets larger teams.
Where it falls short: The fully self-hosted free path narrowed in 2024; for new deployments, Coder is usually the more obvious open-source choice. The Flex pricing is per-user, not flat.
Pricing:
- Free: 50 hours per month on Gitpod Classic SaaS
- Paid: Gitpod Flex self-hosted, per-user
Platforms: Linux (Kubernetes), browser clients
Download: gitpod.io
Bottom line: The pick for teams already on Gitpod’s hosted tier who want a paid self-hosted upgrade path.
6. Woodpecker CI — lightweight CI for self-hosted forges
Woodpecker CI is the community-friendly fork of Drone that stayed Apache 2.0. It pairs with Gitea, Forgejo, GitLab, GitHub, and Bitbucket; pipelines are YAML in the repo, steps run inside containers, and runners scale horizontally. The footprint is small enough that the server and one runner run inside a single Docker Compose file.
Where it falls short: Smaller plugin catalog than Jenkins. Some niche use cases (Android builds with signed AABs, for example) need extra plumbing.
Pricing:
- Free: Fully free, Apache 2.0
- Paid: None
Platforms: Linux server (Docker preferred), runners on Linux, Windows, macOS
Download: woodpecker-ci.org or GitHub
Bottom line: The CI engine to pair with Gitea or Forgejo if you don’t want to use the forge’s built-in Actions runner.
7. Drone CI — container-native CI engine
Drone CI is the original container-native CI engine and the parent project of Woodpecker. The Community Edition is Apache 2.0 and ships features sufficient for small teams; the Enterprise license adds advanced RBAC, audit logging, and commercial support. Runners are first-class and Docker-native by default.
Where it falls short: Harness (the parent company) has focused commercial attention on its broader DevOps platform; Drone’s community pace cooled compared to Woodpecker. New self-hosted deployments often pick Woodpecker for that reason.
Pricing:
- Free: Community Edition, Apache 2.0
- Paid: Enterprise license per build host
Platforms: Linux server (Docker preferred), runners on Linux, Windows, macOS
Bottom line: Worth keeping if you already run it. New deployments lean Woodpecker.
8. Jenkins — the everything CI
Jenkins is the elder statesman of CI and still the most-deployed CI engine in enterprise environments. The plugin ecosystem is larger than every other entry on this list combined (2,000+ plugins), declarative pipelines via Jenkinsfile are the recommended path, and every major language and platform has a community-maintained build runner. If you need to build a signed iOS app inside an enclave VM, Jenkins is what does it.
Where it falls short: The plugin sprawl is the trade-off. Older plugins decay, the configuration surface is wide, and the JVM footprint is the largest in this list. Onboarding a new Jenkins is a project, not an afternoon.
Pricing:
- Free: Fully free, MIT
- Paid: None for Jenkins itself; CloudBees offers paid distributions
Platforms: Linux, Windows, macOS, Docker
Download: jenkins.io
Bottom line: Pick Jenkins when the build matrix is the part of the stack that has the most edge cases.
How to pick the right one
If you want the simplest self-hosted Git, install Gitea. If you want the same thing but community-governed, install Forgejo. If you want the editor as a service, start with code-server on a small VPS; move to Coder when the team grows.
If you want CI to live next to your forge, use Forgejo Actions or Gitea Actions. If you want a separate CI engine, install Woodpecker. If your build matrix is large and weird, accept Jenkins.
Stay on managed GitHub, GitLab, or Bitbucket if the team is bigger than 20 and the platform team is one person. Self-hosting at scale is a real job.
FAQ
Is Gitea or Forgejo a better self-hosted Git server?
Both are technically equivalent. Forgejo is community-governed under the Codeberg nonprofit and AGPL-licensed; Gitea is run by Gitea Limited and has a mixed-license future. Pick Forgejo when license clarity and governance matter; pick Gitea when you want the slightly larger third-party integration catalog by default.
Can I run my entire dev workflow self-hosted for free?
Yes. The combination of Forgejo (Git + issues + PRs + Actions), Woodpecker CI (additional runners), and code-server (browser editor) covers the full workflow at zero cost. Add Coder when the team needs templated workspaces.
What is the lightest self-hosted Git server?
Gitea and Forgejo each run on 512 MB of RAM. For a single user, Gogs (the predecessor) is lighter still but receives fewer updates. Plain Git over SSH is the absolute minimum.
Is Jenkins still relevant in 2026?
Yes, in environments with large or unusual build matrices. New self-hosted teams without those constraints usually pick Forgejo Actions, Gitea Actions, or Woodpecker.
Do I need Kubernetes for Coder?
No. Coder runs on Docker hosts, single-VM setups, and Kubernetes alike. For homelab use, Docker on a single beefier machine is the most common pattern. Kubernetes is the recommended path when more than 10 active users share the cluster.