let krops = builtins.fetchGit { url = "https://cgit.krebsco.de/krops/"; }; lib = import "${krops}/lib"; pkgs = import "${krops}/pkgs" {}; importJson = (import {}).lib.importJSON; source = name: lib.evalSource [ { config.file = toString ./config/${name}; modules.file = toString ./modules; nixos-config.symlink = "config/configuration.nix"; secrets.pass = { dir = toString ~/.password-store/nixin-password-store/krops; name = "${name}"; }; nixpkgs.git = { ref = (importJson ./nixpkgs.json).rev; url = https://github.com/NixOS/nixpkgs; shallow = true; }; } ]; arachnide = pkgs.krops.writeDeploy "deploy-server-arachnide" { source = source "arachnide"; target = lib.mkTarget "douzeb@192.168.36.9" // { port = "144"; sudo = true; }; # only build the configuration and do not activate it for now (could also use writeTest instead of writeDeploy for doing that) # operation = "build"; }; dromadaire = pkgs.krops.writeDeploy "deploy-server-dromadaire" { source = source "dromadaire"; target = "root@192.168.36.6"; }; register-runner = pkgs.krops.writeCommand "register-forgejo-runner" { source = source "arachnide"; target = lib.mkTarget "douzeb@192.168.36.9" // { port = "144"; sudo = true; }; command = targetPath: '' forgejo forgejo-cli actions register --name local-runner --secret $(head -n 1 /var/src/secrets/forgejo-runner-secret) ''; }; gen-runner-token = pkgs.krops.writeCommand "generate-forgejo-runner-token" { source = source "arachnide"; target = lib.mkTarget "douzeb@192.168.36.9" // { port = "144"; sudo = true; }; command = targetPath: '' mkdir -p /etc/forgejo echo "TOKEN=$(forgejo forgejo-cli actions generate-runner-token)" > /etc/forgejo/runner.token cat /etc/forgejo/runner.token ''; }; in { arachnide = arachnide; dromadaire = dromadaire; all = pkgs.writeScript "deploy-all-servers" (lib.concatStringsSep "\n" [ arachnide dromadaire ]); register-runner = register-runner; gen-runner-token = gen-runner-token; }