119 lines
2.6 KiB
Nix
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|