Skip to content

The Setup TUI ​

code-server-setup is a full-screen, arrow-key config editor for the server — think nmtui. It edits the same YAML file the server reads, and saving tells the running server to reload. No manual YAML editing, no forgetting to restart.

Run it ​

bash
sudo code-server-setup                 # system install (edits /etc/code.yaml)
code-server-setup --config ~/.config/code/server.yaml   # userland install
podman exec -it code-server code-server-setup           # inside the container

It's installed alongside the server automatically.

Controls ​

 code-server-setup — editing /etc/code.yaml
 ─────────────────────────────────────────────
   listen        :80
   tlsDomains    code.example.com
 ▶ tlsEmail      ops@example.com▏
   cookieSecure  [x] true
   dataDir       /var/lib/code/data
 ─────────────────────────────────────────────
 ↑/↓ field   ←/→/Space toggle   type to edit   ⌫ delete   Ctrl+S save   Ctrl+C quit
KeyAction
↑ / ↓move between fields
type / ⌫edit text fields (tlsDomains takes a comma-separated list)
← / → / Spacetoggle booleans like cookieSecure
Ctrl+Ssave and hot-reload the running server
Ctrl+C / Escquit without saving

What happens on save ​

Ctrl+S writes the YAML and signals the running server, which restarts itself in place with the new config — including changes that need re-binding ports (like turning on HTTPS). Open connections drop for a second and reconnect automatically; running tasks on your agents are unaffected.

If the server isn't running, the file is still saved — the config applies on next start.

Troubleshooting ​

  • save failed — the config file isn't writable. In the container case, the host's /etc/code.yaml must be mounted read-write and owned by the container user: chown 10001:10001 /etc/code.yaml.
  • Saved a key but the behavior didn't change — that key may be overridden by a CODE_* environment variable (common in container setups). The env var wins; remove it or change it there. See Configuration File.