Compare commits
5 Commits
27fb3915b6
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4abb2bf1eb | |||
| 9a336f76dc | |||
| b0d8309d65 | |||
| d319db25bb | |||
| 961e9c475e |
@@ -5,6 +5,7 @@
|
|||||||
imports = [
|
imports = [
|
||||||
./grub.nix
|
./grub.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
|
./sops.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./system.nix
|
./system.nix
|
||||||
./tty.nix
|
./tty.nix
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
pkgs.unzip
|
pkgs.unzip
|
||||||
pkgs.sops
|
pkgs.sops
|
||||||
pkgs.ssh-to-age
|
pkgs.ssh-to-age
|
||||||
|
pkgs.age
|
||||||
pkgs.nixos-anywhere
|
pkgs.nixos-anywhere
|
||||||
pkgs.nixos-generators
|
pkgs.nixos-generators
|
||||||
pkgs.efibootmgr
|
pkgs.efibootmgr
|
||||||
@@ -25,8 +26,7 @@
|
|||||||
pkgs.fzf
|
pkgs.fzf
|
||||||
pkgs.bc
|
pkgs.bc
|
||||||
pkgs.wakeonlan
|
pkgs.wakeonlan
|
||||||
pkgs.samba
|
pkgs.openssl
|
||||||
pkgs.openldap
|
|
||||||
];
|
];
|
||||||
services = {
|
services = {
|
||||||
locate = {
|
locate = {
|
||||||
|
|||||||
19
modules/core/sops.nix
Normal file
19
modules/core/sops.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
secretsPath = builtins.toString inputs.mysecrets;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sops = {
|
||||||
|
defaultSopsFile = "${secretsPath}/secrets.yaml";
|
||||||
|
age = {
|
||||||
|
sshKeyPaths = [
|
||||||
|
"/etc/ssh/ssh_host_ed25519_key"
|
||||||
|
];
|
||||||
|
keyFile = "/var/lib/sops-nix/key.txt";
|
||||||
|
generateKey = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,6 +5,11 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
sops.secrets = {
|
||||||
|
"users_password/beastie" = {
|
||||||
|
neededForUsers = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
users = {
|
users = {
|
||||||
users = {
|
users = {
|
||||||
${username} = {
|
${username} = {
|
||||||
@@ -18,7 +23,7 @@
|
|||||||
"video"
|
"video"
|
||||||
];
|
];
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
config.sops.secrets."ssh_keys/beastie_priv".path
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAKMJ3TkEmRQcX7RQijNa2km6a2xXJk6M6FERh7C9nTJ"
|
||||||
];
|
];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,6 +26,11 @@
|
|||||||
pkgs.catppuccin-cursors
|
pkgs.catppuccin-cursors
|
||||||
pkgs.catppuccin-gtk
|
pkgs.catppuccin-gtk
|
||||||
pkgs.postman
|
pkgs.postman
|
||||||
|
pkgs.samba
|
||||||
|
pkgs.openldap
|
||||||
|
pkgs.argocd
|
||||||
|
pkgs.talosctl
|
||||||
|
pkgs.talhelper
|
||||||
];
|
];
|
||||||
fonts.packages = [
|
fonts.packages = [
|
||||||
pkgs.nerd-fonts.dejavu-sans-mono
|
pkgs.nerd-fonts.dejavu-sans-mono
|
||||||
|
|||||||
@@ -82,6 +82,7 @@
|
|||||||
#172.18.20.229 auth.grandbesancon.fr
|
#172.18.20.229 auth.grandbesancon.fr
|
||||||
#172.18.20.181 traefikauth.grandbesancon.fr
|
#172.18.20.181 traefikauth.grandbesancon.fr
|
||||||
172.18.21.174 test-patchmon.grandbesancon.fr
|
172.18.21.174 test-patchmon.grandbesancon.fr
|
||||||
|
172.18.229.240 test-mycarto-autonome.grandbesancon.fr
|
||||||
'';
|
'';
|
||||||
wireguard = {
|
wireguard = {
|
||||||
interfaces = {
|
interfaces = {
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
|
users.users.${username} = {
|
||||||
|
extraGroups = [ "libvirtd" ];
|
||||||
|
};
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
libvirtd = {
|
libvirtd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -12,11 +15,13 @@
|
|||||||
#package = pkgs.qemu;
|
#package = pkgs.qemu;
|
||||||
runAsRoot = true;
|
runAsRoot = true;
|
||||||
swtpm.enable = true;
|
swtpm.enable = true;
|
||||||
|
vhostUserPackages = [
|
||||||
|
pkgs.virtiofsd
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
users.users.${username} = {
|
|
||||||
extraGroups = [ "libvirtd" ];
|
|
||||||
};
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
virtiofsd
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,76 +1,61 @@
|
|||||||
{
|
{
|
||||||
inputs,
|
|
||||||
username,
|
username,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
secretsPath = builtins.toString inputs.mysecrets;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
sops = {
|
sops.secrets = {
|
||||||
defaultSopsFile = "${secretsPath}/secrets.yaml";
|
"users_password/beastie" = {
|
||||||
age = {
|
neededForUsers = true;
|
||||||
sshKeyPaths = [
|
|
||||||
"/etc/ssh/ssh_host_ed25519_key"
|
|
||||||
];
|
|
||||||
keyFile = "/var/lib/sops-nix/key.txt";
|
|
||||||
generateKey = true;
|
|
||||||
};
|
};
|
||||||
|
"ssh_keys/default_pub" = {
|
||||||
secrets = {
|
owner = "${username}";
|
||||||
"users_password/beastie" = {
|
mode = "0644";
|
||||||
neededForUsers = true;
|
path = "/home/${username}/.ssh/id_ed25519.pub";
|
||||||
};
|
};
|
||||||
"ssh_keys/default_pub" = {
|
"ssh_keys/default_priv" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0644";
|
mode = "0600";
|
||||||
path = "/home/${username}/.ssh/id_ed25519.pub";
|
path = "/home/${username}/.ssh/id_ed25519";
|
||||||
};
|
};
|
||||||
"ssh_keys/default_priv" = {
|
"ssh_keys/ansible_pub" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0600";
|
mode = "0644";
|
||||||
path = "/home/${username}/.ssh/id_ed25519";
|
path = "/home/${username}/.ssh/id_ed25519_ansible.pub";
|
||||||
};
|
};
|
||||||
"ssh_keys/ansible_pub" = {
|
"ssh_keys/ansible_priv" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0644";
|
mode = "0600";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_ansible.pub";
|
path = "/home/${username}/.ssh/id_ed25519_ansible";
|
||||||
};
|
};
|
||||||
"ssh_keys/ansible_priv" = {
|
"ssh_keys/beastie_pub" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0600";
|
mode = "0644";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_ansible";
|
path = "/home/${username}/.ssh/id_ed25519_beastie.pub";
|
||||||
};
|
};
|
||||||
"ssh_keys/beastie_pub" = {
|
"ssh_keys/beastie_priv" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0644";
|
mode = "0600";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_beastie.pub";
|
path = "/home/${username}/.ssh/id_ed25519_beastie";
|
||||||
};
|
};
|
||||||
"ssh_keys/beastie_priv" = {
|
"ssh_keys/gitea_semaphore_pub" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0600";
|
mode = "0644";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_beastie";
|
path = "/home/${username}/.ssh/id_ed25519_gitea_semaphore.pub";
|
||||||
};
|
};
|
||||||
"ssh_keys/gitea_semaphore_pub" = {
|
"ssh_keys/gitea_semaphore_priv" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0644";
|
mode = "0600";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_gitea_semaphore.pub";
|
path = "/home/${username}/.ssh/id_ed25519_gitea_semaphore";
|
||||||
};
|
};
|
||||||
"ssh_keys/gitea_semaphore_priv" = {
|
"ssh_keys/wol_pub" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0600";
|
mode = "0644";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_gitea_semaphore";
|
path = "/home/${username}/.ssh/id_ed25519_wol";
|
||||||
};
|
};
|
||||||
"ssh_keys/wol_pub" = {
|
"ssh_keys/wol_priv" = {
|
||||||
owner = "${username}";
|
owner = "${username}";
|
||||||
mode = "0644";
|
mode = "0600";
|
||||||
path = "/home/${username}/.ssh/id_ed25519_wol";
|
path = "/home/${username}/.ssh/id_ed25519_wol.priv";
|
||||||
};
|
|
||||||
"ssh_keys/wol_priv" = {
|
|
||||||
owner = "${username}";
|
|
||||||
mode = "0600";
|
|
||||||
path = "/home/${username}/.ssh/id_ed25519_wol.priv";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
};
|
};
|
||||||
environment.systemPackages = [ pkgs.ethtool ];
|
environment.systemPackages = [ pkgs.ethtool ];
|
||||||
|
|
||||||
my.wolipv6address = "2a01:e0a:9cc:99d0:8f3a:6b2c:41d7:e9f5";
|
my.wolipv6address = "2a01:e0a:f5d:3400:6b2c:41d7:e9f5";
|
||||||
|
|
||||||
boot.initrd = {
|
boot.initrd = {
|
||||||
network = {
|
network = {
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
};
|
};
|
||||||
postCommands = ''
|
postCommands = ''
|
||||||
ip -6 addr add ${config.my.wolipv6address}/64 dev ${config.my.laninterface}
|
ip -6 addr add ${config.my.wolipv6address}/64 dev ${config.my.laninterface}
|
||||||
ip -6 route add default via fe80::224:d4ff:fea5:65bd dev ${config.my.laninterface}
|
ip -6 route add default via fe80::3a07:16ff:fe11:45a8 dev ${config.my.laninterface}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
availableKernelModules = [ "r8169" ];
|
availableKernelModules = [ "r8169" ];
|
||||||
|
|||||||
Reference in New Issue
Block a user