Files
rice-flakes/modules/hermes/hermes.nix
T
2026-07-09 10:15:06 -05:00

99 lines
2.0 KiB
Nix

{
inputs,
config,
pkgs,
username,
...
}:
{
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.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;
};
};
}