docs(README): update README
This commit is contained in:
		
							parent
							
								
									275cd01243
								
							
						
					
					
						commit
						c16d189164
					
				
							
								
								
									
										74
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								README.md
									
									
									
									
									
										Normal 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.
 | 
			
		||||
							
								
								
									
										37
									
								
								README.org
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								README.org
									
									
									
									
									
								
							@ -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 Flake’s 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.
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user