Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- description = "Hosting deployment profile";
- inputs = {
- nixpkgs.url = "github:NixOS/nixpkgs/release-24.11";
- systems.url = "github:nix-systems/default";
- deploy-rs = {
- url = "github:serokell/deploy-rs";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- sops-nix.url = "github:Mic92/sops-nix";
- baz.url = "/home/liam/code/baz";
- foo.url = "/home/liam/code/foo";
- };
- outputs = { self, nixpkgs, deploy-rs, systems, ... }@inputs:
- let
- forEachSystem = nixpkgs.lib.genAttrs (import systems);
- pkgs = forEachSystem (system: import nixpkgs { inherit system; });
- userInfo = import ./nodes/backend01/users.nix;
- in
- {
- devShells = forEachSystem (system: {
- default = pkgs.${system}.mkShell {
- buildInputs = with pkgs.${system}; [
- sops
- age
- ssh-to-age
- ];
- };
- });
- nixosConfigurations.backend01 =
- let
- system = "aarch64-linux";
- in
- nixpkgs.lib.nixosSystem {
- inherit system;
- specialArgs = { inherit inputs system; };
- modules = [
- ./nodes/common.nix
- ./nodes/backend01/configuration.nix
- userInfo
- ];
- };
- packages = forEachSystem
- (system:
- {
- foo = pkgs.${system}.buildEnv
- {
- name = "foo";
- paths = [ inputs.foo.packages.${system}.default ];
- };
- }
- );
- deploy.nodes.backend01 = {
- hostname = "backend01.barhost.ca";
- fastConnection = true;
- remoteBuild = true;
- profilesOrder = [ "system" "foo" ];
- profiles = {
- system = {
- sshUser = "deploy";
- user = "root";
- path =
- deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.backend01;
- };
- foo =
- let
- user = self.nixosConfigurations.backend01.config.users.users.foo.name;
- in
- {
- inherit user;
- sshUser = user;
- path =
- deploy-rs.lib.aarch64-linux.activate.custom self.packages.aarch64-linux.foo "./bin/activate";
- };
- };
- };
- checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment