Skip to content

Nix

The flake lives in deploy/nix of the repository. It provides packages for x86_64 and aarch64 Linux and macOS, and a NixOS module.

flake.nix
{
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.frogg.url = "github:frogg-app/frogg?dir=deploy/nix";
outputs = { nixpkgs, frogg, ... }: {
nixosConfigurations.build-box = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
frogg.nixosModules.default
{
services.frogg = {
enable = true;
openFirewall = true;
hostnames = [ "build-box.lan" ];
environment.FROGG_LOG_LEVEL = "debug";
settings.daemon.mcp.injectIntoAgents = true;
};
}
];
};
};
}
Option Default Meaning
services.frogg.enable false Run the daemon as a systemd service
services.frogg.package the flake’s package Package to run
services.frogg.user, group frogg Service account
services.frogg.dataDir /var/lib/frogg (or /home/<user>/.frogg for another user) FROGG_HOME
services.frogg.port 9999 Listen port
services.frogg.listenAddress 0.0.0.0 Listen address
services.frogg.openFirewall false Open the port in the firewall
services.frogg.hostnames [] Allowed hostnames, or true
services.frogg.relay.enable false Connect to a relay (relay.host (required), relay.port (443), relay.useTls (true), relay.publicUseTls). Sets FROGG_RELAY_ENDPOINT, so the app shows the endpoint read-only
services.frogg.inheritUserEnvironment true when user is not frogg Give the service the user’s environment, so agent CLIs and logins are found
services.frogg.environment {} Extra environment variables
services.frogg.settings {} Written to config.json on every start

Agents need their CLIs and logins. The simplest setup runs the service as the user who has them:

services.frogg = {
enable = true;
user = "alice";
group = "users";
};

With user set, dataDir defaults to /home/alice/.frogg and the service inherits that user’s environment.

Terminal window
nix build "github:frogg-app/frogg?dir=deploy/nix"
./result/bin/frogg --version

The package installs frogg and frogg-server.

npmDepsHash is read from deploy/nix/npm-deps.hash. If your nixpkgs produces a different hash for the same lockfile, override it:

frogg.packages.x86_64-linux.default.override { npmDepsHash = "sha256-..."; }

For branded daemons, see Nix for custom brands.