This repository contains a modular NixOS configuration designed to support multiple machines with profile support distributed across those machines.
flake.nix
: The main entry point for the NixOS configurations.lib
: Custom library of Nix functions.modules
: Contains reusable modules for both nixos and home-manager.outputs
: Literally the flake outputs, although it aggregrates through a series of many function calls.secrets
: Secures storage for sensitive information (e.g., API keys, passwords).vars
: Defined variables to be passed around through modules (e.g. users)..sops.yaml
: SOPS-NIX configurationLICENSE
: A standard MIT License for ease of distribution and modification.README.md
: This file, which provides an overview of the repository.
- Clone the repository:
git clone https://github.com/TahlonBrahic/nix-config.git .
- Define your own configuration in outputs or choose a pre-defined configuration:
nix --extra-experimental-features 'nix-command flakes' run github:LGUG2Z/JeezyVim ./_disko.nix
If you choose to use an already established configuration it is important to define your hardware specifications as either or a module or vars.
- Rebuild your system:
sudo nixos-rebuild switch --flake .#hostname
Replace hostname
with the appropriate hostname configured in ./outputs/architecture/src/hostname.nix
The following websites and/or content creators were the most influential in the help of the developement of this NixOS repository and my understanding of both NixOS and its language: