nix-helpers
nixos-infect
nix-helpers | nixos-infect | |
---|---|---|
2 | 20 | |
8 | 1,192 | |
- | - | |
7.5 | 6.7 | |
3 months ago | 9 days ago | |
Nix | Shell | |
Creative Commons Zero v1.0 Universal | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nix-helpers
-
NixOS RFC 136 accepted: A plan to stabilize the new CLI and Flakes incrementally
Yes, to get Nixpkgs it's much faster to use `fetchTarball`.
You're right that `builtins.fetchTarball` is faster than `builtins.fetchGit` (due to the ridiculous amount of commits in the Nixpkgs repo). I like to keep such definitions in a single, company-wide/project-agnostic git repo (what the Nix Pills series calls the "repository pattern"), and have individual projects import them via `builtins.fetchGit`.
Many years ago we didn't have `builtins.fetchGit`, so had to use the 'fetchgit' function from Nixpkgs instead. That created a chicken-and-egg situation if we wanted to take the Nixpkgs version from some other git repo; hence needing to "bootstrap" via `(import { config = {}; }).fetchgit`, and cross our fingers that `NIX_PATH` wasn't set to some crazy value (which, of course, I would inevitably do... https://github.com/Warbo/haskell-te/blob/24475a229908caa3447... )
Note that we need `config = {};` when importing Nixpkgs to avoid an impurity which tries to read files in $HOME. More recent versions of Nixpkgs also need `overlays = [];` to avoid another impurity (looks like this changed at Nixpkgs 17.03, according to https://github.com/Warbo/nix-helpers/blob/master/nixpkgs.nix )
-
The Curse of NixOS
Where nixpkgs2105 is a pinned revision of the Nixpkgs repo, defined in another overlay. My current Nix config has pinned Nixpkgs versions going back to 2016. For example, here's a bunch of such overrides:
https://github.com/Warbo/nix-config/blob/master/overrides/fi...
At the moment I'm using niv to manage the pinned Nixpkgs versions (the 'repoXXXX' entries):
https://github.com/Warbo/nix-helpers/blob/master/nix/sources...
nixos-infect
-
Ask HN: Please recommend how to manage personal serverss
There is one solution I've seen being used to solve this issue.
It is to overwrite the current Linux OS with the one you want. I came across this idea here [0]. I researched and got Alpine Linux running on Hetzner (even they don't support custom images) using a similar method [1].
This seems to be the guide to do the same with Arch Linux [2], I'm not sure though.
Once you do create a successful Arch image on OVH, take a snapshot of the machine before installing anything else, in case you want to start from a fresh Arch image in the future.
[0] https://github.com/elitak/nixos-infect
[1] https://wiki.alpinelinux.org/wiki/Replacing_non-Alpine_Linux...
[2] https://wiki.archlinux.org/title/Install_Arch_Linux_from_exi...
-
NixOS Friendly (Dedicated Server, VPS, Cloud, Container, VM, etc.) Hosters
Related:
https://www.reddit.com/r/NixOS/comments/u5gi6e/whats_a_good_...
https://github.com/elitak/nixos-infect
-
NixOS stability for everyday use and development
In my experience, the initial learning curve is "way steep" due to incomplete learning resources, the community being split on flakes (I'm not jumping on them yet because I'm sticking with the stable branch), and this one documentation gap in particular.
-
Tech Independence
FWIW, I recently found a VPS offering for $1.41/month (!) @ 1.5GB RAM & 30GB HDD via https://lowendbox.com/, at https://my.racknerd.com/index.php?rp=/store/black-friday-202... (please note I have no idea how reliable it is though!). I managed to deploy NixOS there through nixos-infect (https://github.com/elitak/nixos-infect), and then further configure it with NixOps. That said, using NixOps does currently require a Linux (or Mac, probably) box as the managing one, and some Nix-fu, which is definitely non-trivial. A draft (WIP) writeup on that, if you're interested: https://github.com/akavel/scribbles/blob/main/_drafts/202308...
-
NixOS RFC 136 accepted: A plan to stabilize the new CLI and Flakes incrementally
Those Linode instructions are about installing an OS from an installation ISO from Linode's rescue mode. -- I'd consider that more a 'plus' to Linode that you get to be able to install whatever unsupported Linux on Linode's VMs. But, of course it's not as smooth as the officially supported images.
Sibling comment mentions that NixOS provides ways to build VM images (e.g. https://github.com/nix-community/nixos-generators has a generator specifically for Linode).
Another option is to use nixos-infect, which will replace a Linux distribution with a NixOS distribution. https://github.com/elitak/nixos-infect
> At that point, I feel like all of the repeatability gains are gone. If I want to spin up a fresh server, I have to read a guide and set stuff up by hand?
Just as with ansible, "git pull to deploy". You'd keep a copy of your NixOS configuration.nix somewhere else, and would be able to apply it later.
> it really does let me just get a new VPS and deploy to it very fast
Using a tool you're familiar with to get the job done is going to be faster than learning to use a tool you're unfamiliar with.
I believe much of the use of NixOS is for hobby stuff, and for personal machines. (c.f. "In what environments do you use Nix", Development (1242) vs Home Server (845) vs Production (386) https://discourse.nixos.org/t/2022-nix-survey-results/18983).
-
Free Tier using custom images
for NixOS
- Is it possible to morph Debian into NixOS?
-
NixOS 23.05
Now that you both mention it though, I probably could've skipped the "Boot into the installer" step. I know nixos-infect can install in-place. I havent checked how they do it, but a lighter version that just adds nixos should be pretty easy using ZFS. It probably would've been possible for me to do replace the installer steps with something along the lines of:
-
What is the difference between NixOS and any other distro running the nix package manager?
You can execute nixos-rebuild on other distros but the NixOS modules and activation scripts expect it to run on NixOS system so it probably will not work (e.g. NixOS would want to control systemd, which would conflict with the distro). And if it did, you would no longer have the other distro but NixOS (see also nixos-infect).
- Is anyone here using nix with modern hardware? r
What are some alternatives?
aconfmgr - A configuration manager for Arch Linux
harbormaster
star-history - The missing star history graph of GitHub repos - https://star-history.com
tarsnap - Command-line client code for Tarsnap.
nix-fpga-tools
nixos-apple-silicon - Resources to install NixOS bare metal on Apple Silicon Macs
nvd
nixos-digitalocean - A minimal NixOS image builder for DigitalOcean.
nixos-beginners-handbook - The missing handbook for NixOS beginners
rocky-tools
nixpkgs-config - ~/.config/nixpkgs
nixos-anywhere - install nixos everywhere via ssh [maintainer=@numtide]