NixOS is an advanced GNU/Linux distribution featuring declarative configuration and atomic upgrades. You can learn more on nixos.org.
In this repository are the configurations of my NixOS machines.
You can find the configurations from other people in the nixos.wiki.
My workflow with this code is to rsync
it to the machine and symlink the system configuration.
[davidak@X230:~]$ rsync -ah --delete --progress /home/davidak/code/nixos-config/ [email protected]:nixos/
[root@nixos:~]# rm /etc/nixos/configuration.nix
[root@nixos:~]# ln -s /root/nixos/machines/compaq_dc7800/configuration.nix /etc/nixos/configuration.nix
[root@nixos:~]# nixos-rebuild switch
This way i can test a change before committing it to the git repository. To update the configuration, just use the first and last command.
For new machines, follow the install instructions in the manual and extend it with inspirations from the machines here.
I use the latest stable release nixos
channel to have a reliable system and the nixos-unstable
channel to get the latest version for some packages. I also use nixos-hardware
channel for hardware specific settings and home-manager
for user specific configuration.
Add the channels with this commands:
nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
nix-channel --add https://github.com/NixOS/nixos-hardware/archive/master.tar.gz nixos-hardware
nix-channel --add https://github.com/rycee/home-manager/archive/release-20.03.tar.gz home-manager
nix-channel --update
(execute as root or with sudo)
References:
- https://nixos.wiki/wiki/FAQ#How_can_I_install_a_package_from_unstable_while_remaining_on_the_stable_channel.3F
- https://github.com/NixOS/nixos-hardware
Here are the configuration.nix
files for my machines. See their README for detailed description.
User specific configuration including dotfiles using Home Manager.
Options for specific domains like server
, desktop
or video-production
.
Default service configurations.
My personal NixOS modules.
My personal Nix packages.
This repository is maintained by davidak.
When you see ways to improve my configurations, create an issue or pull request.
Consider sharing your configuration as well, so we can learn from each other!
Copyright (C) 2015 davidak
Licensed under the MIT license to be compatible with nixpkgs.