HomeStart / GuidesAnleitungen / Self-hosting code-server on a VPS/ code-server selbst hosten auf einem VPS

Self-hosting code-server on a VPS: the honest RAM math, Caddy HTTPS, and the Open VSX catchcode-server selbst hosten auf einem VPS: die ehrliche RAM-Rechnung, Caddy-HTTPS und die Open-VSX-Falle

code-server is Coder's build of VS Code that runs on a server and serves the whole editor to any browser. On a VPS it turns into a personal cloud IDE you can open from a tablet, a work laptop with no admin rights, or a machine you don't trust with your SSH keys — but it is still a process on a small box, and the honest framing matters more than the install command.code-server ist Coders Build von VS Code, das auf einem Server läuft und den kompletten Editor an jeden Browser ausliefert. Auf einem VPS wird daraus eine persönliche Cloud-IDE, die du von einem Tablet aus öffnen kannst, von einem Arbeitslaptop ohne Adminrechte oder von einer Maschine, der du deine SSH-Keys nicht anvertrauen willst — aber es bleibt ein Prozess auf einer kleinen Box, und die ehrliche Einordnung zählt mehr als der Installationsbefehl.

What this is actually for, and what it isn'tWofür das hier eigentlich gedacht ist, und wofür nicht

A browser IDE on a 2 GiB VPS is for editing, running git, and light builds: a script, a static site, a small service you go build or npm run build locally on the box. It is not a replacement for a CI runner or a beefy workstation. The editor itself is lightweight, but the moment you open a real project, language servers and extensions are what eat the RAM, not the VS Code shell around them — a TypeScript server indexing a medium repo, rust-analyzer, or Pylance-equivalents each want their own few hundred megabytes, and they stay resident for as long as the folder is open.Eine Browser-IDE auf einem 2-GiB-VPS ist zum Editieren gedacht, zum Ausführen von git und für leichte Builds: ein Skript, eine statische Seite, ein kleiner Dienst, den du lokal auf der Box per go build oder npm run build baust. Sie ist kein Ersatz für einen CI-Runner oder eine kräftige Workstation. Der Editor selbst ist leichtgewichtig, aber sobald du ein echtes Projekt öffnest, sind es Language Server und Extensions, die den RAM auffressen, nicht die VS-Code-Hülle darum herum — ein TypeScript-Server, der ein mittelgroßes Repo indiziert, rust-analyzer oder Pylance-Äquivalente wollen jeweils ihre eigenen paar hundert Megabyte, und sie bleiben resident, solange der Ordner geöffnet ist.

That's the number to plan around, not the idle footprint. code-server itself idles well under 200 MB. Add one active language server and a handful of extensions and a real session settles closer to 700 MB–1 GiB, before the OS and Caddy. 1 GiB works only for light editing — config files, short scripts, no language server doing real indexing. 2 GiB is the realistic floor for a genuine coding session with one language server running. Compile anything non-trivial alongside it, or run a second always-on service on the same box, and that's a reason to size up rather than watch the OOM killer pick a fight with sshd.Das ist die Zahl, mit der du planen solltest, nicht der Leerlauf-Verbrauch. code-server selbst läuft im Leerlauf mit deutlich unter 200 MB. Kommen ein aktiver Language Server und eine Handvoll Extensions dazu, pendelt sich eine echte Session eher bei 700 MB–1 GiB ein, noch vor OS und Caddy. 1 GiB reicht nur für leichtes Editieren — Konfigurationsdateien, kurze Skripte, kein Language Server, der wirklich indiziert. 2 GiB sind die realistische Untergrenze für eine echte Coding-Session mit einem laufenden Language Server. Kompilierst du daneben etwas nicht Triviales oder betreibst einen zweiten Dauerdienst auf derselben Box, ist das ein Grund, größer zu dimensionieren, statt zuzusehen, wie sich der OOM-Killer mit sshd anlegt.

Installing code-servercode-server installieren

