Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

services.llmhop.enable

Whether to enable llmhop reverse proxy.

Type: boolean

Default:

false

Example:

true

services.llmhop.package

The llmhop package to use.

Type: package

Default:

pkgs.callPackage ./package.nix { }

services.llmhop.credentials

Files handed to the service through systemd’s LoadCredential=, keyed by the name they are exposed under. Reference them from settings as ${file:<name>}: relative paths resolve against $CREDENTIALS_DIRECTORY, a per-unit tmpfs readable only by this service, so secrets never enter the world-readable Nix store.

Any path works, including agenix/sops-nix outputs and manually managed files.

Type: attribute set of absolute path

Default:

{ }

Example:

{ client_token = "/run/secrets/llmhop-token"; }

services.llmhop.host

Interface llmhop binds to. The default binds every interface, leaving access control to the firewall. IPv6 literals are written plain (e.g. ::1) and bracketed by llmhop itself.

Type: string

Default:

""

Example:

"127.0.0.1"

services.llmhop.openFirewall

Whether to open port in the host firewall.

Type: boolean

Default:

false

services.llmhop.port

Port llmhop listens on. Registered in the global port registry, so a backend model reusing it fails evaluation instead of leaving one of the two services unable to bind.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

8080

services.llmhop.settings

Configuration written to the JSON config file passed to llmhop. See the upstream Config struct for available fields; host and port are contributed by the options of the same name.

The generated file is validated at build time by the binary itself, so unknown keys and malformed model URLs fail nixos-rebuild rather than the service.

Type: JSON value

Default:

{ }

Example:

{
  models = {
    gpt-4 = {
      url = "https://api.openai.com";
    };
  };
}