diff options
Diffstat (limited to '')
-rw-r--r-- | examples/darwin/README.md | 19 | ||||
-rw-r--r-- | examples/darwin/flake.nix | 39 |
2 files changed, 58 insertions, 0 deletions
diff --git a/examples/darwin/README.md b/examples/darwin/README.md new file mode 100644 index 0000000..b377ce8 --- /dev/null +++ b/examples/darwin/README.md @@ -0,0 +1,19 @@ +<!-- +SPDX-FileCopyrightText: 2023 Serokell <https://serokell.io/> + +SPDX-License-Identifier: MPL-2.0 +--> + +# Example nix-darwin system deployment + +## Prerequisites + +1) Install `nix` and `nix-darwin` (the latter creates `/run` sets up `/etc/nix/nix.conf` symlink and so on) + on the target machine. +2) Enable remote login on the mac to allow ssh access. +3) `deploy-rs` doesn't support password provisioning for `sudo`, so the `sshUser` should + have passwordless `sudo` access. + +## Deploying + +Run `nix run github:serokell/deploy-rs -- --ssh-user <user>`.
\ No newline at end of file diff --git a/examples/darwin/flake.nix b/examples/darwin/flake.nix new file mode 100644 index 0000000..d5d7ae8 --- /dev/null +++ b/examples/darwin/flake.nix @@ -0,0 +1,39 @@ +{ + description = "Deploy simple 'darwinSystem' to a darwin machine"; + + inputs.deploy-rs.url = "github:serokell/deploy-rs"; + inputs.darwin.url = "github:LnL7/nix-darwin"; + + outputs = { self, nixpkgs, deploy-rs, darwin }: { + darwinConfigurations.example = darwin.lib.darwinSystem { + system = "x86_64-darwin"; + modules = [ + ({lib, config, pkgs, ...}: { + services.nix-daemon.enable = true; + nix = { + settings = { + trusted-users = [ "rvem" ]; + }; + extraOptions = '' + experimental-features = flakes nix-command + ''; + }; + # nix commands are added to PATH in the zsh config + programs.zsh.enable = true; + }) + ]; + }; + deploy = { + # remoteBuild = true; # Uncomment in case the system you're deploying from is not darwin + nodes.example = { + hostname = "localhost"; + profiles.system = { + user = "root"; + path = deploy-rs.lib.x86_64-darwin.activate.darwin self.darwinConfigurations.example; + }; + }; + }; + + checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; + }; +} |