feat(alys): add alys host configuration
This commit is contained in:
parent
3de874f873
commit
958a98ef81
18
flake.nix
18
flake.nix
@ -80,6 +80,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
|
"phundrak@alys" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
home-conf = "minimal";
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./users/phundrak/alys.nix
|
||||||
|
inputs.sops-nix.homeManagerModules.sops
|
||||||
|
];
|
||||||
|
};
|
||||||
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
"phundrak@marpa" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
@ -116,6 +127,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
|
alys = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {inherit inputs outputs;};
|
||||||
|
modules = [
|
||||||
|
./hosts/alys/configuration.nix
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
];
|
||||||
|
};
|
||||||
gampo = nixpkgs.lib.nixosSystem {
|
gampo = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs outputs;};
|
specialArgs = {inherit inputs outputs;};
|
||||||
modules = [
|
modules = [
|
||||||
|
64
hosts/alys/configuration.nix
Normal file
64
hosts/alys/configuration.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./hardware-configuration.nix
|
||||||
|
./host.nix
|
||||||
|
inputs.home-manager.nixosModules.default
|
||||||
|
../../modules/locale.nix
|
||||||
|
../../modules/system.nix
|
||||||
|
../../modules/ssh.nix
|
||||||
|
../../modules/endlessh.nix
|
||||||
|
../../programs/nano.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
zramSwap.enable = true;
|
||||||
|
|
||||||
|
# networking.domain = "phundrak.com";
|
||||||
|
system = {
|
||||||
|
amdgpu.enable = false;
|
||||||
|
boot = {
|
||||||
|
kernel = {
|
||||||
|
hardened = true;
|
||||||
|
cpuVendor = "amd";
|
||||||
|
};
|
||||||
|
systemd-boot = false;
|
||||||
|
zfs.enable = false;
|
||||||
|
};
|
||||||
|
networking = {
|
||||||
|
hostname = "alys";
|
||||||
|
domain = "phundrak.com";
|
||||||
|
id = "41157110";
|
||||||
|
firewall.openPorts = [
|
||||||
|
22
|
||||||
|
];
|
||||||
|
};
|
||||||
|
sound.enable = false;
|
||||||
|
users = {
|
||||||
|
root.disablePassword = true;
|
||||||
|
phundrak = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = {
|
||||||
|
ssh = {
|
||||||
|
enable = true;
|
||||||
|
allowedUsers = ["phundrak"];
|
||||||
|
passwordAuthentication = false;
|
||||||
|
};
|
||||||
|
endlessh.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
environment.systemPackages = [pkgs.openssl];
|
||||||
|
|
||||||
|
# networking.hostName = "alys";
|
||||||
|
# users.users.root.openssh.authorizedKeys.keys = [
|
||||||
|
# "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC+b7BE/gHrHVkqNVfHtp2r4OCUDdohst8hb3Bz5tYtx3gvXJQCB1rFc2hgQJf8FsVyQbidS64lnhU1rUIEbFhv7itT5FGGUnfJEYs64W30wKsnPSb5WXdFXzrNi8za48i2oNl9JA9Fj9k6isyvkTup89hB+ELbXIcfz3bM93WaAt2dIgKijXaAMAAA+tHhgWvlrHlvGlU9/KxY3ZOQSoEboPXd7TDyOf1672eAibYyb5h1HIewYZ+xv1X4dxx/c9Arh4K0s8scuB7XTQQkEbRUEYKD2YXKN83Z09jfMlMYuBAKKO8zU4CM2KTbL7kEVgNc/ArY+uCAakmC5+eS7LxMuOt86+Bi4gXTJ6o6dbfUbCGiq751ni8pg44YSfwYiI05vvZ08eIyNkowumD+X4GRW4tu0I3qK8TI7exeEeoQIwlSfLXlYHEdNB8Q3feLyhHMRkxXgUskbXwWIBexLzJyY40tyqQplZWbYGrUEmjxZ7FWmaV+o8ZjnU2GfJ8JoWyCnEYfRc6Z2ILdXNDRzZ9qYOwefMHtuaYaYYximL+zdVVrm4EZuOetmaJ6zblk4ebU3GZjYykB8DmCDFDZO9koKwzPazLKQl0OWzmQqgxVNg7Mg1NZbuRQgVAhKPelnqejaXbf2/IHAYBn5LDR1Jew5+srlstM9XuYG2whEOx84w== Lucien Cartier-Tilet <lucien@phundrak.com>"
|
||||||
|
# "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILw9oiK8tZ5Vpz82RaRLpITU8qeJrT2hjvudGEDQu2QW lucien@phundrak.com"
|
||||||
|
# ];
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
}
|
28
hosts/alys/hardware-configuration.nix
Normal file
28
hosts/alys/hardware-configuration.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
modulesPath,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [(modulesPath + "/profiles/qemu-guest.nix")];
|
||||||
|
boot = {
|
||||||
|
loader.grub = {
|
||||||
|
efiSupport = true;
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
device = "nodev";
|
||||||
|
};
|
||||||
|
initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "xen_blkfront" "vmw_pvscsi"];
|
||||||
|
initrd.kernelModules = ["nvme"];
|
||||||
|
};
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/vda1";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/F137-8D01";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
3
hosts/alys/host.nix
Normal file
3
hosts/alys/host.nix
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{pkgs, ...}: {
|
||||||
|
environment.systemPackages = with pkgs; [neofetch vim emacs];
|
||||||
|
}
|
@ -30,6 +30,11 @@ in {
|
|||||||
};
|
};
|
||||||
hardened = mkEnableOption "Enables hardened Linux kernel";
|
hardened = mkEnableOption "Enables hardened Linux kernel";
|
||||||
};
|
};
|
||||||
|
systemd-boot = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Does the system use systemd-boot?";
|
||||||
|
};
|
||||||
zfs = {
|
zfs = {
|
||||||
enable = mkEnableOption "Enables ZFS";
|
enable = mkEnableOption "Enables ZFS";
|
||||||
pools = mkOption {
|
pools = mkOption {
|
||||||
@ -42,8 +47,8 @@ in {
|
|||||||
config.boot = {
|
config.boot = {
|
||||||
initrd.kernelModules = lists.optional cfg.amdgpu.enable "amdgpu";
|
initrd.kernelModules = lists.optional cfg.amdgpu.enable "amdgpu";
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = cfg.systemd-boot;
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = cfg.systemd-boot;
|
||||||
};
|
};
|
||||||
supportedFilesystems = mkIf cfg.zfs.enable ["zfs"];
|
supportedFilesystems = mkIf cfg.zfs.enable ["zfs"];
|
||||||
zfs.extraPools = mkIf cfg.zfs.enable cfg.zfs.pools;
|
zfs.extraPools = mkIf cfg.zfs.enable cfg.zfs.pools;
|
||||||
|
1
modules/keys/id_alys.pub
Normal file
1
modules/keys/id_alys.pub
Normal file
@ -0,0 +1 @@
|
|||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTv1lb6d99O84jeh6GdjPm8Gnt/HncSRhGhmoTq7BMK lucien@phundrak.com
|
@ -6,28 +6,33 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.modules.networking;
|
cfg = config.modules.networking;
|
||||||
in {
|
in {
|
||||||
options.modules.networking = {
|
options.modules.networking = with types; {
|
||||||
hostname = mkOption {
|
hostname = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
example = "gampo";
|
example = "gampo";
|
||||||
};
|
};
|
||||||
id = mkOption {
|
id = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
example = "deadb33f";
|
example = "deadb33f";
|
||||||
};
|
};
|
||||||
|
domain = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
example = "phundrak.com";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
hostFiles = mkOption {
|
hostFiles = mkOption {
|
||||||
type = types.listOf types.path;
|
type = listOf path;
|
||||||
example = [/path/to/hostFile];
|
example = [/path/to/hostFile];
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
firewall = {
|
firewall = {
|
||||||
openPorts = mkOption {
|
openPorts = mkOption {
|
||||||
type = types.listOf types.int;
|
type = listOf int;
|
||||||
example = [22 80 443];
|
example = [22 80 443];
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
openPortRanges = mkOption {
|
openPortRanges = mkOption {
|
||||||
type = types.listOf (types.attrsOf types.port);
|
type = listOf (attrsOf port);
|
||||||
default = [];
|
default = [];
|
||||||
example = [
|
example = [
|
||||||
{
|
{
|
||||||
@ -41,7 +46,7 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraCommands = mkOption {
|
extraCommands = mkOption {
|
||||||
type = types.nullOr types.lines;
|
type = nullOr lines;
|
||||||
example = "iptables -A INPUTS -p icmp -j ACCEPT";
|
example = "iptables -A INPUTS -p icmp -j ACCEPT";
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
@ -52,7 +57,7 @@ in {
|
|||||||
hostName = cfg.hostname; # Define your hostname.
|
hostName = cfg.hostname; # Define your hostname.
|
||||||
hostId = cfg.id;
|
hostId = cfg.id;
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
inherit (cfg) hostFiles;
|
inherit (cfg) hostFiles domain;
|
||||||
firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
allowedTCPPorts = cfg.firewall.openPorts;
|
allowedTCPPorts = cfg.firewall.openPorts;
|
||||||
|
@ -20,35 +20,40 @@ in {
|
|||||||
./dev/docker.nix
|
./dev/docker.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options.system = {
|
options.system = with types; {
|
||||||
amdgpu.enable = mkEnableOption "Enables AMD GPU support";
|
amdgpu.enable = mkEnableOption "Enables AMD GPU support";
|
||||||
boot = {
|
boot = {
|
||||||
kernel = {
|
kernel = {
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.raw;
|
type = raw;
|
||||||
default = pkgs.linuxPackages_zen;
|
default = pkgs.linuxPackages_zen;
|
||||||
};
|
};
|
||||||
modules = mkOption {
|
modules = mkOption {
|
||||||
type = types.listOf types.str;
|
type = listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
cpuVendor = mkOption {
|
cpuVendor = mkOption {
|
||||||
description = "Intel or AMD?";
|
description = "Intel or AMD?";
|
||||||
type = types.enum ["intel" "amd"];
|
type = enum ["intel" "amd"];
|
||||||
default = "amd";
|
default = "amd";
|
||||||
};
|
};
|
||||||
v4l2loopback = mkOption {
|
v4l2loopback = mkOption {
|
||||||
description = "Enables v4l2loopback";
|
description = "Enables v4l2loopback";
|
||||||
type = types.bool;
|
type = bool;
|
||||||
default = true;
|
default = true;
|
||||||
};
|
};
|
||||||
hardened = mkEnableOption "Enables hardened Linux kernel";
|
hardened = mkEnableOption "Enables hardened Linux kernel";
|
||||||
};
|
};
|
||||||
|
systemd-boot = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Does the system use systemd-boot?";
|
||||||
|
};
|
||||||
plymouth.enable = mkEnableOption "Enables Plymouth";
|
plymouth.enable = mkEnableOption "Enables Plymouth";
|
||||||
zfs = {
|
zfs = {
|
||||||
enable = mkEnableOption "Enables ZFS";
|
enable = mkEnableOption "Enables ZFS";
|
||||||
pools = mkOption {
|
pools = mkOption {
|
||||||
type = types.listOf types.str;
|
type = listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -61,26 +66,31 @@ in {
|
|||||||
};
|
};
|
||||||
networking = {
|
networking = {
|
||||||
hostname = mkOption {
|
hostname = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
example = "gampo";
|
example = "gampo";
|
||||||
};
|
};
|
||||||
id = mkOption {
|
id = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
example = "deadb33f";
|
example = "deadb33f";
|
||||||
};
|
};
|
||||||
|
domain = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
example = "phundrak.com";
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
hostFiles = mkOption {
|
hostFiles = mkOption {
|
||||||
type = types.listOf types.path;
|
type = listOf path;
|
||||||
example = [/path/to/hostFile];
|
example = [/path/to/hostFile];
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
firewall = {
|
firewall = {
|
||||||
openPorts = mkOption {
|
openPorts = mkOption {
|
||||||
type = types.listOf types.int;
|
type = listOf int;
|
||||||
example = [22 80 443];
|
example = [22 80 443];
|
||||||
default = [];
|
default = [];
|
||||||
};
|
};
|
||||||
openPortRanges = mkOption {
|
openPortRanges = mkOption {
|
||||||
type = types.listOf (types.attrsOf types.port);
|
type = listOf (attrsOf port);
|
||||||
default = [];
|
default = [];
|
||||||
example = [
|
example = [
|
||||||
{
|
{
|
||||||
@ -94,7 +104,7 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraCommands = mkOption {
|
extraCommands = mkOption {
|
||||||
type = types.nullOr types.lines;
|
type = nullOr lines;
|
||||||
example = "iptables -A INPUTS -p icmp -j ACCEPT";
|
example = "iptables -A INPUTS -p icmp -j ACCEPT";
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
@ -102,20 +112,20 @@ in {
|
|||||||
};
|
};
|
||||||
nix = {
|
nix = {
|
||||||
disableSandbox = mkOption {
|
disableSandbox = mkOption {
|
||||||
type = types.bool;
|
type = bool;
|
||||||
default = false;
|
default = false;
|
||||||
};
|
};
|
||||||
gc = {
|
gc = {
|
||||||
automatic = mkOption {
|
automatic = mkOption {
|
||||||
type = types.bool;
|
type = bool;
|
||||||
default = true;
|
default = true;
|
||||||
};
|
};
|
||||||
dates = mkOption {
|
dates = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
default = "Monday 01:00 UTC";
|
default = "Monday 01:00 UTC";
|
||||||
};
|
};
|
||||||
options = mkOption {
|
options = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
default = "--delete-older-than 30d";
|
default = "--delete-older-than 30d";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -123,19 +133,19 @@ in {
|
|||||||
sound = {
|
sound = {
|
||||||
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
enable = mkEnableOption "Whether to enable sounds with Pipewire";
|
||||||
alsa = mkOption {
|
alsa = mkOption {
|
||||||
type = types.bool;
|
type = bool;
|
||||||
example = true;
|
example = true;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Whether to enable ALSA support with Pipewire";
|
description = "Whether to enable ALSA support with Pipewire";
|
||||||
};
|
};
|
||||||
jack = mkOption {
|
jack = mkOption {
|
||||||
type = types.bool;
|
type = bool;
|
||||||
example = true;
|
example = true;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Whether to enable JACK support with Pipewire";
|
description = "Whether to enable JACK support with Pipewire";
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = package;
|
||||||
example = pkgs.pulseaudio;
|
example = pkgs.pulseaudio;
|
||||||
default = pkgs.pulseaudioFull;
|
default = pkgs.pulseaudioFull;
|
||||||
description = "Which base package to use for PulseAudio";
|
description = "Which base package to use for PulseAudio";
|
||||||
@ -144,27 +154,28 @@ in {
|
|||||||
users = {
|
users = {
|
||||||
root.disablePassword = mkEnableOption "Disables root password";
|
root.disablePassword = mkEnableOption "Disables root password";
|
||||||
phundrak = mkOption {
|
phundrak = mkOption {
|
||||||
type = types.bool;
|
type = bool;
|
||||||
default = true;
|
default = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
timezone = mkOption {
|
timezone = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
default = "Europe/Paris";
|
default = "Europe/Paris";
|
||||||
};
|
};
|
||||||
console.keyMap = mkOption {
|
console.keyMap = mkOption {
|
||||||
type = types.str;
|
type = str;
|
||||||
default = "fr";
|
default = "fr";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
boot.tmp.cleanOnBoot = true;
|
||||||
time.timeZone = cfg.timezone;
|
time.timeZone = cfg.timezone;
|
||||||
console.keyMap = cfg.console.keyMap;
|
console.keyMap = cfg.console.keyMap;
|
||||||
modules = {
|
modules = {
|
||||||
boot = {
|
boot = {
|
||||||
inherit (cfg) amdgpu;
|
inherit (cfg) amdgpu;
|
||||||
inherit (cfg.boot) kernel plymouth zfs;
|
inherit (cfg.boot) kernel systemd-boot plymouth zfs;
|
||||||
};
|
};
|
||||||
inherit (cfg) sound users networking docker amdgpu;
|
inherit (cfg) sound users networking docker amdgpu;
|
||||||
};
|
};
|
||||||
|
@ -26,12 +26,7 @@ in {
|
|||||||
description = "Lucien Cartier-Tilet";
|
description = "Lucien Cartier-Tilet";
|
||||||
extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman"];
|
extraGroups = ["networkmanager" "wheel" "docker" "dialout" "podman"];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
openssh.authorizedKeys.keyFiles = [
|
openssh.authorizedKeys.keyFiles = lib.filesystem.listFilesRecursive ./keys;
|
||||||
./keys/id_gampo.pub
|
|
||||||
./keys/id_marpa.pub
|
|
||||||
./keys/id_tilo.pub
|
|
||||||
./keys/id_opn4.pub
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
@ -4,7 +4,7 @@ mopidy:
|
|||||||
bandcamp: ENC[AES256_GCM,data:diEx2fbkOR1oUav81jU5bNt/KNmbOaVzLV+G3zBUVXE7nEQpZNqVom0rgNrEVDGzH3u/IaA5eqG5ce9lE0BomeY8Z4MWI1xujhX5KsXdv21aw4UwsNgyLPuWhkN2POUMfCJlvekc/TFfFvJHyysx8aKxeI4dsg==,iv:cxx0cVkjOPG+hMD8JctJHdcICJt7ozpfRBVSCDBo6Ro=,tag:JRjwwvieGaGZJ+k56HWFaw==,type:str]
|
bandcamp: ENC[AES256_GCM,data:diEx2fbkOR1oUav81jU5bNt/KNmbOaVzLV+G3zBUVXE7nEQpZNqVom0rgNrEVDGzH3u/IaA5eqG5ce9lE0BomeY8Z4MWI1xujhX5KsXdv21aw4UwsNgyLPuWhkN2POUMfCJlvekc/TFfFvJHyysx8aKxeI4dsg==,iv:cxx0cVkjOPG+hMD8JctJHdcICJt7ozpfRBVSCDBo6Ro=,tag:JRjwwvieGaGZJ+k56HWFaw==,type:str]
|
||||||
emailPassword: ENC[AES256_GCM,data:LALAvyuNN9bfa8D6ZK1YiFXRfxLOBi9kXA0N0Kr7h18eAI4hWQ==,iv:WtidILFfWCMKylax52JP+X57GfZyYlxJtiwrC6SADik=,tag:NvOrsL3fbmxQZp06GZhUZA==,type:str]
|
emailPassword: ENC[AES256_GCM,data:LALAvyuNN9bfa8D6ZK1YiFXRfxLOBi9kXA0N0Kr7h18eAI4hWQ==,iv:WtidILFfWCMKylax52JP+X57GfZyYlxJtiwrC6SADik=,tag:NvOrsL3fbmxQZp06GZhUZA==,type:str]
|
||||||
ssh:
|
ssh:
|
||||||
hosts: ENC[AES256_GCM,data:jLLehzuBuBh22ZukRlqjQJNBg0ri8go58SJfs4GjNqNdvI/H0NWRS0apqLPzERkbpPipex3kUiFIc6BH+usSSpfh/MWico8qZDKVD7Ekx6F8k45I2Pq+mbLsMEo3XfjcnfYgDWn2I7/jyidBsvA+m9VnjU8/Cnk5O/YeIZQRvfOZ4xc8zw7C/vqmxsNi2KZr+2N23L+eetoKM4J6AigmINH41wAL3/RlB0oCpjSHSkbp7Glu2LlyJygS52p9m5pq4QBXtoiu5AJ6qG17LrypmDjfxE2zU2R3Zu6VLbs4zWQY2+W36j33Fm5nMkMMPJAEdRR27HPxM2EAEuH4OI1Jbup669sln9nJxnO2zYveplNPsAb3a16D4L9rwSzUd1s2W+NlqBSYdyAktuvtPWf1vAg9+Fob9jUgUFGTQpNF8Xj1n+DqvXlLQknsB/7EhNSSnYyQS36wHF9KBHJwexpYbhnGiMuLjN6KXbr/YYawocSA/5o8s6X/tRXKMkXtZjoEsyr1aNMj+4gSHaSUOG78r3VwAHLOXNez67xFpKMa/IQfQhj2Zng8142hhL4hPyNtuTOK3oVvPjZtAfbfxesUi+Zx2VhaJsnmj6J4gAOWU9nVpol67V0hNSD4LMUOZwwPst11IyJsXjkKKY0iy7ykFMTk6KalkVUqlYOmQRIXtBE9sD4esC+FGH1ONi3n0tbG7YivmV3YSmxk0RvQ/YlKGOchKpPH/bzN/X+NZh6A3Uk5uDsqU+GOjfDY2yIgetw4FAQ42YMxNmTJjq6MpcaETb5eQm8wee4QaVODocXHyknfWs6FYGNUjQpYp3+zxKJovHuKQcFgug3t8Si5hKnQz6KDZNaoDE0UMBR2ABbAX1Bcvu0lLHzaPXpGfXyoAe+B3MwF9/TTVkCNNYhNKm63P7qUuIbKLLCDXH6e4y5YiIF8Sl9jF/kR8v8MbLgrAROx8NlTm5CqNhQWOPQQyQXvXEl5hwHyF9ptrXUB9wIe,iv:6Lzbf+DBTfaZj7NhTJ07dVPuaViP61V4N2QHPTEFzMQ=,tag:8t4c0DJmAwg/0qRLBW4vCQ==,type:str]
|
hosts: ENC[AES256_GCM,data:X/MrxeaqJnggoL9X8Y0+15A52FoihVRFp4vBZNr/QlJAKRn0B1eH6LI4wVzNokMbPUGlmYEElShy38ce+7EehL5HJcbwpEquvgQpLN2lZ4FhMLbW7yN3Q8DdZKqv4RNsm8vjuJPGwHGEVOhdvvnyM6IVpvLvMuH7MLJg4hLSArBzX7N0i5qg8piWI3pHqoPV4yO7kysSSF7D13HXen3fX+dbpBno/n0U+Xq8gcFyUKAqN6h65frkH2pyQcxIrCYcsFoJcU2jIzUY94xCSZZT7ocItzKD5YtVRki6F4Gh0/QgFeFcCn20Z0w8B7WvkjcR98FE+i5D9128uv2iiKEyeNaB4hc14dFCG4iZWW1KcSUojBnXHpFj22aByJaxjcFVg5BIVyde8L4hEinztWjNwbRzi1d9b34qeARcEzDQ3fwSNL/XFrlTvNZp565y/rPBLceksELewpWyX4Te3fuNOOw7hQqX3cjbGfw/FNuBVI/jnkEC+acGi23HnwmnDz87KCGZ738OAQ78F5awuoHnHhePvj0bUe3DTdW9Uj8amnaq1IeIu/BBcutewgez7ZHWamIWiOuVaZUISD6wrYk4pe5KqAZieUdotxbx7eihpw0ozEzQaNU3WBwQ8YxIyEnzcnsAihXCcgbm1/8FzWxghN3elA48UqVwaa4ZHK01l8+jD5yGjuCTCcpmSkVZBg8XrH7VWm+pZMCt3FRus3vFWq/iLsapIu6YSWG+mCYCjEK5hhbZs7ELxpdIzCw6Hiqm+P4nWVwA0ddbtSA7Rhu33CTKzdc0/KIQN78U0P+AsV0tVy7oLboIEZhpsj6XXYwQv5q9d0eJw/hibsqHdRb144Zn0hJDqxe/R+vCDk2iC3OYx5pG4oFbBG8V487QC67TG4Q+ztGCL8+W8+ZoVjK+atfA2LVHVWobFWNmqAE9CbVu8cbW3BhAtWrBZGgUMW5noFi64U411QEPS88odXtaqhUoN77rMhYCtVBxSSkGMWvwY2VZn6UvY8NZTExD5rJmDU9rRHmCNHq4WaAjxUg1rzwd4VO9CDnCf2gSeF466blpf2JEky8=,iv:0laLebvzVUMrKT30Jx/HaRS426PsWD3oFTesV4tnnDg=,tag:DApK5SSAriLib00FTz+jcg==,type:str]
|
||||||
sops:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48
|
- recipient: age1ajemtm502nn2n4q7v4j8meyd5mxtcqngkkedxq2pqzuwu78zp93qnw8q48
|
||||||
@ -61,7 +61,7 @@ sops:
|
|||||||
QmJKNDJUY0RSakhwNWlkOVpib0trc1kK0tQxD9I82pjfs54eruu+IjzVUmcVBCPw
|
QmJKNDJUY0RSakhwNWlkOVpib0trc1kK0tQxD9I82pjfs54eruu+IjzVUmcVBCPw
|
||||||
9mp1xKiYRRMXt3YQn6MPiyuuX3l3UB5MH0RJMNtRq0D961rs+iiS5A==
|
9mp1xKiYRRMXt3YQn6MPiyuuX3l3UB5MH0RJMNtRq0D961rs+iiS5A==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-05-04T01:05:13Z"
|
lastmodified: "2025-07-06T19:20:04Z"
|
||||||
mac: ENC[AES256_GCM,data:/wuo0bg48xlbP074JJ0rtmclWMG9vjlJnWjJnUaz45m+Gqj4IzA5ctSZdNnFTb7/CXkynJdFHme4/Nz8I/6+zzTFBeo/nVw43s1n0XmMqVYb2U/FTikvCMowHNnfMTY5Q83jD1MtE3XsRSCzxe649D4Zbcja8XG42v5rOt3geMA=,iv:n/yFp5f+LK8JaikifjRuieNtmcazl2VNz8rIzbvgBO8=,tag:Fs4+St1lxMn+VdEoP+Eo8g==,type:str]
|
mac: ENC[AES256_GCM,data:59Mu6RlGEXV7BsNsX0yIr/zUgl9gvk77o2moF4D7GgPwllSVFLRB8Y3LvE7+NXLIjLj19nrK6b99CiH08NmWhSBO37+xXU/eYQ/W2wIEVIxfmhVcF9ePIZPwVuegLZ707S8jZDOcYzPOQuURe9hhbxJJPgHzzPzYoh7yushYUME=,iv:h6DCciUZtRMZFGB7PMfg4xnOWxyKQS/vfnOG1tqVfrI=,tag:q65pnHbLcUG+Gxo7K3Ca1w==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.10.2
|
||||||
|
8
users/phundrak/alys.nix
Normal file
8
users/phundrak/alys.nix
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
imports = [./light-home.nix];
|
||||||
|
home.phundrak.sshKey = {
|
||||||
|
content = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTv1lb6d99O84jeh6GdjPm8Gnt/HncSRhGhmoTq7BMK lucien@phundrak.com";
|
||||||
|
file = "/home/phundrak/.ssh/id_ed25519.pub";
|
||||||
|
};
|
||||||
|
modules.nh.flake = "/home/phundrak/.dotfiles";
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user