This repository contains my personal NixOS configuration files, structured to facilitate reproducible and modular system setups using Nix Flakes and Home Manager.
- Nix Flakes: Utilizes the Nix Flakes feature for declarative and reproducible system configurations.
- Home Manager: Manages user-specific configurations, ensuring consistency across environments.
- Modular Design: Organized into modules for hosts and users, promoting reusability and clarity.
- Development Shells: Provides predefined development environments for various projects.
- Secrets Management: Handles sensitive information securely using sops.
- CI Integration: Includes GitHub Actions workflows for continuous integration and validation.
flake.nix
&flake.lock
: Define the Nix Flake entry point and lock dependencies.hosts/
: Contains host-specific configurations.modules/
: Houses custom NixOS and Home Manager modules.devshells/
: Sets up development environments with necessary tools and dependencies..github/workflows/
: CI workflows for automated checks and builds.treefmt.nix
: Defines formatting standards for the codebase.
- Nix with Flakes enabled.
- sops installed for secrets management.
-
Clone the Repository:
git clone https://github.com/culxttes/dotfiles.git cd dotfiles
-
Review and Customize:
Inspect the
hosts/
andmodules/
directories to understand the configurations. Modify them as needed to suit your environment. -
Apply Configuration:
Use the following command to apply the configuration to your system:
sudo nixos-rebuild switch --flake
The devshells/
directory contains configurations for development environments. To enter a development shell:
nix develop
GitHub Actions workflows are defined in .github/workflows/
to automate testing and validation of configurations.
This project is licensed under the Unlicense, dedicating it to the public domain.