48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{ pkgs, ... }:
|
|
{
|
|
boot.isNspawnContainer = true;
|
|
|
|
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [ "claude-code" ];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
hyperhive
|
|
claude-code
|
|
bashInteractive
|
|
git
|
|
coreutils-full
|
|
];
|
|
# claude's Bash tool refuses to run without a POSIX shell + $SHELL set.
|
|
environment.variables.SHELL = "${pkgs.bashInteractive}/bin/bash";
|
|
|
|
environment.etc."gitconfig".text = ''
|
|
[user]
|
|
name = hm1nd
|
|
email = hm1nd@hyperhive
|
|
[init]
|
|
defaultBranch = main
|
|
'';
|
|
|
|
systemd.services.hive-m1nd = {
|
|
description = "hive-m1nd manager harness";
|
|
wantedBy = [ "multi-user.target" ];
|
|
after = [ "network.target" ];
|
|
environment = {
|
|
HIVE_PORT = "8000";
|
|
HIVE_LABEL = "hm1nd";
|
|
};
|
|
# See note in agent-base.nix — `claude` and a POSIX shell have to be on
|
|
# the service PATH explicitly for the harness + claude's Bash tool.
|
|
path = [
|
|
pkgs.claude-code
|
|
pkgs.bashInteractive
|
|
];
|
|
environment.SHELL = "${pkgs.bashInteractive}/bin/bash";
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.hyperhive}/bin/hive-m1nd serve";
|
|
Restart = "on-failure";
|
|
RestartSec = 2;
|
|
};
|
|
};
|
|
|
|
system.stateVersion = "25.11";
|
|
}
|