# Forgejo { config, pkgs, lib, ... }: let inherit (lib) mkOption mkDefault; in { options = { nixin.forgejo-runner = { token-file = mkOption { type = lib.types.str; }; #token = mkOption { type = lib.types.str; }; url = mkOption { type = lib.types.str; }; }; }; config = { virtualisation.containers.enable = true; virtualisation.podman = { enable = true; # Create a `docker` alias for podman, to use it as a drop-in replacement #dockerCompat = true; # Required for containers under podman-compose to be able to talk to each other. defaultNetwork.settings.dns_enabled = true; }; services.gitea-actions-runner = { package = pkgs.forgejo-runner; instances.default = { enable = true; name = "local-runner"; url = "${config.nixin.forgejo-runner.url}"; tokenFile = "${config.nixin.forgejo-runner.token-file}"; #token = "${config.nixin.forgejo-runner.token}"; labels = [ # provide a debian base with nodejs for actions "debian-latest:docker://node:20-bookworm" # fake the ubuntu name, because node provides no ubuntu builds "ubuntu-latest:docker://node:20-bookworm" # nixos "nixos:docker://nixos/nix:latest" # provide native execution on the host #"native:host" ]; }; }; # Open ports in the firewall. networking.firewall.allowedUDPPorts = [ 53 ]; }; }