Compare commits
No commits in common. "d9f167a958f9c00900334ccfbad815fbeb3a1f6b" and "4c5b373a6db9f77d4e192a84eb7f081d58c4a9cb" have entirely different histories.
d9f167a958
...
4c5b373a6d
5 changed files with 2 additions and 101 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
||||||
.idea/
|
|
||||||
65
CLAUDE.md
65
CLAUDE.md
|
|
@ -1,65 +0,0 @@
|
||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Personal NixOS flake-based configuration using [Numtide Blueprint](https://github.com/numtide/blueprint) for multi-host management. Manages three hosts with Home Manager for user environments.
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Rebuild and switch the current host
|
|
||||||
sudo nixos-rebuild switch --flake .#$(hostname)
|
|
||||||
|
|
||||||
# Test without applying
|
|
||||||
sudo nixos-rebuild test --flake .#$(hostname)
|
|
||||||
|
|
||||||
# Apply home-manager for a user
|
|
||||||
home-manager switch --flake .#julien@LAPTOP-032
|
|
||||||
home-manager switch --flake .#jhemono@gwiad
|
|
||||||
|
|
||||||
# Update flake inputs
|
|
||||||
nix flake update
|
|
||||||
nix flake update nixpkgs-unstable # single input
|
|
||||||
```
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
Blueprint auto-discovers hosts and modules — no manual registration needed.
|
|
||||||
|
|
||||||
```
|
|
||||||
flake.nix (Blueprint orchestrator)
|
|
||||||
modules/
|
|
||||||
nixos/
|
|
||||||
base.nix — common system settings (bootloader, timezone, Nix store GC, system packages)
|
|
||||||
jhemono.nix — jhemono user account + SSH authorized keys
|
|
||||||
home/
|
|
||||||
user.nix — custom options: user.name, user.email
|
|
||||||
base.nix — shell (Fish), editor (Helix)
|
|
||||||
git.nix — Git + Jujutsu + GitHub CLI
|
|
||||||
hosts/
|
|
||||||
gwiad/ — ThinkPad T14 AMD workstation, Sway/Wayland
|
|
||||||
sesame/ — home server (Forgejo, Nextcloud, Mailu, Nginx, sops-nix secrets)
|
|
||||||
LAPTOP-032/ — work laptop, GNOME
|
|
||||||
```
|
|
||||||
|
|
||||||
## Hosts
|
|
||||||
|
|
||||||
**gwiad** — personal workstation
|
|
||||||
- nixos-hardware: `lenovo-thinkpad-t14-amd-gen3`
|
|
||||||
- Sway + Waybar, btrbk snapshots, syncthing
|
|
||||||
|
|
||||||
**sesame** — home server (`*.hemono.fr` domains)
|
|
||||||
- Services: Forgejo (`git`), Nextcloud (`suite`), Mailu (`mail`), Transmission, Syncthing
|
|
||||||
- All HTTPS via ACME; SSH-key-only access
|
|
||||||
- Secrets via sops-nix (private `mysecrets` repo)
|
|
||||||
|
|
||||||
**LAPTOP-032** — work laptop
|
|
||||||
- GNOME/GDM, Docker (rootless), claude-code (from `nixpkgs-unstable`), UV, Node.js
|
|
||||||
|
|
||||||
## Key Conventions
|
|
||||||
|
|
||||||
- `nixpkgs-unstable` overlay is used when a package isn't available or outdated in the stable channel (e.g., `claude-code`)
|
|
||||||
- Home Manager modules receive user info via the custom `user.name` / `user.email` options defined in `modules/home/user.nix`
|
|
||||||
- Host-specific files live entirely under `hosts/<hostname>/`; shared logic goes in `modules/`
|
|
||||||
17
flake.lock
generated
17
flake.lock
generated
|
|
@ -92,22 +92,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1774106199,
|
|
||||||
"narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blueprint": "blueprint",
|
"blueprint": "blueprint",
|
||||||
|
|
@ -115,7 +99,6 @@
|
||||||
"mysecrets": "mysecrets",
|
"mysecrets": "mysecrets",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
|
||||||
"sops-nix": "sops-nix"
|
"sops-nix": "sops-nix"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
|
|
||||||
blueprint = {
|
blueprint = {
|
||||||
url = "github:numtide/blueprint";
|
url = "github:numtide/blueprint";
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,4 @@
|
||||||
{ flake, inputs, config, pkgs, ... }:
|
{ flake, config, pkgs, ... }:
|
||||||
|
|
||||||
let
|
|
||||||
pkgs-unstable = import inputs.nixpkgs-unstable {
|
|
||||||
inherit (pkgs) system;
|
|
||||||
config.allowUnfreePredicate = pkg: builtins.elem (pkgs.lib.getName pkg) [
|
|
||||||
"claude-code"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -22,17 +13,11 @@ in
|
||||||
|
|
||||||
programs.uv.enable = true;
|
programs.uv.enable = true;
|
||||||
|
|
||||||
programs.claude-code = {
|
programs.gemini-cli = {
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.claude-code;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.lazygit = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
wl-clipboard
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Let Home Manager install and manage itself.
|
# Let Home Manager install and manage itself.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue