Something went wrong. Try again.
NixOS configuration for all my personal hosts.
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546{ config, lib, pkgs, inputs, ... }:let servicePort = 8020; pkg = (pkgs.llama-cpp.override { cudaSupport = true; }).overrideAttrs (old: { src = inputs.llama-cpp-src; version = "0"; # The web UI moved from tools/ui to tools/server/webui in newer upstream. # nixpkgs' finalAttrs self-reference means overriding npmRoot cascades to # npmDeps (preBuild = "pushd tools/server/webui") and preConfigure automatically. npmRoot = "tools/server/webui"; npmDepsHash = "sha256-RAFtsbBGBjteCt5yXhrmHL39rIDJMCFBETgzId2eRRk="; postPatch = '' rm -f tools/server/public/index.html.gz # Flake inputs lack the COMMIT file that nixpkgs' postFetch generates echo "custom" > COMMIT ''; cmakeFlags = (old.cmakeFlags or []) ++ ["-DCMAKE_CUDA_ARCHITECTURES=61" "-DGGML_CUDA_FA=OFF"]; });in { age.secrets.llama-api-key = { file = ../../secrets/llama-api-key.age; mode = "0444"; };
services.llama-cpp = { enable = true; model = "/var/lib/llama/gemma4-e2b.gguf"; port = servicePort; package = pkg; };
systemd.services.llama-cpp.serviceConfig.ExecStart = lib.mkForce ( pkgs.writeShellScript "llama-cpp-start" '' exec ${pkg}/bin/llama-server \ --host 0.0.0.0 \ --port ${toString servicePort} \ -m ${config.services.llama-cpp.model} \ --api-key "$(< ${config.age.secrets.llama-api-key.path})" ''
#--mtp-head /var/lib/llama/gemma4-e2b-mtp.gguf );
networking.firewall.allowedTCPPorts = [ servicePort ];}