Compare commits

...

3 commits

18 changed files with 197 additions and 267 deletions

67
flake.lock generated
View file

@ -1,5 +1,26 @@
{
"nodes": {
"blueprint": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1763308703,
"narHash": "sha256-O9Y+Wer8wOh+N+4kcCK5p/VLrXyX+ktk0/s3HdZvJzk=",
"owner": "numtide",
"repo": "blueprint",
"rev": "5a9bba070f801d63e2af3c9ef00b86b212429f4f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "blueprint",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -7,11 +28,11 @@
]
},
"locked": {
"lastModified": 1763389499,
"narHash": "sha256-GuG3PW8U41f8XqROreZQaUvrcjQt+Gh92g16X7zBUck=",
"lastModified": 1764998300,
"narHash": "sha256-fZatn/KLfHLDXnF0wy7JxXqGaZmGDTVufT4o/AOlj44=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7538d965352d3bfd4c380f5b3aa618bc839a84b4",
"rev": "27a6182347ccae90a88231ae0dc5dfa7d15815bb",
"type": "github"
},
"original": {
@ -45,11 +66,11 @@
]
},
"locked": {
"lastModified": 1763344676,
"narHash": "sha256-ctBPb/ea2D+r6Q0Wy0Imakj+YE5rcTTrxOqx4DaEhc0=",
"lastModified": 1764986069,
"narHash": "sha256-eLl4+j7Tm37XJJhYD2bTgb3x7HDfwWAr/kayb/j0TAg=",
"owner": "nix-community",
"repo": "nix-vscode-extensions",
"rev": "3c082362bcec211e14f9b8edf10c2975c74f2d04",
"rev": "999eed994566bdeffdbb1c9d4920530767e8c93e",
"type": "github"
},
"original": {
@ -60,11 +81,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1762847253,
"narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
"lastModified": 1764440730,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
"type": "github"
},
"original": {
@ -76,11 +97,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1763283776,
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
"lastModified": 1764950072,
"narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
"rev": "f61125a668a320878494449750330ca58b78c557",
"type": "github"
},
"original": {
@ -92,6 +113,7 @@
},
"root": {
"inputs": {
"blueprint": "blueprint",
"home-manager": "home-manager",
"mysecrets": "mysecrets",
"nix-vscode-extensions": "nix-vscode-extensions",
@ -107,11 +129,11 @@
]
},
"locked": {
"lastModified": 1763404987,
"narHash": "sha256-7ovXpwlWU3nAaQh0AamwNWOcoKrpn7HijyT3i6p3scc=",
"lastModified": 1764483358,
"narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "e3aa38151e5c3445860c709bfc65c148fa900cdb",
"rev": "5aca6ff67264321d47856a2ed183729271107c9c",
"type": "github"
},
"original": {
@ -119,6 +141,21 @@
"repo": "sops-nix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",

View file

@ -4,6 +4,11 @@
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
blueprint = {
url = "github:numtide/blueprint";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# Secrets management
@ -28,41 +33,6 @@
};
};
outputs = { self, nixpkgs, home-manager, ... }@inputs: let
inherit (self) outputs;
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in {
# Custom packages and modifications, exported as overlays
overlays = import ./overlays {inherit inputs;};
outputs = inputs: inputs.blueprint { inherit inputs; };
nixosConfigurations = {
sesame = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/sesame/configuration.nix
# inputs.home-manager.nixosModules.default
];
};
gwiad = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [
./hosts/gwiad/configuration.nix
# inputs.home-manager.nixosModules.default
];
};
};
homeConfigurations."julien" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
# Specify your home configuration modules here, for example,
# the path to your home.nix.
modules = [ ./homes/scalizer ];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
};
};
}

View file

@ -1,11 +0,0 @@
{ ... }:
{
imports = [
./user-info.nix
./base.nix
./editor.nix
./vc.nix
];
}

View file

@ -1,9 +0,0 @@
{ config, pkgs, ... }:
{
programs.helix = {
enable = true;
defaultEditor = true;
};
}

View file

@ -1,18 +0,0 @@
{ lib, ... }:
{
options.user.info = {
name = lib.mkOption {
type = lib.types.str;
};
email = lib.mkOption {
type = lib.types.str;
};
};
config.user.info = {
name = lib.mkDefault "Julien Hémono";
email = lib.mkDefault "julien@hemono.fr";
};
}

View file

@ -1,29 +0,0 @@
{ config, pkgs, ... }:
{
programs.git = {
enable = true;
settings = {
user = {
email = config.user.info.email;
name = config.user.info.name;
};
};
};
programs.jujutsu = {
enable = true;
settings = {
user = {
email = config.user.info.email;
name = config.user.info.name;
};
ui.default-command = "log";
};
};
programs.gh = {
enable = true;
};
}

View file

