fix: update readme

Signed-off-by: gwg313 <gwg313@pm.me>
This commit is contained in:
gwg313 2025-07-12 08:42:05 -04:00
parent 72a48a6eeb
commit c2c4dd0799
Signed by: gwg313
GPG key ID: 60FF63B4826B7400

109
README.md
View file

@ -1,54 +1,89 @@
# NixOS Flake Configuration
# ❄️ NixOS Configurations
## Overview
This repository contains my declarative and fully reproducible system
configurations using [Nix flakes](https://nixos.wiki/wiki/Flakes). It manages
multiple machines—including laptops, desktops, and servers—using both NixOS and
[Home Manager](https://nix-community.github.io/home-manager/).
This repository contains my NixOS configuration as a flake. This configuration
is designed to provide a reproducible and declarative setup for my system. It
includes system configuration, package management, and various other NixOS
features.
## 🧱 Structure
### Window Manager
This flake manages:
- hyrpland
- waybar
- swaylock
- wofi
- light
- grimshot
- mako
- 🖥️ **Desktop** (NixOS + Home Manager)
- 💻 **Laptop** (NixOS + Home Manager)
- 🗄️ **Servers** (headless NixOS deployments)
- 👤 User environments (via Home Manager, on both NixOS and non-NixOS systems)
### Terminal
### Key Directories
- alacritty
- zsh
- starship
- tmux
- neovim(my configuration can be found
[here](https://github.com/gwg313/nvim-nix))
- eza
- ripgrep
- fd
- `hosts/` Per-machine NixOS configurations (e.g., `candlekeep.nix`,
`grymforge.nix`)
- `home-manager/` User-specific Home Manager modules and machines etc.)
- `flake.nix` / `flake.lock` Flake definition and dependency pinning
## Prerequisites
## 🚀 Getting Started
Before using this NixOS flake configuration, you should have the following
prerequisites:
### Requirements
- NixOs should be installed on your system.
- Familiarity with Nix and NixOS concepts is helpful but not required.
- `nix` with flakes enabled
- Optional: [home-manager](https://github.com/nix-community/home-manager) and
[direnv](https://direnv.net/)
## Usage
NixOS and home-manager are called seperately,
To rebuild and switch to the new NixOS configuration:
### Bootstrap a New Machine
```bash
nixos-rebuild switch --flake .#candlekeep
nix run github:yourusername/nixos-configurations#your-hostname
```
To rebuild and switch to the new home-manager configuration:
Or, if you're already inside the repo:
```bash
home-manager switch --flake .#gwg313@candlekeep
sudo nixos-rebuild switch --flake .#your-hostname
```
### Update All Machines
```bash
nix flake update
git commit -am "flake: update"
```
You can also run automated rebuilds and deployments using tools like:
- [`colmena`](https://github.com/zhaofengli/colmena)
- [`deploy-rs`](https://github.com/serokell/deploy-rs)
- [`nixos-rebuild --target-host`](https://nixos.org/manual/nixos/stable/#sec-deploying-to-a-remote-machine)
## 🔐 Secrets
Secrets are managed via:
- [sops-nix](https://github.com/Mic92/sops-nix)
- Encrypted with age
- Stored in `.sops.yaml` and `secrets/` directory
## 💡 Features
- Flake-based multi-machine setup
- Home Manager integrated per-user config
- Declarative hardware profiles
- Secure secret management with sops-nix
- Support for remote servers and local workstations.
## 📝 Hosts
| Hostname | Role | Description |
| ------------ | -------------------- | ------------------------------- |
| `candlekeep` | Laptop | Hyprland, Kitty, Zsh, Neovim |
| `grymforge` | Main Workstation | Hyprland, Kitty, Zsh, Neovim |
| `seikan` | Reverse Proxy Server | Cloud Server, Traefik, Zerotier |
| `waypoint` | Reverse Proxy Server | Traefik, Zerotier |
| `panopticon` | Log Server | Loki, Promtail, Grafana |
| `vault-tec` | Nix Cache Server | Attic |
## 🔄 Workflow
1. Edit your configs (in `hosts/`, `home/`, or `modules/`)
2. Rebuild locally or deploy remotely
3. Commit and push to Git
4. (Optional) CI/CD runs remote rebuilds