This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / 2configs / opencrow.nix
2.6 kB 96 lines
1{ 2 self, 3 config, 4 pkgs, 5 ... 6}: 7let 8 opencrow = self.inputs.opencrow.packages.${pkgs.system}.opencrow; 9 pi = self.inputs.llm-agents.packages.${pkgs.system}.pi; 10in 11{ 12 users.users.bot = { 13 isNormalUser = true; 14 home = "/home/bot"; 15 createHome = true; 16 group = "users"; 17 useDefaultShell = true; 18 openssh.authorizedKeys.keys = [ 19 self.keys.ssh.barnacle.public 20 self.keys.ssh.yubi_pgp.public 21 self.keys.ssh.yubi1.public 22 self.keys.ssh.yubi2.public 23 self.keys.ssh.solo2.public 24 self.keys.ssh.xerxes.public 25 self.keys.ssh.massulus.public 26 ]; 27 packages = [ 28 opencrow 29 pi 30 pkgs.curl 31 pkgs.jq 32 pkgs.lynx 33 ]; 34 }; 35 36 clan.core.vars.generators.opencrow = { 37 prompts.matrix-access-token = { 38 description = "Matrix access token for @opencrow:lassul.us - register via synapse admin API using the registration_shared_secret"; 39 type = "hidden"; 40 }; 41 files."opencrow.env" = { }; 42 script = '' 43 cat > "$out/opencrow.env" << EOF 44 OPENCROW_MATRIX_ACCESS_TOKEN=$(cat $prompts/matrix-access-token) 45 EOF 46 ''; 47 }; 48 49 systemd.services.opencrow = { 50 description = "OpenCrow Matrix Bot"; 51 wantedBy = [ "multi-user.target" ]; 52 after = [ "network-online.target" ]; 53 wants = [ "network-online.target" ]; 54 55 path = [ 56 opencrow 57 pi 58 pkgs.bash 59 pkgs.coreutils 60 pkgs.curl 61 pkgs.jq 62 pkgs.lynx 63 ]; 64 65 environment = { 66 OPENCROW_MATRIX_HOMESERVER = "https://matrix.lassul.us"; 67 OPENCROW_ALLOWED_USERS = "@lassulus:lassul.us"; 68 OPENCROW_MATRIX_USER_ID = "@opencrow:lassul.us"; 69 OPENCROW_MATRIX_DEVICE_ID = "AYBPKDHIDV"; 70 OPENCROW_PI_SESSION_DIR = "/home/bot/opencrow/sessions"; 71 OPENCROW_PI_WORKING_DIR = "/home/bot/opencrow"; 72 OPENCROW_PI_SKILLS = "${opencrow}/share/opencrow/skills/web"; 73 OPENCROW_PI_SKILLS_DIR = "/home/bot/skills"; 74 OPENCROW_HEARTBEAT_INTERVAL = "10m"; 75 OPENCROW_SOUL_FILE = "${opencrow}/share/opencrow/SOUL.md"; 76 PI_CODING_AGENT_DIR = "/home/bot/opencrow/pi-agent"; 77 }; 78 79 serviceConfig = { 80 EnvironmentFile = config.clan.core.vars.generators.opencrow.files."opencrow.env".path; 81 ExecStart = "${opencrow}/bin/opencrow"; 82 Restart = "on-failure"; 83 RestartSec = 10; 84 User = "bot"; 85 Group = "users"; 86 WorkingDirectory = "/home/bot/opencrow"; 87 }; 88 }; 89 90 # ensure working directory exists 91 systemd.tmpfiles.rules = [ 92 "d /home/bot/opencrow 0750 bot users -" 93 "d /home/bot/opencrow/sessions 0750 bot users -" 94 "d /home/bot/opencrow/pi-agent 0750 bot users -" 95 ]; 96}