Files
rice-flakes/modules/hermes/hermes.nix
T
2026-07-09 11:18:29 -05:00

119 lines
2.6 KiB
Nix

{
inputs,
config,
pkgs,
...
}:
{
imports = [ inputs.hermes-agent.nixosModules.default ];
services.hermes-agent = {
enable = true;
addToSystemPackages = true;
environmentFiles = [
config.age.secrets.hermes-env.path
];
container = {
image = "debian:bookworm";
backend = "docker";
enable = true;
hostUsers = [ "poslop" ];
extraOptions = [
"-p"
"9119:9119"
"-p"
"8642:8642"
];
};
settings = {
approvals = {
mode = "off";
cron_mode = "deny";
mcp_reload_confirm = "false";
};
memory = {
memory_enabled = true;
user_profile_enabled = true;
};
model_aliases = {
bedrock = {
model = "us.anthropic.claude-sonnet-4-6";
provider = "bedrock";
};
};
bedrock = {
discovery = {
enable = true;
provider_filter = [ "anthropic" ];
};
};
custom_providers = [
{
name = "local";
base_url = "http://10.0.1.139:42069/v1";
}
];
discord = {
group_sessions_per_user = false;
reactions = false;
};
dashboard = {
basic_auth = {
username = "poslop";
password_hash = "scrypt$16384$8$1$XpurTBPYAwR7lqHEXjmudg==$1tKObL9EWptqLNHjCyTX+phYB7Qp0RuIgF2X8C/jO0A=";
};
};
};
};
networking.firewall.allowedTCPPorts = [
9119
8642
];
systemd = {
paths.hermes-perms-watch = {
description = "Watch hermes data dir for permission changes";
wantedBy = [ "multi-user.target" ];
pathConfig = {
PathChanged = "/var/lib/hermes/.hermes";
Unit = "hermes-perms-fix.service";
};
};
services = {
hermes-dashboard = {
description = "Hermes Agent Web Dashboard";
after = [ "hermes-agent.service" ];
bindsTo = [ "hermes-agent.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.docker}/bin/docker exec -u hermes hermes-agent /data/current-package/bin/hermes dashboard --host 0.0.0.0 --port 9119 --no-open";
Restart = "on-failure";
RestartSec = 5;
StartLimitIntervalSec = 60;
StartLimitBurst = 3;
};
};
hermes-perms-fix = {
description = "Fix hermes data dir permissions";
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.coreutils}/bin/chmod 770 -R /var/lib/hermes/.hermes";
};
};
};
};
}