# services/code-server.nix — Web IDE at code.nordhammer.it, protected by Authelia. # # Run as fred so it has access to ~/nixos-config and the rest of the home dir. # Auth is handled entirely by Authelia (auth = "none" disables code-server's own # password gate). After deploy, install the Claude extension from a terminal: # code-server --install-extension anthropic.claude-code # and set ANTHROPIC_API_KEY in ~/.config/code-server/env or via a shell profile. { config, pkgs, lib, pkgs-unstable, ... }: { config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") { services.code-server = { enable = true; package = pkgs-unstable.code-server; host = "127.0.0.1"; port = 4444; auth = "none"; user = "fred"; extraArguments = [ "--disable-telemetry" "--disable-update-check" ]; }; # Make the claude CLI available in code-server's integrated terminal. environment.systemPackages = [ pkgs.claude-code ]; # Patch the Claude Code extension to add crossorigin="anonymous" to its # stylesheet link — required for Firefox due to stricter CORS handling. # Idempotent: sed won't match after the first apply. system.activationScripts.claude-code-firefox-fix.text = '' for f in /home/fred/.local/share/code-server/extensions/anthropic.claude-code-*/extension.js; do [ -f "$f" ] && ${pkgs.gnused}/bin/sed -i \ 's|||' \ "$f" done ''; }; }