diff options
| -rw-r--r-- | README.md | 33 | 
1 files changed, 32 insertions, 1 deletions
| @@ -15,7 +15,7 @@ krops is a lightweigt toolkit to deploy NixOS systems, remotely or locally.  Create a file named `krops.nix` (name doesn't matter) with following content: -``` +```nix  let    krops = (import <nixpkgs> {}).fetchgit {      url = https://cgit.krebsco.de/krops/; @@ -56,6 +56,37 @@ and run `$(nix-build --no-out-link krops.nix)` to deploy the target machine.  Under the hood, this will make the sources available on the target machine  below `/var/src`, and execute `nixos-rebuild switch -I /var/src`. +## Deployment Target Attribute + +The `target` attribute to `writeDeploy` can either be a string or an attribute +set, specifying where to make the sources available, as well as where to run +the deployment. + +If specified as string, the format could be described as: +``` +[[USER]@]HOST[:PORT][/SOME/PATH] +``` + +Portions in square brakets are optional. + +If the `USER` is the empty string, as in e.g. `@somehost`, then the username +will be obtained by SSH from its configuration files. + +If the `target` attribute is an attribute set, then it has to define the attributes +`host`, `path`, `port`, `sudo`, and `user`.  This allows to deploy to targets +that don't allow sshing in as root, but allow (preferably passwordless) sudo: + +```nix +pkgs.krops.writeDeploy "deploy" { +  source = /* ... */; +  target = lib.mkTarget "user@host/path" // { +    sudo = true; +  }; +} +``` + +For more details about the `target` attribute, please check the `mkTarget` +function in lib/default.nix.  ## Source Types | 
