Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/awakesecurity/nix-deploy
Deploy software or an entire NixOS system configuration to another NixOS system
https://github.com/awakesecurity/nix-deploy
command-line-tool haskell nix nixos
Last synced: about 1 month ago
JSON representation
Deploy software or an entire NixOS system configuration to another NixOS system
- Host: GitHub
- URL: https://github.com/awakesecurity/nix-deploy
- Owner: awakesecurity
- License: other
- Created: 2017-11-13T22:40:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T23:14:21.000Z (over 2 years ago)
- Last Synced: 2024-09-28T09:21:24.371Z (about 1 month ago)
- Topics: command-line-tool, haskell, nix, nixos
- Language: Haskell
- Homepage:
- Size: 42 KB
- Stars: 169
- Watchers: 31
- Forks: 10
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# `nix-deploy`
Deploy a NixOS system configuration with `nix-deploy system ...` to a remote
machine and switch the machine to that system configuration. You can also deploy
a nix store path with `nix-deploy path ...` to a remote machine or from a remote
machine.This tool is often used in conjunction with [`nix-delegate`](https://github.com/awakesecurity/nix-delegate).
```shell
$ nix-deploy --help
Deploy software or an entire NixOS system configuration to another NixOS systemUsage: nix-deploy (path | system)
Available options:
-h,--help Show this help textAvailable commands:
path
system
``````shell
$ nix-deploy path --help
Usage: nix-deploy path (--to USER@HOST | --from USER@HOST) [--sudo] [--noSign]
[--path FILEPATH] [--profilePath FILEPATH]
[--profileName LINE]Available options:
-h,--help Show this help text
--to USER@HOST Deploy software to this address (ex:
[email protected])
--from USER@HOST Deploy software from this address (ex:
[email protected])
--sudo Prepend with sudo
--noSign Don't sign payload (not recommended)
--path FILEPATH Path to deploy
--profilePath FILEPATH Path to parent profile directory (default:
/nix/var/nix/profiles)
--profileName LINE Name of profile to set (example: upgrade-tools)
``````shell
$ nix-deploy system --help
Usage: nix-deploy system (--to USER@HOST | --from USER@HOST) [--noSign]
[--path FILEPATH] [--systemName LINE] ([--switch] |
[--boot] | [--test] | [--dry-activate] | [--reboot])Available options:
-h,--help Show this help text
--to USER@HOST Deploy software to this address (ex:
[email protected])
--from USER@HOST Deploy software from this address (ex:
[email protected])
--noSign Don't sign payload (not recommended)
--path FILEPATH Path to deploy
--systemName LINE Alternative system profile name (default: system)
```## Usage example
```shell
$ nix-deploy --to parnell@remote-server --path $(nix-build --no-out-link --attr foo ~/Development/bar/release.nix)
[+] Downloading: /etc/nix/signing-key.sec
[+] Installing: /etc/nix/signing-key.sec
[+] Downloading: /etc/nix/signing-key.pub
[+] Installing: /etc/nix/signing-key.pub
copying 178 missing paths (474.70 MiB) to ‘parnell@remote-server’...
...
[+] Copying /nix/store/q4c3avwb0szbsg8pkv7x32gcqz4g0wwa-foo-0.1.0.0copying 4 missing paths (31.83 MiB) to ‘parnell@remote-server’...
```