{"id":13557963,"url":"https://github.com/NixOS/nixops","last_synced_at":"2025-04-03T12:31:23.058Z","repository":{"id":37412493,"uuid":"2637203","full_name":"NixOS/nixops","owner":"NixOS","description":"NixOps is a tool for deploying to NixOS machines in a network or cloud.","archived":false,"fork":false,"pushed_at":"2024-04-10T11:14:58.000Z","size":7027,"stargazers_count":1846,"open_issues_count":328,"forks_count":365,"subscribers_count":57,"default_branch":"master","last_synced_at":"2024-10-29T14:38:05.736Z","etag":null,"topics":["aws","cloud","devops","digialocean","gce","hetzner","libvirt","nix","nixops","nixos","python","virtualbox"],"latest_commit_sha":null,"homepage":"https://nixos.org/nixops","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NixOS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null},"funding":{"open_collective":"nixos"}},"created_at":"2011-10-24T15:49:58.000Z","updated_at":"2024-10-28T18:19:52.000Z","dependencies_parsed_at":"2023-02-18T21:01:05.760Z","dependency_job_id":"63b34adc-a6a2-429e-9c81-c370571aef6f","html_url":"https://github.com/NixOS/nixops","commit_stats":{"total_commits":3172,"total_committers":175,"mean_commits":"18.125714285714285","dds":0.8029634300126103,"last_synced_commit":"5374247f3a6aecbac561d162f2b8e9bee0a8ab0a"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NixOS%2Fnixops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NixOS","download_url":"https://codeload.github.com/NixOS/nixops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247002320,"owners_count":20867443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cloud","devops","digialocean","gce","hetzner","libvirt","nix","nixops","nixos","python","virtualbox"],"created_at":"2024-08-01T12:04:39.018Z","updated_at":"2025-04-03T12:31:22.124Z","avatar_url":"https://github.com/NixOS.png","language":"Python","readme":"# NixOps\n\n\u003e [!Warning]\n\u003e NixOps is in low-maintenance mode and probably not suited for new projects. Use at your own risks.\n\n\u003e [!Note]\n\u003e An experimental rewrite of NixOps is happening under https://github.com/nixops4/nixops4\n\n[![Test](https://github.com/NixOS/nixops/workflows/CI/badge.svg)](https://github.com/NixOS/nixops/actions)\n\n_NixOps_ is a tool for deploying to [NixOS](https://nixos.org) machines in a network or the cloud. Key features include:\n\n- **Declarative**: NixOps determines and carries out actions necessary to realise a deployment configuration.\n- **Testable**: Try your deployments on [VirtualBox](https://github.com/nix-community/nixops-vbox) or [libvirtd](https://github.com/nix-community/nixops-libvirtd).\n- **Multi Cloud Support**: Currently supports deployments to [AWS](https://github.com/NixOS/nixops-aws), [Hetzner](https://github.com/NixOS/nixops-hetzner), and [GCE](https://github.com/AmineChikhaoui/nixops-gce)\n- **Separation of Concerns**: Deployment descriptions are divided into _logical_ and _physical_ aspects. This makes it easy to separate parts that say _what_ a machine should do from _where_ they should do it.\n- **Extensible**: _NixOps_ is extensible through a plugin infrastructure which can be used to provide additional backends.\n\nFor more information, please refer to the [NixOps manual](https://nixos.org/nixops/manual/).\n\n### Running\n\n_NixOps_ is included in nixpkgs and can be executed in a shell as follows:\n\n```\n$ nix-shell -p nixops\n```\n\nor for a bleeding edge version, including many fixes relative to the 1.7 series,\n\n```\n$ nix-shell -p nixopsUnstable\n```\n\nYou may need access to a Nix remote builder if your system does not support the deployment's `system` builds directly. MacOS users may use a virtual machine with NixOS for this purpose.\n\nIt is also possible to use cross-compilation with NixOps, by setting `nixpkgs.localSystem` and `nixpkgs.crossSystem`. A mix of remote, emulated and cross builds is also possible; see [this writeup on eno.space](https://eno.space/blog//2021/08/nixos-on-underpowered-devices).\n\n### Building And Developing\n\n#### Building The Nix Package\n\nYou can build the Nix package by simply invoking `nix-build` on the project root:\n\n```\n$ nix-build\n```\n\n#### Development Shell\n\n`shell.nix` provides an environment with all dependencies required for working on _NixOps_. You can use `nix-shell` to\nenter a shell suitable for working on _NixOps_ which will contain all Python dependencies specified in [pyproject.toml](./pyproject.toml)\n\n```\n$ nix-shell\n```\n\n#### Executing Tests\n\nInside the development shell the tests can be executed as follows:\n\n```\n$ pytest\n```\n\n#### Documentation\n\nNixOps' documentation uses reStructuredText. When editing the docs,\nget a live-reloading, rendered version of the docs:\n\n```\nnixops$ ./live-docs.py\nServing on http://127.0.0.1:5500\n```\n\nand verify its lints before committing:\n\n```\nnixops$ lint-docs\n```\n\n### Contributing\n\nContributions to the project are welcome in the form of GitHub PRs. Please consider the following guidelines before creating PRs:\n\n- Please make sure to format your code using [black](https://github.com/psf/black).\n- Please add type signatures using [mypy](http://mypy-lang.org/).\n- If you are planning to make any considerable changes, you should first present your plans in a GitHub issue so it can be discussed.\n- If you are adding features, please also add reasonable tests.\n\n### License\n\nLicensed under [LGPL-3.0](./COPYING).\n","funding_links":["https://opencollective.com/nixos"],"categories":["Python","Python (144)","Deployment Tools","devops","cloud","Open Source Repos"],"sub_categories":["DevOps","Discovery"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNixOS%2Fnixops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNixOS%2Fnixops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNixOS%2Fnixops/lists"}