Guest User

Untitled

a guest
Jan 2nd, 2025
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. {
  2. description = "Hosting deployment profile";
  3.  
  4. inputs = {
  5. nixpkgs.url = "github:NixOS/nixpkgs/release-24.11";
  6. systems.url = "github:nix-systems/default";
  7. deploy-rs = {
  8. url = "github:serokell/deploy-rs";
  9. inputs.nixpkgs.follows = "nixpkgs";
  10. };
  11. sops-nix.url = "github:Mic92/sops-nix";
  12.  
  13. baz.url = "/home/liam/code/baz";
  14. foo.url = "/home/liam/code/foo";
  15. };
  16.  
  17. outputs = { self, nixpkgs, deploy-rs, systems, ... }@inputs:
  18. let
  19. forEachSystem = nixpkgs.lib.genAttrs (import systems);
  20. pkgs = forEachSystem (system: import nixpkgs { inherit system; });
  21. userInfo = import ./nodes/backend01/users.nix;
  22. in
  23. {
  24. devShells = forEachSystem (system: {
  25. default = pkgs.${system}.mkShell {
  26. buildInputs = with pkgs.${system}; [
  27. sops
  28. age
  29. ssh-to-age
  30. ];
  31. };
  32. });
  33.  
  34. nixosConfigurations.backend01 =
  35. let
  36. system = "aarch64-linux";
  37. in
  38. nixpkgs.lib.nixosSystem {
  39. inherit system;
  40. specialArgs = { inherit inputs system; };
  41. modules = [
  42. ./nodes/common.nix
  43. ./nodes/backend01/configuration.nix
  44. userInfo
  45. ];
  46. };
  47.  
  48. packages = forEachSystem
  49. (system:
  50. {
  51. foo = pkgs.${system}.buildEnv
  52. {
  53. name = "foo";
  54. paths = [ inputs.foo.packages.${system}.default ];
  55. };
  56. }
  57. );
  58.  
  59. deploy.nodes.backend01 = {
  60. hostname = "backend01.barhost.ca";
  61. fastConnection = true;
  62. remoteBuild = true;
  63. profilesOrder = [ "system" "foo" ];
  64. profiles = {
  65.  
  66. system = {
  67. sshUser = "deploy";
  68. user = "root";
  69. path =
  70. deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.backend01;
  71. };
  72.  
  73. foo =
  74. let
  75. user = self.nixosConfigurations.backend01.config.users.users.foo.name;
  76. in
  77. {
  78. inherit user;
  79. sshUser = user;
  80. path =
  81. deploy-rs.lib.aarch64-linux.activate.custom self.packages.aarch64-linux.foo "./bin/activate";
  82. };
  83.  
  84. };
  85. };
  86.  
  87. checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
  88. };
  89. }
  90.  
Advertisement
Add Comment
Please, Sign In to add comment