docs(README): update README

This commit is contained in:
Lucien Cartier-Tilet 2025-06-05 17:26:01 +02:00
parent 275cd01243
commit c16d189164
Signed by: phundrak
SSH Key Fingerprint: SHA256:PKiD+T7oShFqdUOz1Yo8AIAtwFwCaNVoi0YmMobDd6E
2 changed files with 74 additions and 37 deletions

74
README.md Normal file
View File

@ -0,0 +1,74 @@
# NixOS Configuration
Personal NixOS configuration for my machines, using Nix Flakes for reproducible and shareable setups.
## Repository Structure
- **flake.nix**: Main entry point for the Nix Flake, defining NixOS and home-manager configurations
- **hosts/**: Host-specific NixOS configurations
- **modules/**: Custom NixOS modules reusable across different hosts
- **programs/**: System-level programs shared across hosts
- **secrets/**: Encrypted secrets managed with sops-nix
- **system/**: Common system-level configurations shared across hosts
- **users/phundrak/**: Home-manager configuration for my user
- **users/modules/**: Custom user modules reusable across configurations
## Usage
### System Management
Update flake dependencies:
```bash
nix flake update
```
Build and switch to a new system configuration:
```bash
sudo nixos-rebuild switch --flake .#<hostname>
```
Using the Nix Helper (nh) tool:
```bash
# Build and activate a new configuration, making it the boot default
nh os switch
# Build a new configuration and make it the boot default
nh os boot
# Build and activate a new configuration (without making it the boot default)
nh os test
# Just build a new configuration
nh os build
```
### Home Configuration
Update and switch to a new home configuration:
```bash
nh home switch
```
Format Nix files (using Alejandra):
```bash
nix fmt
```
## Development
For development, a devShell is provided with linting tools and git hooks:
```bash
nix develop
```
This will set up an environment with:
- alejandra (formatting)
- commitizen (commit messages)
- deadnix (dead code detection)
- statix (linting)
- Other useful git hooks
## Contributing
Feel free to fork this repository and make your own changes. If you have any improvements or suggestions, please open an issue or submit a pull request.

View File

@ -1,37 +0,0 @@
#+title: NixOS Configuration
#+author: Lucien Cartier-Tilet <lucien@phundrak.com>
This repository contains the NixOS configuration for my personal
setup. It uses Nix Flakes to manache the configuration, making it
reproducible and easy to share across my different machines.
* Repository Structure
- =flake.nix= :: The main entry point for the Nix Flake. It defines my
NixOS configurations as well as a dev shell which installs the tools
needed for testing and building my configurations.
- =hosts/= :: Directory containing host-specific configurations. Each
host has its own directory with at least a =configuration.nix= file.
- =modules/= :: Custom NixOS modules that can be reused across different
hosts.
- =programs/= :: Programs shared across hosts at the system level that
are not made into configurable modules.
- =secrets/= :: Contains secret values that I cannot or will not share
publicly.
- =system/= :: Common system-level configuration shared across hosts
that are not made into configurable modules.
- =users/phundrak/= :: My home-manager configuration, containing
user-specific settings and applications.
- =users/modules/= :: Custom user NixOS modules that can be reused
across different users.
- =user/scripts/= :: Custom shell scripts shared across users.
* Updating and Rebuilding the Configuration
In this repository, there are two helper scripts:
- =update.sh= :: Updates the Flakes lockfile.
- =rebuild.sh= :: Rebuilds the configuration and switch to it
immediately.
* Contributing
Feel free to fork this repository and make your own changes. If you
have any improvements or suggestions, please open an issue or submit a
pull request.