NixOS configuration management
Top 90.9% on sourcepulse
This repository provides a personal NixOS configuration, designed for users who want to manage their system declaratively. It offers a reproducible setup for NixOS and can also be used to bootstrap Nix and Home Manager on non-NixOS systems like Ubuntu.
How It Works
The configuration leverages Nix flakes for managing dependencies and system state. It uses Home Manager to manage user-specific configurations, including dotfiles and installed packages, ensuring a consistent user environment across different machines. The NixOS configuration itself defines system-level settings, services, and packages.
Quick Start & Requirements
# As root
HOST=<your-host-name> nix-shell
git clone https://this.repo.url/ /etc/nixos
cd /etc/nixos
nixos-install --root /mnt --impure --flake .#$HOST
# Install git, curl, xz
sudo apt install git xz-utils curl
git clone https://gitlab.com/LongerHV/nixos-configuration.git
cd nixos-configuration
# Install Nix (single-user)
sh <(curl -L https://nixos.org/nix/install) --no-daemon
# Activate Nix profile
. ~/.nix-profile/etc/profile.d/nix.sh
echo ". $HOME/.nix-profile/etc/profile.d/nix.sh" >> ~/.profile
echo ". $HOME/.nix-profile/etc/profile.d/nix.sh" >> ~/.zprofile
# Open shell with nix and home-manager
nix-shell
# Remove system nix to avoid conflicts
nix-env -e nix
# Install configuration
home-manager switch --flake .#mmieszczak
# Set zsh as default shell
echo ~/.nix-profile/bin/zsh | sudo tee -a /etc/shells
usermod -s ~/.nix-profile/bin/zsh $USER
Highlighted Details
Maintenance & Community
This appears to be a personal configuration repository. No specific community links or maintenance signals are provided in the README.
Licensing & Compatibility
The README does not explicitly state a license. The presence of Nix and Home Manager suggests compatibility with their respective licenses. Commercial use would require careful review of any underlying licenses.
Limitations & Caveats
The configuration is tailored for specific user accounts (mmieszczak
) and hostnames ($HOST
), requiring modification for general use. The Ubuntu bootstrap process involves removing the system-installed Nix, which might be undesirable in some environments.
1 day ago
Inactive