code-server
The code-server extension adds code-server, VS Code in the browser, to a Frostyard bootc image. Use it to edit code on this machine from a browser. Every image carries the extension’s definition, switched off. The extension itself is not in the image: Updex turns it on and downloads it.
Before you start
Section titled “Before you start”You need:
- A Frostyard bootc image. Every image built on Base has
systemd-sysextandfrostyard-updex. - Root access to enable, update, and remove the extension.
- Network access to
https://repository.frostyard.org/ext/code-server/. - Free space in
/varfor the image.
code-server has no published test results on Frostyard images yet. Try it on a machine you can spare first.
Enable code-server
Section titled “Enable code-server”See what Updex found, then enable the feature and download it now:
updex features list --component=code-serversudo updex features enable code-server --nowcode-server appears as a component, with its feature disabled. The enable command
downloads the image, checks its checksum and signature, links it, and refreshes
the merge.
Check the merge and the command that the extension adds:
systemd-sysext statuscommand -v code-serversystemd-sysext status lists code-server, and command -v code-server prints /usr/bin/code-server.
If enable --now exits with a refresh error (refresh_error in JSON), the
download worked, but the activation did not. If the output says
activation did not finish, the extension is merged, but users and groups can
be missing: reboot. Otherwise the merge state is unknown: reboot. A
sudo systemd-sysext refresh by hand does not create users and groups. Then run
the checks above again.
Use code-server
Section titled “Use code-server”Start code-server as a user service, and keep it on at every login:
systemctl --user enable --now code-servercode-server listens on 127.0.0.1:8080. On first start it writes ~/.config/code-server/config.yaml with a generated password. Read the password there, then open http://127.0.0.1:8080.
Frostyard adds no preset and no boot-time drop-in for code-server, so nothing starts it for you at boot. Do not enable code-server@<user>.service for boot. A .wants link to a unit inside an extension is dropped at boot, before the merge.
The program is in /usr/lib/code-server. Your projects and settings stay outside /usr, so an update leaves them alone.
Update, roll back, and remove
Section titled “Update, roll back, and remove”Check for an update, then install it:
updex features check --component=code-serversudo updex features update --component=code-serverUpdex downloads and verifies the new image, switches the link, deletes older versions, and refreshes the merge. See Manage system extensions for --no-vacuum, --dry-run, and the update timer. The refresh swaps /usr under the running system.
Roll back with sudo updex features rollback code-server. It takes effect at the next boot. See Roll back.
Remove code-server:
sudo updex features disable code-server --now --forceUpdex unmerges all extensions on the host, deletes the image, and merges the rest again. The code-server command goes. Files you created in your home directory stay. Reboot when the command finishes. Without --force, Updex refuses while the image is merged.
What ships
Section titled “What ships”| Item | What you get |
|---|---|
| Package | The code-server package from the upstream release, installed into the image with dpkg. The build checks the download against a pinned checksum |
| Command | /usr/bin/code-server |
| Program files | /usr/lib/code-server |
| Version | The image file name carries the code-server package version, plus a +rN snosi revision when one is set |
| Image file | code-server_<version>_<os>_<arch>.raw.zst; .raw.xz, .raw.gz, and .raw also work |
| Download | From https://repository.frostyard.org/ext/code-server/, signature required (Verify=true), into /var/lib/extensions.d/ |
| Services | None that Frostyard starts. The upstream package ships systemd units under /usr/lib/systemd/, and snosi adds no preset or Upholds= drop-in for them |
Each build checks that /usr/bin/code-server and /usr/lib/code-server are present. A build that is missing one fails.
See also
Section titled “See also”Sources
Section titled “Sources”Reviewed 2026-10-27; Updex facts reviewed 2026-10-30. snosi commit
b2858ca0222814c395cf8248db98f3e096d57dc9;
Updex v2.1.3 commit
2661e987faac986f2594d1d9bbbadf1bf3053f5b.
-
mkosi.images/base/mkosi.extra/usr/lib/sysupdate.code-server.d/code-server.feature -
mkosi.images/base/mkosi.extra/usr/lib/sysupdate.code-server.d/code-server.transfer -
Updex
docs/adr/0019-apply-merged-sysusers-and-tmpfiles-on-a-live-refresh.md(a live refresh runssystemd-sysusersandsystemd-tmpfiles --create; when the last refresh fails, the merge state is unknown; a refresh by hand does not runsystemd-sysusers)