@ -1,17 +1,15 @@
{ config, pkgs, ... }:
{ flake, config, pkgs, ... }:
{
imports = [
../common
imports = with flake.homeModules; [
base
git
];
home.username = "julien";
home.homeDirectory = "/home/julien";
home.stateVersion = "25.05";
user.info.email = "julien@scalizer.fr";
user.email = "julien@scalizer.fr";
programs.uv.enable = true;

View file

@ -1,8 +0,0 @@
{ ... }:
{
imports = [
./nix.nix
];
}

View file

@ -1,18 +0,0 @@
{ config, pkgs, ... }:
{
nix = {
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
trusted-users = [ "jhemono" ];
};
channel.enable = false;
};
}

View file

@ -1,36 +1,19 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, outputs, ... }:
{ inputs, flake, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../common
./home.nix
# Services
./btrbk.nix
./syncthing.nix
];
# Boot configuration
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
imports = with flake.nixosModules; [
./hardware-configuration.nix
base
jhemono
# Services
./btrbk.nix
./syncthing.nix
];
# Networking
networking.hostName = "gwiad";
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Paris";
# Console
console = {
keyMap = "fr";
};
users.users.jhemono.uid = 1000;
users.groups.jhemono.gid = 1000;
# Enable CUPS to print documents.
# services.printing.enable = true;
@ -46,17 +29,7 @@
# System packages
environment.systemPackages = with pkgs; [
android-tools
bc
git
htop
jq
ncdu
rclone
tmux
tree
unzip
vim
zip
];
virtualisation.docker.rootless = {
@ -86,8 +59,6 @@
orca
];
environment.variables.EDITOR = "vim";
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;

View file

@ -1,25 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, outputs, ... }:
{
imports = [
inputs.home-manager.nixosModules.home-manager
];
users.users.jhemono = {
isNormalUser = true;
uid = 1000;
extraGroups = [ "wheel" ]; # Enable 'sudo' for the user.
};
users.groups.jhemono.gid = 1000;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "bak";
users.jhemono = ../../homes/me;
};
}

View file

