{ 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; }; }; }