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