New: one-click Cloud Apps
All posts

Self-hosted GitHub Codespaces alternative: your VS Code in the browser with code-server

Robert DavisAugust 17, 20265 min read
Self-hostingDeveloper
Self-hosted GitHub Codespaces alternative: your VS Code in the browser with code-server

A cloud development environment is one of those things you don't think about until it starts metering you. GitHub Codespaces spins up VS Code in the cloud, which is genuinely useful -- right up until you notice the per-hour billing ticking away on compute and storage, the free hours that quietly run out, and the fact that your entire workspace lives on infrastructure you don't control. code-server is the same idea, turned inside out: the full VS Code editor, in your browser, running on a server you own, for one flat cost that doesn't count the minutes.

What code-server is

code-server is the real Visual Studio Code -- the open-source Code - OSS core that Microsoft's own editor is built on -- compiled to run as a server and streamed to your browser. It is not a lightweight clone or a read-only viewer. It is the actual editor: the command palette, the integrated terminal, the debugger, extensions, and every keybinding already in your muscle memory. You open a URL, type your password, and you are sitting in the same editor you use on your desktop -- except it is running on a Linux box somewhere and rendering to whatever device you happen to be holding.

Built and maintained by Coder, it is MIT-licensed and free. GitHub Codespaces gives you a comparable hosted experience, but rents it back to you by the hour and keeps your environment parked on Microsoft's infrastructure. code-server hands you the whole thing to run yourself.

The features that actually matter

  • Real VS Code, real extensions. The full Code - OSS editor, with extensions installed from the Open VSX registry either in-editor or from the command line. Themes, snippets, linters, formatters, and language servers all work the way you expect them to.
  • A terminal on the server itself. The integrated terminal is a real shell on the host, so your builds, dependency installs, and long-running processes burn the server's CPU and RAM instead of draining your laptop battery.
  • Persistent everything. Files, installed extensions, settings, terminal history, and Git checkouts all live on disk and survive between sessions. Close the tab, reopen from another machine, and pick up exactly where you left off -- no re-provisioning, no cold start.
  • Code from any device. Because it renders to a browser, a Chromebook, an iPad, or a borrowed machine becomes a full workstation. There is nothing to install on the client end.
  • Built-in authentication. Password auth ships out of the box, rate-limited against brute force; put it behind HTTPS and the editor is yours alone.
  • Web-app preview through a built-in proxy. Run a dev server on the box and reach it through code-server's port proxy, so you can preview the thing you are building without setting up a separate tunnel.
  • Your config, portable. The editor reads standard `settings.json` and `keybindings.json`, so the setup you have tuned over years comes with you rather than being rebuilt from scratch.

Why self-host it instead of the hosted version

Your code stays yours. Source, SSH keys, `.env` files, database credentials, half-finished ideas -- none of it passes through a third party or sits on someone else's billing dashboard. The workspace is a directory on a disk you control.

The cost doesn't scale per-seat or per-hour. Codespaces meters compute and storage by the minute; leave a machine running and the bill grows. code-server runs 24/7 on a flat server cost. Whether you code for one hour this month or three hundred, the number doesn't move. To be fair, if you genuinely only spin up an editor twice a month, Codespaces' free tier will be cheaper -- flat pricing wins the moment you're a regular, not before.

You control the whole environment. Your domain, your runtime versions, your extensions, your resource limits. Pin Node 20 or Python 3.12, install whatever system packages you need, and never wait for a platform to bless a feature. It behaves like a machine you own because it is one.

Who it's for

Developers who work across machines. Desktop at home, laptop in a cafe, tablet on the couch -- one environment, reachable from all of them, always in the same state.

Freelancers and small teams who want a consistent, disposable-feeling dev box without paying a hosted platform per person, and without every contractor's code living on a vendor's servers.

Anyone on a locked-down or low-powered device. A Chromebook, a school laptop, or a thin client becomes a proper development machine, because the heavy lifting all happens on the server and only the screen comes to you.

The honest setup notes

Rolling this yourself is real work. code-server should sit behind HTTPS with a reverse proxy -- sending a password over plain HTTP is asking for trouble -- so there's a TLS certificate and a domain to wire up. And remember what you're exposing: a single password guards a live shell on your server, so a weak one or a stale, unpatched build is a straight line to someone else's code running as you. Keeping it locked down and current isn't a nice-to-have, it's the entire security model.

The Open VSX registry it uses by default doesn't carry Microsoft's proprietary extensions (Pylance, the official C/C++ tooling, the Remote-* family), so a few workflows need workarounds. And you own the rest of the housekeeping: provisioning the language runtimes, sizing the box for the language servers and builds you'll run, backing up the workspace volume, and staying on top of updates.

None of that is hard, exactly. It's just yours to remember, forever.

Or let us run it. On Caliber Node, code-server comes up already behind HTTPS on a real domain, with the storage, backups, and updates handled -- so you get the ownership without the sysadmin homework.

Deploy it in one click

The DIY path is a server, a reverse proxy, a certificate, a systemd unit, and a maintenance calendar you now own. It works, and plenty of people run it happily. But most people just want the editor.

On Caliber Node, you deploy code-server in one click. We provision it on our infrastructure, put it behind HTTPS on a domain, and hand you the login. Extensions, terminal, persistent workspace -- all there, all yours, nothing to configure first. You still get real logs, SFTP into the box, and your files are always exportable. It is your environment, run by us, not a black box you rent access to.

First run

  1. Deploy code-server from the catalog and open the URL we give you.
  2. Sign in with your password -- you're now looking at a fresh VS Code window in the browser.
  3. Open the integrated terminal and clone a project: `git clone` your repo, or `mkdir` a new one.
  4. Open that folder in the editor, then install an extension or two from the marketplace panel -- a theme, a language pack, whatever you live in.
  5. Start a dev server from the terminal and preview it through the built-in port proxy. That's a full working environment, reachable from any device you sign in from.

The bigger picture

Where you write code is not a small thing. It's the room you spend your days in, and handing it to a platform that meters the minutes and holds your files means the room isn't really yours. Owning your dev environment is the same instinct as owning your data: the tool should answer to you, not the other way around. code-server makes that practical -- the real editor, on a machine you control, for a cost that doesn't punish you for using it.

Deploy code-server in a few minutes → https://calibernode.com/cloud-apps

Or browse the full app catalog to see what else you can own instead of rent.

One-click self-hosted apps, managed for you -- real logs, SFTP, and your data always exportable. Never a black box.

Ready to deploy?

Deploy an app from the catalog in minutes. No contracts, no setup fees.