Skip to content
forked from NixOS/nixops

NixOps, the NixOS-based cloud deployment tool

License

Notifications You must be signed in to change notification settings

doshitan/nixops

 
 

Repository files navigation

NixOps

NixOps (formerly known as Charon) is a tool for deploying NixOS machines in a network or cloud.

Developing

To start developing on nixops, you can run:

  $ ./dev-shell --arg p "(p: [ p.plugin1 ])"

Where plugin1 can be any available nixops plugin, and where none or more than one can be specified, including local plugins. An example is:

  $ ./dev-shell --arg p "(p: [ p.aws p.hetzner (p.callPackage ../myplugin/release.nix {})])"

Available plugins, such as "aws" and "hetzner" in the example above, are the plugin attribute names found in the data.nix file.

To update the available nixops plugins found in github repositories, edit the all-plugins.txt file with any new github plugin repositories that are available and then execute the update-all script. This will refresh the data.nix file, providing new plugin attributes to use.

Local nixops plugins, such as the callPackage ../myplugin/release.nix {} example seen above, have no need to be in the all-plugins.txt or data.nix file.

Building from source

The command to build NixOps depends on your platform and which plugins you choose:

  • nix-build release.nix -A build.x86_64-linux --arg p "(p: [ p.plugin1 ])" on 64 bit linux.
  • nix-build release.nix -A build.i686-linux --arg p "(p: [ p.plugin1 ])" on 32 bit linux.
  • nix-build release.nix -A build.x86_64-darwin --arg p "(p: [ p.plugin1 ])" on OSX.

Similarly, using NixOps from another project (for instance a nix-shell) can be done using:

stdenv.mkDerivation {
  name = "my-nixops-env";
  buildInputs = [
    (import /path/to/nixops/release.nix { p = (p: [ p.plugin1 ]); }).build.x86_64-linux
  ];
}

About

NixOps, the NixOS-based cloud deployment tool

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 74.1%
  • Nix 22.3%
  • Shell 3.6%