{ pkgs, config, ... }:

{
  services.gitea-actions-runner = {
    package = pkgs.forgejo-actions-runner;

    instances.default = {
      enable = true;

      name = config.networking.fqdn;
      url = "https://git.fediversity.eu";
      tokenFile = config.age.secrets.forgejo-runner-token.path;

      settings = {
        log.level = "info";
        runner = {
          file = ".runner";
          capacity = 24;
          timeout = "3h";
          insecure = false;
          fetch_timeout = "5s";
          fetch_interval = "2s";
        };
      };

      ## This runner supports Docker (with a default Ubuntu image) and native
      ## modes. In native mode, it contains a few default packages.
      labels = [
        "docker:docker://node:16-bullseye"
        "native:host"
      ];

      hostPackages = with pkgs; [
        bash
        git
        nix
        nodejs
      ];
    };
  };

  ## For the Docker mode of the runner.
  virtualisation.docker.enable = true;
}
