{ config, pkgs, ... }:

let
  NODE_OPTIONS = "--max_old_space_size=4096";
in
{
  age.secrets.forgejo-runner-token-istal-docker.file = ./forgejo-runner-token-istal-docker.age;
  age.secrets.forgejo-runner-token-codeberg-docker.file = ./forgejo-runner-token-codeberg-docker.age;

  virtualisation.docker.enable = true;
  systemd.services.docker.serviceConfig = {
    CPUQuota = "50%"; # Ограничение для всего Docker демона?
  };

  services.gitea-actions-runner = {
    package = pkgs.unstable.forgejo-runner;
    instances = {
      istal-docker = {
        enable = true;
        name = "istal-docker";
        url = "https://git.pleshevski.ru";
        labels = [
          "docker:docker://node:20-bullseye"
          "ubuntu-22.04:docker://node:20-bullseye"
        ];
        tokenFile = config.age.secrets.forgejo-runner-token-istal-docker.path;
        settings = {
          runner = {
            envs = { inherit NODE_OPTIONS; };

            timeout = "1h";
          };
        };
      };
      codeberg-docker = {
        enable = true;
        name = "codeberg-docker";
        url = "https://codeberg.org";
        labels = [ ];
        tokenFile = config.age.secrets.forgejo-runner-token-codeberg-docker.path;
        settings = {
          runner = {
            envs = { inherit NODE_OPTIONS; };

            timeout = "1h";
          };
        };
      };
    };
  };

}