-
There is this: https://github.com/nix-community/nixd
It has jump to definition and autocomplete. Which is very nice.
It's not perfect. But it's pretty good
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
Maybe I'm missing something, but the only branch in github:nixos/nixpkgs I can see receiving fixes is the 24.05 branch getting fixes backported from unstable. The last commit I can see to the 23.11 branch is about 3 months ago
This would imply only 9 months of security patches before I would need to upgrade the server. That is of course a far less risky process with NixOS, so perhaps that is ok, but it is a lot more work than the 5 years you get (free) with Ubuntu/Debian
https://github.com/NixOS/nixpkgs/branches/active
-
I haven't tried it personnally but Guix is similar with config in guile scheme. Have a look at the documentation [1].
Caveat: it is a gnu project so no proprietary stuff like firmwares and drivers included out of the box (but there is a community guix nonfree project available [2]).
[1] guix cookbook: https://guix.gnu.org/cookbook/en/html_node/index.html#Top
guix manual: https://guix.gnu.org/manual/en/html_node/index.html#Top
[2] https://github.com/guix-users/guix-nonfree
-
One technique employed by microvm.nix[0] is to mount the hosts /nix/store into the guest. This won't shrink the size of the system, but should allow it to be amortized across many different VMs.
I'm not sure how exploitable a read-only virtiofs share is, so this is perhaps not appropriate in some circumstances.
[0]: https://github.com/astro/microvm.nix
-
kit
Exported, Nix-based monorepo tooling from TVL. In use for our repo at https://code.tvl.fyi (by tvlfyi)
The nix repl can be a very valuable tool in answering these questions.
That said, I strive to structure my nix source so that portions of it can easily be pasted into a repl. ReadTree goes a long way in that regard: https://github.com/tvlfyi/kit/tree/canon/readTree
More to your point, though: I think a lot is possible. Although nix is very dynamic, it is also, for all intents and purposes, side effect free. I've had this idea that a sufficiently advanced IDE should be able to evaluate your nix code and tell you exactly what the possible values (not just types, but value!) are for any particular variable.
-
Have you taken a look at https://github.com/nix-community/srvos ? It’s a collection of profiles for servers by the Numtide folks.
-
I find the nix language to be quite pleasant. There are some syntax quirks and types would be nice, but in general the “json with functions” vibe is imo great and a very nice fit for the domain. Lots of other modern config languages (e.g. dhall, jsonnet) have ended up in this part of the design space too.
With that said tweag has been working on a kind of nix 2.0 / nix with types for a while with the aim (I think) of being able to use it in nixpkgs: https://github.com/tweag/nickel
-
https://github.com/nix-community/nixos-anywhere
(There's also a terraform module )
-
-
-
agenix-rekey
An agenix extension adding secret generation and automatic rekeying using a YubiKey or master-identity
https://github.com/oddlama/agenix-rekey
The ecosystem is in my experience very well fleshed out (7 yrs of use), as long as you don't require a knowledgebase/wiki/ up2date documentation, it's not been a issue for me since I could always fall back on Linux knowledge and just looking for how other distributions do x / how the thing itself is configured , and looking at how perhaps a existing nix module wraps that
-
Yep for sure! We even have a neat upload-ami cli tool:
https://github.com/NixOS/amis
-
Hmm OK. I already had it on github so I'll just make it public:
https://github.com/kstenerud/proxmox-containers
-
This is inherently a Hard Problem™, since completions may require evaluating arbitrary derivations (e.g. building a custom Linux kernel).
For "what symbols are available", the nil LSP implementation[1] works for anything in scope that doesn't require evaluation. It also includes completions for the stdlib and NixOS options (in certain contexts).
Another LSP implementation is nixd[2], which is trying to tackle the problem of evaluations for completion.
[1] https://github.com/oxalica/nil/
-
There is https://search.nixos.org/ and on the command line you can play around with:
$ nix repl
nix-repl> :l
nix-repl> {press tab for auto-complete}
-
garn
garn is a build tool and environment manager that replaces justfiles/makefiles, docker, and the annoying parts of READMEs. The builders lingua franca.