CEOUX7SJMJXGN4SC6UZ3DN72RBPLEZVCHOL3TI6LZSEC5J2P57BAC T3QBTKJZND4HTXKHQUMY3GYSRTHLTI77YGKXLC2RSGI2ZMRRLYDAC 5YWPZ2DSSOUZE4ZNS7QSDQE7NF3JYNGHEH75YOIAR7HOUTYAYUFQC 5JI4WLG7FWLBUXYCOJ6UU5PMRDYMNDMJ2AIVF4PJPWFHZZZLCGKQC B4J4KJXLDXXL6RUF3G5OIN75UXHLE3PB47MCBJ55RMF3F65IR4OQC 376IPKLC26EILJWYLCGA2UJEIH3XG3HCZA4EEZAQ44KMS5CNSUYQC RTBMBSBABSGTRICJ4AWBKWO3JJHBRKV6FGOMYPDD7X6SS6X35ZIQC K2QR5DH4B46SHW4YYNROPVXPNQ7PYEUL6ZNILU3CDHJBYJFZLBNAC 7GPZN4W5ILYQCEIRH4VXSKQ63JRU5A7IQX3LIEFXXUKN4AZM56JQC UH6ZL2HFCGZTK5LBAIWXYWP7F7ZO5ZY3OLHVCY6DOCDSH6ATSILQC TF7L7GT4UDTRC4YFK4RBXRJYK5SNTPNGDFOPLLKLEDK27GA3GAEQC 3BGH2TFCMNYZDBD2EUTGHSU3GO7A5S7JNPQQYTFI3I6BIOBPWTNQC DQ2BBVBEIWYKU54ZUIVE6LKAWG7HLIONVXEJVEUPGQGH6V3VAFIAC MYUBGFXQIHTXLR5F5A7ULNZHKZTWZ2O3FNIAFEK63AZOWBBKEO7QC HYBPXVO2BD6SK7IVFLS6YZFEN2HMSZDALXIUCJGSKVB3LYMLCWJAC U4YZ4PX7TPXHSM2BAYGLP26ZRKUV3CAGQ52J7WX2JDS4GKPFCLDAC CSG2VQG5JHDIRDRDB5BHCTLWZ7LRQDLOMATR7D67HSTRFEDYLDCAC XPKDQGFUFF4BT32ODPEJRZGBEOGZVDRAEN2EOWU7DBIN2QQX6KUAC 4R56PJDQPYZ5FLFAMZSNY7UI5TKF6N5YCHCJU3ZBV5FHB46GYM5QC IBVEQMEGESMK2XG57I3GJHWSBWOPLC5LURET4PS6URA465F4F67QC KOXYNEPMHOWPUOUDAIDAVC2ZPUCLFGN23BM6QJ4UIDGVN73SUO7AC LYEDM2AG74FSFHLK5J4ZPYJVT2VTQBKA6BPP2W6LWR3GBQM76PDAC IWFDDZQDLBZCSPQP3O2AWL5IHHM7KG5KL5JF7QG5AFLXSPLQQUTAC QLNAG54SY2IRDB6QKQSTAPUTTL7RY6W65CQEW62Z5F7CAVSL4UNQC 47PYJSHOM4S3MOFQOWE67T3PI7XYH3RRXUB3Q43WK3ASFCKC65QAC SBIL66XUEAYRITCGPQUNJUUVUWOFPDD4Q3F2POQRBNMS6GDUZAPQC R6GGCI2NTP5I47FC7DCPEGA645PIKD6CGUBG2DMYEO36XHESUYGAC age.secrets.z-ai-key2 = {rekeyFile = self + /secrets/z-ai-key.age;
url = mkOption {type = types.str;default = "https://git.plumj.am/";description = "Forgejo instance URL";};labels = mkOption {type = types.listOf types.str;default = [ "self-hosted:host" ];description = "Runner labels";};extraHostPackages = mkOption {type = types.listOf types.package;default = [ ];description = "Extra packages to add to the runner";};withDocker = mkOption {type = types.bool;default = false;description = "Include docker and docker-compose";};
services.gitea-actions-runner = {package = pkgs.forgejo-runner;instances.${config.networking.hostName} = enabled {name = config.networking.hostName;tokenFile = config.age.secrets.forgejoRunnerToken.path;url = "https://git.plumj.am/";labels = ["plum:host""docpad-infra:host""self-hosted:host"];
config = mkIf config.ci-runner.enable {users.groups.gitea-runner = {};
hostPackages = [(inputs.fenix.packages.${pkgs.stdenv.hostPlatform.system}.complete.withComponents [ # Nightly."cargo""clippy""miri""rustc""rust-analyzer""rustfmt""rust-std""rust-src"])
services.gitea-actions-runner = {package = pkgs.forgejo-runner;instances.${config.networking.hostName} = enabled {name = config.networking.hostName;tokenFile = config.ci-runner.tokenFile;url = config.ci-runner.url;labels = config.ci-runner.labels;
pkgs.bashpkgs.curlpkgs.dockerpkgs.docker-composepkgs.forgejo-clipkgs.gcc # Fixes cc linker not found errors.pkgs.gitpkgs.gnutar # For cache processes.pkgs.gzip # ...pkgs.justpkgs.jqpkgs.nixpkgs.nodejspkgs.nushellpkgs.opencodepkgs.opensslpkgs.pkg-configpkgs.ripgreppkgs.sqlx-clipkgs.whichpkgs.xz];
hostPackages = [(inputs.fenix.packages.${pkgs.stdenv.hostPlatform.system}.complete.withComponents ["cargo""clippy""miri""rustc""rust-analyzer""rustfmt""rust-std""rust-src"])inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.defaultpkgs.bashpkgs.curlpkgs.forgejo-clipkgs.gccpkgs.gitpkgs.gnutarpkgs.gzippkgs.justpkgs.jqpkgs.nixpkgs.nodejspkgs.nushellpkgs.opencodepkgs.opensslpkgs.pkg-configpkgs.ripgreppkgs.sqlx-clipkgs.whichpkgs.xz] ++ lib.optionals config.ci-runner.withDocker [pkgs.dockerpkgs.docker-compose] ++ config.ci-runner.extraHostPackages;};
age.secrets.forgejoRunnerToken.rekeyFile = self + /secrets/plum-forgejo-runner-token.age;ci-runner = enabled {tokenFile = config.age.secrets.forgejoRunnerToken.path;url = "https://git.plumj.am/";labels = ["plum:host""docpad-infra:host""self-hosted:host"];withDocker = true;};
in {};};}services.gitea-actions-runner = {package = pkgs.forgejo-runner;instances.${config.networking.hostName} = enabled {name = config.networking.hostName;tokenFile = config.age.secrets.forgejoRunnerToken.path;url = "https://git.plumj.am/";hostPackages = ["cargo""clippy""miri""rustc""rustfmt""rust-std""rust-src"])inputs.claude-code.packages.${pkgs.stdenv.hostPlatform.system}.default"rust-analyzer"pkgs.bashpkgs.curlpkgs.gitpkgs.nixpkgs.nodejspkgs.xz];pkgs.nushellpkgs.opencodepkgs.opensslpkgs.pkg-configpkgs.sqlx-clipkgs.whichpkgs.ripgreppkgs.gnutar # For cache processes.pkgs.gzip # ...pkgs.justpkgs.jqpkgs.forgejo-clipkgs.gcc # Fixes cc linker not found errors.(inputs.fenix.packages.${pkgs.stdenv.hostPlatform.system}.complete.withComponents [ # Nightly.settings.cache.enabled = false;labels = ["kiwi:host""self-hosted:host"];"docpad-infra:host"age.secrets.forgejoRunnerToken.rekeyFile = self + /secrets/plum-forgejo-runner-token.age;inherit (lib) enabled;{ self, pkgs, lib, config, inputs, ... }: let