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 "operator@192.168.12.2" // { port = "144"; sudo = true; }; }; framboise = pkgs.krops.writeDeploy "deploy-server-framboise" { source = source "framboise"; target = lib.mkTarget "douzeb@192.168.36.14" // { port = "144"; sudo = true; }; }; grille-pain = pkgs.krops.writeDeploy "deploy-server-grille-pain" { source = source "grille-pain"; target = lib.mkTarget "douzeb@192.168.36.15" // { port = "144"; sudo = true; }; }; 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-token-arachnide = pkgs.krops.writeCommand "generate-token-arachnide" { 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 ''; }; gen-token-framboise = pkgs.krops.writeCommand "generate-token-framboise" { source = source "arachnide"; target = lib.mkTarget "douzeb@192.168.36.14" // { 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; framboise = framboise; grille-pain = grille-pain; dromadaire = dromadaire; all = pkgs.writeScript "deploy-all-servers" (lib.concatStringsSep "\n" [ arachnide framboise grille-pain dromadaire ]); register-runner = register-runner; gen-token-arachnide = gen-token-arachnide; gen-token-framboise = gen-token-framboise; }