@ -1,9 +1,10 @@
{ config, pkgs, ... }:
{ flake, config, pkgs, ... }:
{
imports = [
../common
imports = with flake.homeModules; [
base
git
];
home.stateVersion = "25.05"; # Please read the comment before changing.

View file

@ -2,13 +2,13 @@
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{ flake, config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
imports = with flake.nixosModules; [
./hardware-configuration.nix
../common
base
jhemono
# Supporting
./buckets.nix
./nginx.nix
@ -22,54 +22,11 @@
./syncthing.nix
];
# Boot configuration
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
# Networking
networking.hostName = "sesame";
networking.domain = "hemono.fr";
# Set your time zone.
time.timeZone = "Europe/Paris";
# Console
console = {
keyMap = "fr";
};
# User account
users.users.jhemono = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable 'sudo' for the user.
openssh = {
authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8Q2lWsqvoqoIxqb8HM96IpvZkFhnwcPdEo+m5peH5N/0PZloEp/NfLbzktXGNACe+bwfweR1Kokjs/Ep0tQQggGtgqB0jAopd1Yw0wzlFWYGqJsGyuFBGP4SljsQvGhU2IwgvuJFIRrOVu+gRTIM1DYGQOveNqlRU/QoqOZDQPvHsoQCLvwmZBzzi7DLktBQZ7h/CJ3GrzD2YUuIyulZGbhfM86i0p7NQ5+TSxuo7Yotbwzrzi7hAROO22ghRfv0vxAPip9SCF1SKIZpSDd8s7Nk6dkDE+95N5cMOkFwokWWsxaTM+EgZfTjQZon1L1/X3UC3hK6C+7GLusoNe8xdjm14e9LA5qG5ZRtLrmIrI2bW5KBj/8iTxRmXpE9x70d2Hl6jtHBQv4rQOAO3BET0TjlNAXchNDOcDbNX1ZqEwyImoF4c3kbr5M2ezWCDltAdvd74mMMiaenxwYkZeZbR3EJPbtC1v//9QQ9S7OzKa5utwjhZFlh0g79GKq8DiU6W8IzzmD7pGi8MIV3wOh1NGlcIlPaIyJY60XN0iRNI9NhMASAF493xPfMlVWl7Tly1VDVcPp5pC47vHU6/2mBbx5tnVShNPnkf4OwF3nC8i0DT+dRKXAxjfpoM5iYIrSHrNj9EKKFE4qNbqtAPTNGGtxJ0fUdWOgXLf5BMfYmaiQ== jhemono@gwiad"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFWZ1MF5Srp1AkfgzO/19RCeYfCU+HtJFYESS9PhQrQYhUwZtoHExHYyD1nf71+jGFu6HJjXAPDD5ZW1XqYEh8kFvkx8uXw+kKHOVwuVhkcIYduQlsR8e8kbu8y6OABPe3SWmmtiA2HdWCwlZNoyTL1X4+LsA+Hbs0EHn1p+RQ4YeOSuZV/5VETt1Mcu/d0GyFBlnoCtu3VwexBdZgsVkw/kOpjNrY0RhqEwiO7P9J+jXT6HB8wvus6MzgvNPzoFo6hAXqRGu3SvCQJnVkE/AulHBfWLFCwdIrekGCKMv9v51dUJ5pgHxWyZZQhYNFpE2qTj8meExBDfnnYl7MFQ3j termbot"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxc+ov8QKWxdGq3kgGqouGd7nExXgpQtZrjv2TR6ILk jhemono@ipad-fred"
];
};
# packages = with pkgs; [
# firefox
# tree
# ];
};
# System packages
environment.systemPackages = with pkgs; [
git
htop
jq
ncdu
tmux
tree
unzip
vim
];
environment.variables.EDITOR = "vim";
# OpenSSH
services.openssh = {
enable = true;

View file

@ -1,4 +1,3 @@
{ config, pkgs, ... }:
{
programs.bash.enable = true;
@ -7,4 +6,9 @@
enable = true;
};
programs.helix = {
enable = true;
defaultEditor = true;
};
}

26
modules/home/git.nix Normal file
View file

@ -0,0 +1,26 @@
{ flake, ... }:
{ config, ... }:
{
imports = [ flake.homeModules.user ];
programs.git = {
enable = true;
settings = {
user = config.user;
};
};
programs.jujutsu = {
enable = true;
settings = {
user = config.user;
ui.default-command = "log";
};
};
programs.gh = {
enable = true;
};
}

17
modules/home/user.nix Normal file
View file

@ -0,0 +1,17 @@
{ lib, ... }:
{
options.user = {
name = lib.mkOption {
type = lib.types.str;
description = "User full name";
default = "Julien Hémono";
};
email = lib.mkOption {
type = lib.types.str;
description = "User full name";
default = "julien@hemono.fr";
};
};
}

46
modules/nixos/base.nix Normal file
View file

@ -0,0 +1,46 @@
{ pkgs, hostName, ... }:
{
# Boot configuration
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
# Networking
networking.hostName = hostName;
networking.domain = "hemono.fr";
# Time Zone
time.timeZone = "Europe/Paris";
# Console
console.keyMap = "fr";
# System packages
environment.systemPackages = with pkgs; [
htop
jq
ncdu
tmux
tree
unzip
vim
zip
];
environment.variables.EDITOR = "vim";
nix = {
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
channel.enable = false;
};
}

21
modules/nixos/jhemono.nix Normal file
View file

@ -0,0 +1,21 @@
{ inputs, config, lib, ... }:
let
username = "jhemono";
in
{
users.users.${username} = {
description = "Julien Hémono";
isNormalUser = true;
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC8Q2lWsqvoqoIxqb8HM96IpvZkFhnwcPdEo+m5peH5N/0PZloEp/NfLbzktXGNACe+bwfweR1Kokjs/Ep0tQQggGtgqB0jAopd1Yw0wzlFWYGqJsGyuFBGP4SljsQvGhU2IwgvuJFIRrOVu+gRTIM1DYGQOveNqlRU/QoqOZDQPvHsoQCLvwmZBzzi7DLktBQZ7h/CJ3GrzD2YUuIyulZGbhfM86i0p7NQ5+TSxuo7Yotbwzrzi7hAROO22ghRfv0vxAPip9SCF1SKIZpSDd8s7Nk6dkDE+95N5cMOkFwokWWsxaTM+EgZfTjQZon1L1/X3UC3hK6C+7GLusoNe8xdjm14e9LA5qG5ZRtLrmIrI2bW5KBj/8iTxRmXpE9x70d2Hl6jtHBQv4rQOAO3BET0TjlNAXchNDOcDbNX1ZqEwyImoF4c3kbr5M2ezWCDltAdvd74mMMiaenxwYkZeZbR3EJPbtC1v//9QQ9S7OzKa5utwjhZFlh0g79GKq8DiU6W8IzzmD7pGi8MIV3wOh1NGlcIlPaIyJY60XN0iRNI9NhMASAF493xPfMlVWl7Tly1VDVcPp5pC47vHU6/2mBbx5tnVShNPnkf4OwF3nC8i0DT+dRKXAxjfpoM5iYIrSHrNj9EKKFE4qNbqtAPTNGGtxJ0fUdWOgXLf5BMfYmaiQ== jhemono@gwiad"
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFWZ1MF5Srp1AkfgzO/19RCeYfCU+HtJFYESS9PhQrQYhUwZtoHExHYyD1nf71+jGFu6HJjXAPDD5ZW1XqYEh8kFvkx8uXw+kKHOVwuVhkcIYduQlsR8e8kbu8y6OABPe3SWmmtiA2HdWCwlZNoyTL1X4+LsA+Hbs0EHn1p+RQ4YeOSuZV/5VETt1Mcu/d0GyFBlnoCtu3VwexBdZgsVkw/kOpjNrY0RhqEwiO7P9J+jXT6HB8wvus6MzgvNPzoFo6hAXqRGu3SvCQJnVkE/AulHBfWLFCwdIrekGCKMv9v51dUJ5pgHxWyZZQhYNFpE2qTj8meExBDfnnYl7MFQ3j termbot"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxc+ov8QKWxdGq3kgGqouGd7nExXgpQtZrjv2TR6ILk jhemono@ipad-fred"
];
initialPassword = "cheval";
};
nix.settings.trusted-users = [ username ];
}