{ pkgs, config, ... }:

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

    instances.default = {
      enable = true;

      name = config.networking.fqdn;
      url = "https://git.fediversity.eu";
      token = "MKmFPY4nxfR4zPYHIRLoiJdrrfkGmcRymj0GWOAk";

      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;

  ## The Nix configuration of the system influences the Nix configuration
  ## in the workflow, and our workflows are often flake-based.
  nix.extraOptions = ''
    experimental-features = nix-command flakes
  '';
}