Coder publishes an install script, and the right way to run it is to read it first, not pipe it straight into a shell:Coder veröffentlicht ein Installationsskript, und der richtige Weg, es auszuführen, ist, es zuerst zu lesen, statt es direkt in eine Shell zu pipen:

curl -fsSL https://code-server.dev/install.sh -o install-code-server.sh
less install-code-server.sh
sh install-code-server.sh

On Ubuntu the script detects the distribution and installs the .deb package it downloads, the same artifact published on the project's GitHub releases page. If you'd rather skip the script entirely, grab that .deb yourself and install it with apt, which resolves dependencies for you where a bare dpkg -i would not. code-server's release assets carry the version in the filename (code-server_4.92.2_amd64.deb, not a bare code-server_amd64.deb), so there's no unversioned shortcut URL — resolve the current tag first, then build the filename from it:Unter Ubuntu erkennt das Skript die Distribution und installiert das .deb-Paket, das es herunterlädt — dasselbe Artefakt, das auf der GitHub-Releases-Seite des Projekts veröffentlicht wird. Willst du das Skript ganz überspringen, hol dir dieses .deb selbst und installiere es mit apt, das für dich Abhängigkeiten auflöst, wo ein blankes dpkg -i das nicht tut. Die Release-Assets von code-server tragen die Version im Dateinamen (code-server_4.92.2_amd64.deb, nicht ein blankes code-server_amd64.deb), es gibt also keine unversionierte Kurz-URL — löse zuerst den aktuellen Tag auf und baue daraus den Dateinamen:

VERSION=$(curl -fsSL https://api.github.com/repos/coder/code-server/releases/latest | grep -Po '"tag_name": *"v\K[^"]+')
curl -fsSL -o code-server.deb "https://github.com/coder/code-server/releases/download/v${VERSION}/code-server_${VERSION}_amd64.deb"
sudo apt install ./code-server.deb

Either path installs the same package. Check the code-server releases page if you'd rather copy the current filename by hand instead of scripting it.Beide Wege installieren dasselbe Paket. Schau auf der code-server-Releases-Seite nach, wenn du den aktuellen Dateinamen lieber von Hand kopierst, statt ihn zu skripten.

Running it as yourself, not as rootcode-server als du selbst ausführen, nicht als root

The package ships a systemd template unit, [email protected], meant to run as your normal non-root user — the @ takes the username. Never run an internet-facing editor as root; it has a terminal, and a terminal as root is the whole machine.Das Paket bringt eine systemd-Template-Unit mit, [email protected], die als dein normaler Nicht-root-Benutzer laufen soll — das @ nimmt den Benutzernamen auf. Betreibe einen ins Internet exponierten Editor niemals als root; er hat ein Terminal, und ein Terminal als root ist die ganze Maschine.

sudo systemctl enable --now code-server@$USER
systemctl status code-server@$USER

That starts code-server under your own account, reading its config from your own home directory, and restarts it automatically after a reboot or a crash. sudo journalctl -u code-server@$USER -f shows the live log if something isn't coming up.Das startet code-server unter deinem eigenen Account, liest seine Konfiguration aus deinem eigenen Home-Verzeichnis und startet es nach einem Reboot oder Absturz automatisch neu. sudo journalctl -u code-server@$USER -f zeigt das Live-Log, wenn etwas nicht hochkommt.

The config file: bind-addr, auth, and what auth: none really meansDie Konfigurationsdatei: bind-addr, auth, und was auth: none wirklich bedeutet

First launch writes ~/.config/code-server/config.yaml with a random password already in it. Open it and set it deliberately instead of trusting the generated one blindly:Der erste Start schreibt ~/.config/code-server/config.yaml mit einem bereits enthaltenen Zufallspasswort. Öffne sie und setze es bewusst, statt dem generierten blind zu vertrauen:

bind-addr: 127.0.0.1:8080
auth: password
password: <a long, random password, not the generated one if you didn't check it>
cert: false

bind-addr on 127.0.0.1:8080 means code-server only answers on the loopback interface — nothing on the open internet can reach port 8080 directly, only whatever reverse proxy runs on the same machine. Leave cert: false here; Caddy is doing TLS, not code-server itself.bind-addr auf 127.0.0.1:8080 bedeutet, dass code-server nur auf dem Loopback-Interface antwortet — nichts aus dem offenen Internet kann Port 8080 direkt erreichen, nur der Reverse-Proxy, der auf derselben Maschine läuft. Lass cert: false hier stehen; Caddy übernimmt TLS, nicht code-server selbst.

auth: none exists, and it is not automatically wrong — but it is only sane when something else in front of code-server is doing the authenticating, a VPN you connect over first, or basic auth on the proxy in front of it (below). Turn off code-server's own password and put nothing else in its place, and you've published a shell to anyone who finds the hostname.auth: none existiert, und das ist nicht automatisch falsch — aber es ist nur sinnvoll, wenn etwas anderes vor code-server die Authentifizierung übernimmt: ein VPN, über das du dich zuerst verbindest, oder Basic Auth auf dem Proxy davor (weiter unten). Schaltest du das eigene Passwort von code-server aus und setzt nichts an seine Stelle, hast du eine Shell für jeden veröffentlicht, der den Hostnamen findet.

Restart after any change:Starte nach jeder Änderung neu:

sudo systemctl restart code-server@$USER

HTTPS with Caddy — a browser IDE has no business on plain HTTPHTTPS mit Caddy — eine Browser-IDE hat auf reinem HTTP nichts verloren

code.example.com {
    reverse_proxy 127.0.0.1:8080
}

That's the whole file, and it's enough because Caddy detects the WebSocket upgrade code-server's UI depends on and proxies it without extra configuration. Point the domain's A record at the VPS, let it propagate, and only then start Caddy — automatic HTTPS needs that record correct before it can request a certificate.Das ist die ganze Datei, und sie reicht, weil Caddy das WebSocket-Upgrade erkennt, auf das die UI von code-server angewiesen ist, und es ohne zusätzliche Konfiguration durchreicht. Richte den A-Eintrag der Domain auf den VPS, lass ihn sich verbreiten, und starte erst danach Caddy — automatisches HTTPS braucht diesen Eintrag korrekt, bevor es ein Zertifikat anfordern kann.

Read this before you buy: the NAT IPv4 catch for 443. Some overnight.host plans hand you 80 and 443 forwarded by default, some don't — check what your plan actually forwards before you point DNS anywhere, at NAT IPv4, ports and forwarding. If 443 isn't reachable, Caddy's automatic certificate issuance has nothing to answer the ACME challenge on, and it will sit there retrying instead of serving anything. A dedicated IPv4, where 443 is genuinely yours — on our plans that's arranged by e-mail — is the alternative; NAT IPv4 vs a dedicated IP covers the trade-off in more detail. Either way, a browser IDE must never end up reachable over plain HTTP on a public port — that password is the only thing standing between the internet and a terminal.Lies das, bevor du kaufst: die NAT-IPv4-Falle bei 443. Manche overnight.host-Pläne geben dir 80 und 443 standardmäßig weitergeleitet, manche nicht — prüfe, was dein Plan tatsächlich weiterleitet, bevor du DNS irgendwohin zeigen lässt, unter NAT IPv4, Ports und Weiterleitung. Ist 443 nicht erreichbar, hat Caddys automatische Zertifikatsausstellung nichts, worauf sie die ACME-Challenge beantworten kann, und sie bleibt dabei, es erfolglos immer wieder zu versuchen, statt irgendetwas auszuliefern. Eine dedizierte IPv4, bei der 443 wirklich dir gehört — auf unseren Plänen wird das per E-Mail eingerichtet — ist die Alternative; NAT IPv4 vs. dedizierte IP behandelt den Trade-off ausführlicher. So oder so darf eine Browser-IDE niemals über reines HTTP auf einem öffentlichen Port erreichbar enden — dieses Passwort ist das Einzige, was zwischen dem Internet und einem Terminal steht.

An IDE on the internet is a shell on your VPSEine IDE im Internet ist eine Shell auf deinem VPS

Say it plainly: code-server's whole value is a full terminal inside the browser tab, which means anyone who gets past auth: password has a shell on your machine, not just an editor. There's no built-in two-factor here — the password is doing all the work. A long, random, unique password is the floor, generated with something like openssl rand -base64 24 and stored in a password manager, not typed from memory.Sag es klar: Der ganze Wert von code-server ist ein vollwertiges Terminal im Browser-Tab, was bedeutet, dass jeder, der an auth: password vorbeikommt, eine Shell auf deiner Maschine hat, nicht nur einen Editor. Es gibt hier keinen eingebauten zweiten Faktor — das Passwort leistet die ganze Arbeit. Ein langes, zufälliges, einzigartiges Passwort ist das Minimum, erzeugt mit etwas wie openssl rand -base64 24 und in einem Passwort-Manager gespeichert, nicht aus dem Gedächtnis getippt.

Two ways to add a real second layer:Zwei Wege, um eine echte zweite Ebene hinzuzufügen:

code.example.com {
    basic_auth {
        <username> <bcrypt-hash-from-caddy-hash-password>
    }
    reverse_proxy 127.0.0.1:8080
}

Pick at least one of these if the machine holds anything you'd mind losing.Wähle mindestens eine dieser Optionen, wenn die Maschine irgendetwas enthält, dessen Verlust dir etwas ausmachen würde.

Extensions come from Open VSX, not the Microsoft marketplaceExtensions kommen von Open VSX, nicht vom Microsoft Marketplace

code-server is configured out of the box to pull extensions from Open VSX (open-vsx.org), the open registry, rather than Microsoft's own marketplace — Microsoft's marketplace terms restrict its use to Microsoft's own products, and code-server isn't one. Install extensions the normal way, from the Extensions view in the UI or with code-server --install-extension <publisher.extension>, and it resolves against Open VSX automatically.code-server ist von Haus aus so konfiguriert, dass es Extensions von Open VSX (open-vsx.org) bezieht, der offenen Registry, statt von Microsofts eigenem Marketplace — Microsofts Marketplace-Bedingungen beschränken dessen Nutzung auf Microsofts eigene Produkte, und code-server ist keines davon. Installiere Extensions auf dem normalen Weg, über die Extensions-Ansicht in der UI oder mit code-server --install-extension <publisher.extension>, und es löst automatisch gegen Open VSX auf.

The catch worth knowing before you go looking for something: not every extension on the Microsoft marketplace has a matching listing on Open VSX. A handful of Microsoft-published ones simply aren't mirrored there, so if you're coming from desktop VS Code, budget a few minutes to confirm your must-haves exist before you build a whole workflow around them.Der Haken, den du kennen solltest, bevor du nach etwas suchst: Nicht jede Extension aus dem Microsoft Marketplace hat einen passenden Eintrag auf Open VSX. Eine Handvoll von Microsoft veröffentlichter Extensions wird dort schlicht nicht gespiegelt — kommst du also von der Desktop-Version von VS Code, plane ein paar Minuten ein, um zu prüfen, ob deine Must-haves existieren, bevor du einen ganzen Workflow darum herum aufbaust.

Settings Sync exists in code-server too, tied to a Microsoft or GitHub account, but it's worth treating as a convenience rather than a guarantee: because extensions still come from Open VSX on this end, syncing settings pulled from a desktop VS Code profile brings back the extensions that also exist on Open VSX and quietly skips the ones that don't.Settings Sync gibt es auch in code-server, gebunden an einen Microsoft- oder GitHub-Account, aber du solltest es eher als Komfortfunktion denn als Garantie behandeln: Weil Extensions auf dieser Seite weiterhin von Open VSX kommen, bringt eine Synchronisation von Einstellungen aus einem Desktop-VS-Code-Profil die Extensions zurück, die auch auf Open VSX existieren, und überspringt die anderen stillschweigend.

Workspaces, and git over your dedicated SSH portWorkspaces, und Git über deinen dedizierten SSH-Port

Your projects live as ordinary directories under your home directory on the VPS's own disk — no separate storage layer to configure, just ~/projects or wherever you'd naturally put them, opened from code-server's File → Open Folder. A handful of repos and their node_modules or build artifacts add up faster than the code itself, so keep an eye on df -h the same way you would on any other box.Deine Projekte liegen als ganz normale Verzeichnisse unter deinem Home-Verzeichnis auf der eigenen Festplatte des VPS — keine separate Storage-Schicht zu konfigurieren, einfach ~/projects oder wo auch immer du sie natürlicherweise ablegst, geöffnet über Datei → Ordner öffnen in code-server. Eine Handvoll Repos mit ihren node_modules oder Build-Artefakten summiert sich schneller als der Code selbst, also behalte df -h im Auge, genau wie auf jeder anderen Box.

Git works from the built-in terminal exactly as it would over SSH anywhere else — generate or copy an SSH keypair for this user, add the public half to GitHub, GitLab, or wherever your remotes live. The one thing that catches people out: if one of those remotes is a git server you also self-host behind NAT IPv4 — our own self-hosting Gitea on a VPS guide walks through exactly this — its SSH clone URL needs that server's forwarded port, not 22, so a plain git clone git@host:repo.git fails until you either add a Port line to ~/.ssh/config for that host or spell the port out in the URL.Git funktioniert aus dem eingebauten Terminal heraus genauso wie über SSH überall sonst — erzeuge oder kopiere ein SSH-Schlüsselpaar für diesen Benutzer und füge die öffentliche Hälfte bei GitHub, GitLab oder wo auch immer deine Remotes liegen hinzu. Das eine, worüber Leute stolpern: Ist eines dieser Remotes ein Git-Server, den du selbst hinter NAT-IPv4 hostest — unsere eigene Anleitung Gitea selbst hosten auf einem VPS geht genau darauf ein —, braucht dessen SSH-Clone-URL den weitergeleiteten Port dieses Servers, nicht 22, sodass ein einfaches git clone git@host:repo.git fehlschlägt, bis du entweder eine Port-Zeile in ~/.ssh/config für diesen Host ergänzst oder den Port direkt in der URL angibst.

Backups and updatesBackups und Updates

Two directories matter, and they're small: ~/.config/code-server (your config.yaml, including the password) and ~/.local/share/code-server (installed extensions and editor state), alongside whatever workspace directories you actually work in. None of that is backed up by anything running on the box on its own — copy it off the VPS on a schedule, the same as anything else you'd mind losing; back up your VPS covers what that looks like in practice.Zwei Verzeichnisse zählen, und sie sind klein: ~/.config/code-server (deine config.yaml, einschließlich Passwort) und ~/.local/share/code-server (installierte Extensions und Editor-Zustand), zusammen mit den Workspace-Verzeichnissen, in denen du tatsächlich arbeitest. Nichts davon wird von irgendetwas, das auf der Box von selbst läuft, gesichert — kopiere es nach einem Zeitplan vom VPS herunter, genau wie alles andere, dessen Verlust dir etwas ausmachen würde; Backup deines VPS beschreibt, wie das in der Praxis aussieht.

Updating means installing a newer package: re-run the install script, which fetches the current release, or download the latest .deb from the releases page and sudo apt install it again the same way you did the first time, then sudo systemctl restart code-server@$USER to pick it up.Updaten bedeutet, ein neueres Paket zu installieren: Führe das Installationsskript erneut aus, das den aktuellen Release holt, oder lade das neueste .deb von der Releases-Seite herunter und installiere es mit sudo apt install genauso wie beim ersten Mal, dann sudo systemctl restart code-server@$USER, um es zu übernehmen.

On overnight.hostBei overnight.host

Full disclosure: this is what we sell. The 2 GiB Basic is the realistic floor once a language server is actually running; the 1 GiB Starter only holds up for quick edits, and a build that leans on the CPU or a second service on the same box is a reason to move up to the 4 GiB Standard, not to fight the swap.Zur vollen Transparenz: Das ist, was wir verkaufen. Der 2-GiB-Basic ist die realistische Untergrenze, sobald tatsächlich ein Language Server läuft; der 1-GiB-Starter hält nur für schnelle Edits durch, und ein Build, der auf der CPU lastet, oder ein zweiter Dienst auf derselben Box ist ein Grund, auf den 4-GiB-Standard hochzugehen, statt gegen den Swap zu kämpfen.

Linux KVM VPS — EUR 4.99 to EUR 59.99 a month, on our own single-tenant bare metal in Dallas, TX and Charlotte, NC. Full hardware virtualisation (KVM), your own kernel, full root. Six tiers, vps-starter to vps-ultra. Starter is 1 vCPU, 1 GiB RAM, 25 GB disk.Linux-KVM-VPS — 4,99 bis 59,99 EUR im Monat, auf unserer eigenen Single-Tenant-Bare-Metal-Hardware in Dallas, TX und Charlotte, NC. Vollständige Hardware-Virtualisierung (KVM), eigener Kernel, volles Root. Sechs Tarife, vps-starter bis vps-ultra. Starter hat 1 vCPU, 1 GiB RAM, 25 GB Speicher.

You order in the shop, pay by card (Stripe) or SEPA bank transfer, and your login details are e-mailed to you once the service is set up. Support is e-mail, run by one person, with no guaranteed response time. All prices are final totals under the German small-business rule (§19 UStG); no VAT is added or shown.Du bestellst im Shop, zahlst per Karte (Stripe) oder SEPA-Überweisung, und deine Zugangsdaten werden dir per E-Mail zugeschickt, sobald der Dienst eingerichtet ist. Support läuft per E-Mail, von einer einzelnen Person betrieben, ohne garantierte Reaktionszeit. Alle Preise sind Endpreise. Gemäß § 19 UStG wird keine Umsatzsteuer ausgewiesen.

Order vps-basic → · Linux KVM VPS overviewvps-basic bestellen → · Übersicht Linux-KVM-VPS

Written by the person who runs overnight.host: a small, honest hosting company on dedicated bare metal — Linux VPS, game servers, web hosting. Live status at up.overnight.host.Geschrieben von der Person, die overnight.host betreibt: ein kleines, ehrliches Hosting-Unternehmen auf dedizierter Bare-Metal-Hardware — Linux-VPS, Gameserver, Webhosting. Live-Status unter up.overnight.host.

Technical guidance is informational. Plans, specifications and final prices are listed in the shop and can be ordered directly; VPS, game server, web hosting, one-click app and automation plans are provisioned automatically after payment. Custom configurations are still arranged by e-mail.Technische Hinweise dienen der Information. Pläne, Spezifikationen und Endpreise stehen im Shop und können direkt bestellt werden; VPS-, Gameserver-, Webhosting-, One-Click-App- und Automatisierungs-Pläne werden nach der Zahlung automatisch bereitgestellt. Sonderkonfigurationen werden weiterhin per E-Mail vereinbart.

FAQFAQ

Can code-server compile a real project, not just edit files?Kann code-server ein echtes Projekt kompilieren, nicht nur Dateien bearbeiten?

For light builds, yes — a script, a small service, a static site generator. For anything CPU- or memory-heavy, treat the VPS as an editor with a terminal attached, not a build farm, and run the actual compile step somewhere sized for it, or budget real RAM and CPU if you insist on doing it here.Für leichte Builds ja — ein Skript, ein kleiner Dienst, ein statischer Site-Generator. Für alles, was CPU- oder speicherintensiv ist, behandle den VPS als Editor mit angeschlossenem Terminal, nicht als Build-Farm, und lass den eigentlichen Kompilierschritt irgendwo laufen, das dafür dimensioniert ist — oder plane echten RAM und echte CPU ein, wenn du darauf bestehst, es hier zu machen.

Is a strong password enough, or do I need HTTPS too?Reicht ein starkes Passwort, oder brauche ich auch HTTPS?

Both, always. HTTPS via Caddy stops the password itself from crossing the network in plain text; without it, anyone between you and the VPS can read the password off the wire the first time you type it in. A browser IDE reachable over plain HTTP is not a smaller risk than one with a weak password — it's the same risk from a different angle.Beides, immer. HTTPS über Caddy verhindert, dass das Passwort selbst im Klartext über das Netz geht; ohne HTTPS kann jeder zwischen dir und dem VPS das Passwort beim ersten Eintippen von der Leitung mitlesen. Eine Browser-IDE, die über reines HTTP erreichbar ist, ist kein kleineres Risiko als eine mit schwachem Passwort — es ist dasselbe Risiko aus einem anderen Blickwinkel.

Why is an extension I use every day missing?Warum fehlt eine Extension, die ich täglich benutze?

code-server pulls from Open VSX, not the Microsoft marketplace, and a small number of extensions — mostly Microsoft's own — are only published to the latter. Search Open VSX directly before assuming your install is broken; if it isn't listed there, it isn't coming through the Extensions view no matter what you try.code-server bezieht Extensions von Open VSX, nicht vom Microsoft Marketplace, und eine kleine Anzahl von Extensions — meist Microsofts eigene — wird nur dort veröffentlicht. Suche direkt auf Open VSX, bevor du annimmst, deine Installation sei kaputt; steht sie dort nicht, kommt sie über die Extensions-Ansicht auch mit keinem Trick durch.

Can I browse or edit files outside my home directory?Kann ich Dateien außerhalb meines Home-Verzeichnisses durchsuchen oder bearbeiten?

Only as whatever your own Linux user can read or write, same as any shell session — code-server runs as you, under the systemd unit's %i substitution, with no extra privilege of its own. If a file needs sudo to touch from a terminal, it needs sudo here too, and code-server doesn't hand that out automatically.Nur so, wie dein eigener Linux-Benutzer lesen oder schreiben darf, genau wie bei jeder Shell-Session — code-server läuft als du, unter der %i-Substitution der systemd-Unit, ohne eigene zusätzliche Privilegien. Braucht eine Datei sudo, um von einem Terminal aus angefasst zu werden, braucht sie sudo auch hier, und code-server verteilt das nicht automatisch.

What happens to my work if I just close the browser tab?Was passiert mit meiner Arbeit, wenn ich einfach den Browser-Tab schließe?

Nothing is lost. code-server runs as a systemd service on the VPS independent of any browser tab; closing the tab just disconnects the view. Unsaved editor state and any process you left running in an integrated terminal survive until you reconnect, restart the service yourself, or reboot the machine.Nichts geht verloren. code-server läuft als systemd-Dienst auf dem VPS, unabhängig von jedem Browser-Tab; das Schließen des Tabs trennt nur die Ansicht. Ungespeicherter Editor-Zustand und jeder Prozess, den du in einem integrierten Terminal laufen gelassen hast, überleben, bis du dich neu verbindest, den Dienst selbst neu startest oder die Maschine rebootest.

Ready to order?Bereit zu bestellen?

Prices are final totals; no VAT is shown (§19 UStG). Need something the shop does not list? Email us for a written offer.Alle Preise sind Endpreise ohne ausgewiesene USt. (§19 UStG). Du brauchst etwas, das nicht im Shop steht? Schreib uns für ein schriftliches Angebot.

Order now →Jetzt bestellen → Request a custom configIndividuelle Konfiguration anfragen