{ config, pkgs, lib, ... }: let cfg = config.custom.forgejo-actions-runner; settingsFormat = pkgs.formats.yaml { }; in { options = { custom.forgejo-actions-runner = { enable = lib.mkEnableOption "TPM supported ssh agent in go"; tokenFile = lib.mkOption { type = lib.types.path; }; settings = lib.mkOption { type = lib.types.submodule { freeformType = settingsFormat.type; }; default = { }; }; }; }; config = lib.mkIf cfg.enable { virtualisation.docker.enable = true; services.gitea-actions-runner.package = pkgs.forgejo-actions-runner; services.gitea-actions-runner.instances = { "git.xinyang.life" = { enable = true; url = "https://git.xinyang.life"; tokenFile = cfg.tokenFile; name = config.networking.hostName; labels = [ "debian-latest:docker://node:18-bullseye" "ubuntu-latest:docker://node:18-bullseye" "nix:docker://xiny/nix-runner:2.21.0-pkgs-23.11" ]; settings = { container.network = "host"; } // cfg.settings; }; }; }; }