Framework 12 Initial setup
This commit is contained in:
parent
af5b392286
commit
3d0fdb6ac4
9 changed files with 294 additions and 9 deletions
82
disko/impermanence-tmpfs-luks.nix
Normal file
82
disko/impermanence-tmpfs-luks.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
{
|
||||||
|
device ? throw "Set this to your disk device, e.g. /dev/sda",
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
main = {
|
||||||
|
type = "disk";
|
||||||
|
device = device;
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
label = "boot";
|
||||||
|
name = "ESP";
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luks = {
|
||||||
|
size = "100%";
|
||||||
|
label = "luks";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "cryptroot";
|
||||||
|
extraOpenArgs = [
|
||||||
|
"--allow-discards"
|
||||||
|
"--perf-no_read_workqueue"
|
||||||
|
"--perf-no_write_workqueue"
|
||||||
|
];
|
||||||
|
# https://0pointer.net/blog/unlocking-luks2-volumes-with-tpm2-fido2-pkcs11-security-hardware-on-systemd-248.html
|
||||||
|
settings = {crypttabExtraOpts = ["fido2-device=auto" "token-timeout=10"];};
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "ext4";
|
||||||
|
mountpoint = "/persist";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
nodev = {
|
||||||
|
"/" = {
|
||||||
|
fsType = "tmpfs";
|
||||||
|
mountOptions = [ "defaults" "size=8G" "mode=755" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/persist" = {
|
||||||
|
depends = [ "/" ];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
fileSystems."/nix" = {
|
||||||
|
device = "/persist/nix";
|
||||||
|
options = [ "bind" ];
|
||||||
|
depends = [ "/persist" ];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
fileSystems."/tmp" = {
|
||||||
|
device = "/persist/tmp";
|
||||||
|
options = [ "bind" ];
|
||||||
|
depends = [ "/persist" ];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
swapDevices = [{
|
||||||
|
device = "/persist/swapfile";
|
||||||
|
size = 64*1024; # 64 GB
|
||||||
|
}];
|
||||||
|
|
||||||
|
boot.resumeDevice = "/persist/swapfile";
|
||||||
|
}
|
||||||
17
flake.lock
generated
17
flake.lock
generated
|
|
@ -1119,6 +1119,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixos-hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752048960,
|
||||||
|
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-wsl": {
|
"nixos-wsl": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_5",
|
"flake-compat": "flake-compat_5",
|
||||||
|
|
@ -3699,6 +3715,7 @@
|
||||||
"nix-gaming": "nix-gaming",
|
"nix-gaming": "nix-gaming",
|
||||||
"nix-on-droid": "nix-on-droid",
|
"nix-on-droid": "nix-on-droid",
|
||||||
"nixos-facter-modules": "nixos-facter-modules",
|
"nixos-facter-modules": "nixos-facter-modules",
|
||||||
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixos-wsl": "nixos-wsl",
|
"nixos-wsl": "nixos-wsl",
|
||||||
"nixpkgs": "nixpkgs_12",
|
"nixpkgs": "nixpkgs_12",
|
||||||
"nixpkgs-master": "nixpkgs-master",
|
"nixpkgs-master": "nixpkgs-master",
|
||||||
|
|
|
||||||
38
flake.nix
38
flake.nix
|
|
@ -69,6 +69,7 @@
|
||||||
niri-flake = {
|
niri-flake = {
|
||||||
url = "github:sodiboo/niri-flake";
|
url = "github:sodiboo/niri-flake";
|
||||||
};
|
};
|
||||||
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
@ -137,6 +138,16 @@
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
kylekrein-framework12-pkgs = nixpkgs: import nixpkgs {
|
||||||
|
system = x86;
|
||||||
|
overlays = [
|
||||||
|
inputs.beeengine.overlays.${x86}
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
allowBroken = true;
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
kylekrein-mac-pkgs = nixpkgs: import nixpkgs {
|
kylekrein-mac-pkgs = nixpkgs: import nixpkgs {
|
||||||
system = arm;
|
system = arm;
|
||||||
overlays = [
|
overlays = [
|
||||||
|
|
@ -201,6 +212,7 @@
|
||||||
hwconfig = {
|
hwconfig = {
|
||||||
hostname = "kylekrein-homepc";
|
hostname = "kylekrein-homepc";
|
||||||
isLaptop = false;
|
isLaptop = false;
|
||||||
|
hasTouchscreen = false;
|
||||||
system = x86;
|
system = x86;
|
||||||
useImpermanence = true;
|
useImpermanence = true;
|
||||||
};
|
};
|
||||||
|
|
@ -216,11 +228,34 @@
|
||||||
./nixos/configuration.nix
|
./nixos/configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"kylekrein-framework12" = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
hwconfig = {
|
||||||
|
hostname = "kylekrein-framework12";
|
||||||
|
isLaptop = true;
|
||||||
|
hasTouchscreen = true;
|
||||||
|
system = x86;
|
||||||
|
useImpermanence = true;
|
||||||
|
};
|
||||||
|
inherit first-nixos-install;
|
||||||
|
inherit inputs;
|
||||||
|
unstable-pkgs = kylekrein-framework12-pkgs nixpkgs-unstable;
|
||||||
|
};
|
||||||
|
|
||||||
|
system = x86;
|
||||||
|
pkgs = kylekrein-framework12-pkgs nixpkgs;
|
||||||
|
modules = [
|
||||||
|
(import ./disko/impermanence-tmpfs-luks.nix {device = "/dev/nvme0n1";})
|
||||||
|
./nixos/configuration.nix
|
||||||
|
inputs.nixos-hardware.nixosModules.framework-12-13th-gen-intel
|
||||||
|
];
|
||||||
|
};
|
||||||
"kylekrein-mac" = nixpkgs.lib.nixosSystem {
|
"kylekrein-mac" = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
hwconfig = {
|
hwconfig = {
|
||||||
hostname = "kylekrein-mac";
|
hostname = "kylekrein-mac";
|
||||||
isLaptop = true;
|
isLaptop = true;
|
||||||
|
hasTouchscreen = false;
|
||||||
system = arm;
|
system = arm;
|
||||||
useImpermanence = true;
|
useImpermanence = true;
|
||||||
};
|
};
|
||||||
|
|
@ -240,6 +275,7 @@
|
||||||
hwconfig = {
|
hwconfig = {
|
||||||
hostname = "kylekrein-server";
|
hostname = "kylekrein-server";
|
||||||
isLaptop = false;
|
isLaptop = false;
|
||||||
|
hasTouchscreen = false;
|
||||||
system = x86;
|
system = x86;
|
||||||
useImpermanence = false;
|
useImpermanence = false;
|
||||||
};
|
};
|
||||||
|
|
@ -259,6 +295,7 @@
|
||||||
hwconfig = {
|
hwconfig = {
|
||||||
hostname = "kylekrein-wsl";
|
hostname = "kylekrein-wsl";
|
||||||
isLaptop = true;
|
isLaptop = true;
|
||||||
|
hasTouchscreen = false;
|
||||||
system = x86;
|
system = x86;
|
||||||
useImpermanence = false;
|
useImpermanence = false;
|
||||||
};
|
};
|
||||||
|
|
@ -279,6 +316,7 @@
|
||||||
hwconfig = {
|
hwconfig = {
|
||||||
hostname = "andrej-pc";
|
hostname = "andrej-pc";
|
||||||
isLaptop = false;
|
isLaptop = false;
|
||||||
|
hasTouchscreen = false;
|
||||||
system = x86;
|
system = x86;
|
||||||
useImpermanence = false;
|
useImpermanence = false;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
48
nixos/homes/kylekrein/lisgd-config.h
Normal file
48
nixos/homes/kylekrein/lisgd-config.h
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
distancethreshold: Minimum cutoff for a gestures to take effect
|
||||||
|
degreesleniency: Offset degrees within which gesture is recognized (max=45)
|
||||||
|
timeoutms: Maximum duration for a gesture to take place in miliseconds
|
||||||
|
orientation: Number of 90 degree turns to shift gestures by
|
||||||
|
verbose: 1=enabled, 0=disabled; helpful for debugging
|
||||||
|
device: Path to the /dev/ filesystem device events should be read from
|
||||||
|
gestures: Array of gestures; binds num of fingers / gesturetypes to commands
|
||||||
|
Supported gestures: SwipeLR, SwipeRL, SwipeDU, SwipeUD,
|
||||||
|
SwipeDLUR, SwipeURDL, SwipeDRUL, SwipeULDR
|
||||||
|
*/
|
||||||
|
|
||||||
|
unsigned int distancethreshold = 125;
|
||||||
|
unsigned int distancethreshold_pressed = 60;
|
||||||
|
unsigned int degreesleniency = 15;
|
||||||
|
unsigned int timeoutms = 800;
|
||||||
|
unsigned int orientation = 0;
|
||||||
|
unsigned int verbose = 0;
|
||||||
|
double edgesizeleft = 50.0;
|
||||||
|
double edgesizetop = 50.0;
|
||||||
|
double edgesizeright = 50.0;
|
||||||
|
double edgesizebottom = 50.0;
|
||||||
|
double edgessizecaling = 1.0;
|
||||||
|
char *device = "/dev/input/touchscreen";
|
||||||
|
|
||||||
|
//Gestures can also be specified interactively from the command line using -g
|
||||||
|
Gesture gestures[] = {
|
||||||
|
/* nfingers gesturetype command */
|
||||||
|
//{1, SwipeLR, EdgeAny, DistanceAny, ActModeReleased, "niri msg action "},
|
||||||
|
//{1, SwipeRL, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
// "xdotool key --clearmodifiers Alt+Shift+r"},
|
||||||
|
//{1, SwipeDLUR, EdgeAny, DistanceAny, ActModeReleased, "sxmo_vol.sh up"},
|
||||||
|
//{1, SwipeURDL, EdgeAny, DistanceAny, ActModeReleased, "sxmo_vol.sh down"},
|
||||||
|
//{1, SwipeDRUL, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
// "sxmo_brightness.sh up"},
|
||||||
|
//{1, SwipeULDR, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
//"sxmo_brightness.sh down"},
|
||||||
|
//{2, SwipeLR, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
// "xdotool key --clearmodifiers Alt+e"},
|
||||||
|
//{2, SwipeRL, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
// "xdotool key --clearmodifiers Alt+r"},
|
||||||
|
{2, SwipeDU, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
"pidof wvkbd-mobintl || wvkbd-mobintl -l simple,special,emoji &"},
|
||||||
|
{2, SwipeUD, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
"pkill -9 -f wvkbd-mobintl"},
|
||||||
|
{3, SwipeDU, EdgeAny, DistanceAny, ActModeReleased,
|
||||||
|
"niri msg action toggle-overview"},
|
||||||
|
};
|
||||||
2
nixos/homes/kylekrein/lisgd.nix
Normal file
2
nixos/homes/kylekrein/lisgd.nix
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
{ pkgs }:
|
||||||
|
pkgs.lisgd.override { conf = ./lisgd-config.h; }
|
||||||
|
|
@ -24,7 +24,9 @@
|
||||||
libnotify
|
libnotify
|
||||||
hyprlock
|
hyprlock
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
];
|
] ++ lib.optionals (hwconfig.hasTouchscreen) (with pkgs;[
|
||||||
|
wvkbd # https://github.com/jjsullivan5196/wvkbd
|
||||||
|
]);
|
||||||
programs.niri = {
|
programs.niri = {
|
||||||
settings = {
|
settings = {
|
||||||
outputs = lib.mkIf (hwconfig.hostname == "kylekrein-homepc") {
|
outputs = lib.mkIf (hwconfig.hostname == "kylekrein-homepc") {
|
||||||
|
|
@ -47,8 +49,14 @@
|
||||||
"25%"
|
"25%"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
touchscreen-gestures = lib.mkIf (hwconfig.hasTouchscreen) {
|
||||||
|
command = [
|
||||||
|
"${lib.getExe (import ./lisgd.nix { inherit pkgs; })}" #https://git.sr.ht/~mil/lisgd
|
||||||
|
];
|
||||||
|
};
|
||||||
in [
|
in [
|
||||||
set-low-brightness
|
set-low-brightness
|
||||||
|
touchscreen-gestures
|
||||||
{
|
{
|
||||||
command = [
|
command = [
|
||||||
"${lib.getExe pkgs.networkmanagerapplet}"
|
"${lib.getExe pkgs.networkmanagerapplet}"
|
||||||
|
|
|
||||||
93
nixos/hosts/kylekrein-framework12/default.nix
Normal file
93
nixos/hosts/kylekrein-framework12/default.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
{
|
||||||
|
options,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
unstable-pkgs,
|
||||||
|
lib,
|
||||||
|
hwconfig,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../../hardware/nvidia
|
||||||
|
|
||||||
|
../../modules/niri
|
||||||
|
|
||||||
|
../../modules/libvirt
|
||||||
|
|
||||||
|
../../users/kylekrein
|
||||||
|
(import ../../modules/libvirt/user.nix {username = "kylekrein";})
|
||||||
|
|
||||||
|
../../users/tania
|
||||||
|
];
|
||||||
|
sops.secrets."ssh_keys/${hwconfig.hostname}" = {};
|
||||||
|
facter.reportPath = lib.mkForce null;
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
# Fixes java crash because of bind mount with impermanence when loading too many mods(ex. All The Mods 9)
|
||||||
|
(self: super: {
|
||||||
|
prismlauncher = pkgs.symlinkJoin {
|
||||||
|
name = "prismlauncher";
|
||||||
|
paths = [ super.prismlauncher];
|
||||||
|
buildInputs = [ pkgs.makeWrapper ];
|
||||||
|
postBuild = ''
|
||||||
|
wrapProgram $out/bin/prismlauncher --set HOME /persist/home/kylekrein
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
(self: super: {
|
||||||
|
bottles = pkgs.symlinkJoin {
|
||||||
|
name = "bottles";
|
||||||
|
paths = [ super.bottles];
|
||||||
|
buildInputs = [ pkgs.makeWrapper ];
|
||||||
|
postBuild = ''
|
||||||
|
wrapProgram $out/bin/bottles --set HOME /persist/home/kylekrein
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
blender
|
||||||
|
ladybird
|
||||||
|
prismlauncher
|
||||||
|
|
||||||
|
#inputs.nix-gaming.packages.${pkgs.system}.star-citizen
|
||||||
|
];
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true; # Hopefully? helps with freezing when using swap
|
||||||
|
};
|
||||||
|
services.zerotierone = {
|
||||||
|
enable = true;
|
||||||
|
port = 9994;
|
||||||
|
joinNetworks = [
|
||||||
|
"A84AC5C10AD269CA"
|
||||||
|
"db64858fed285e0f"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
#LLMs
|
||||||
|
services.ollama = {
|
||||||
|
enable = true;
|
||||||
|
loadModels = [ "qwq" "llama3.1" "qwen2.5-coder:7b" ];
|
||||||
|
acceleration = "cuda";
|
||||||
|
home = "/persist/ollama";
|
||||||
|
user = "ollama";
|
||||||
|
group = "ollama";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.binfmt.emulatedSystems = [ "aarch64-linux" "riscv64-linux" ];
|
||||||
|
|
||||||
|
services.open-webui.enable = true;
|
||||||
|
#services.open-webui.package = unstable-pkgs.open-webui;
|
||||||
|
services.open-webui.openFirewall = false;
|
||||||
|
services.open-webui.host = "0.0.0.0";
|
||||||
|
services.open-webui.stateDir = "/persist/open-webui";
|
||||||
|
systemd.services.open-webui.serviceConfig.User = "ollama";
|
||||||
|
systemd.services.open-webui.serviceConfig.Group = "ollama";
|
||||||
|
systemd.services.open-webui.serviceConfig.DynamicUser = lib.mkForce false;
|
||||||
|
|
||||||
|
#Chat host
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 443 22 8448 9993 8081] ++ [ config.services.zerotierone.port ];
|
||||||
|
networking.firewall.allowedUDPPorts = [config.services.zerotierone.port];
|
||||||
|
|
||||||
|
systemd.network.wait-online.enable = lib.mkForce false;
|
||||||
|
}
|
||||||
|
|
@ -5,6 +5,7 @@ users:
|
||||||
ssh_keys:
|
ssh_keys:
|
||||||
kylekrein-mac: ENC[AES256_GCM,data:Gnh34OQWO6eQfNfyYZsVfvktknmZorQYF+lNMKYvV7XkKjZ3RQNHyJ3UWOX+sVwWdtF7EboXkBPdHvnyLvDVIyv7trxTU5IXQzOI+34AKfPHa828HuOLk0AclCmm6GcNq/X4dKTX5DADG4cE4/V+KtdjvSMtLX7I1cjlfsN7JzcsnjERbK8Q0pTMuA44IUdnh0odH9xFEP/f/hVZZZhc5vrMfAqSx3lQxCF62c0wJaorobsPSM7BTzorVgnMnc3zJRAlgQnCnAe306/6g4hurBteIVeGFhA8gSk1fjZh2fm0opo/lgvHRJOwfpvRWJGEedx7hEpjsDr8BRxeBc2OHaRO5UP+fYh8Qtki8ZeFUjr/psjRRz128Kr0C+NS0AByZtwg54d705uwsnf79jPdM1ewGryCcsxqYWCvT0174cIg3sLdQvPnESbV1zU+QsVskFZwYL+gLtzuAwExPW7cM12M/HS+Eb5xtWvRA46FZ/dnKFwQkUA/VgSi08eC5/EYg8dFBht9hDK+kiLPGHML8A6a3CoiMf0pd+DbdOxA21F0Tw==,iv:oEXxrvWosuiH2wSoSkP7YMwBQu3JKIhn/YeiaTL/UT4=,tag:XgBw2q/6LPWg2zuOC9Wb+w==,type:str]
|
kylekrein-mac: ENC[AES256_GCM,data:Gnh34OQWO6eQfNfyYZsVfvktknmZorQYF+lNMKYvV7XkKjZ3RQNHyJ3UWOX+sVwWdtF7EboXkBPdHvnyLvDVIyv7trxTU5IXQzOI+34AKfPHa828HuOLk0AclCmm6GcNq/X4dKTX5DADG4cE4/V+KtdjvSMtLX7I1cjlfsN7JzcsnjERbK8Q0pTMuA44IUdnh0odH9xFEP/f/hVZZZhc5vrMfAqSx3lQxCF62c0wJaorobsPSM7BTzorVgnMnc3zJRAlgQnCnAe306/6g4hurBteIVeGFhA8gSk1fjZh2fm0opo/lgvHRJOwfpvRWJGEedx7hEpjsDr8BRxeBc2OHaRO5UP+fYh8Qtki8ZeFUjr/psjRRz128Kr0C+NS0AByZtwg54d705uwsnf79jPdM1ewGryCcsxqYWCvT0174cIg3sLdQvPnESbV1zU+QsVskFZwYL+gLtzuAwExPW7cM12M/HS+Eb5xtWvRA46FZ/dnKFwQkUA/VgSi08eC5/EYg8dFBht9hDK+kiLPGHML8A6a3CoiMf0pd+DbdOxA21F0Tw==,iv:oEXxrvWosuiH2wSoSkP7YMwBQu3JKIhn/YeiaTL/UT4=,tag:XgBw2q/6LPWg2zuOC9Wb+w==,type:str]
|
||||||
kylekrein-homepc: ENC[AES256_GCM,data:/7b7wHk9jX+2Gel3157KO4YHia+IyEurUic0BX9flNKdsjIyG/3N8lORAkIjwnPlFaN2VqGu6o1pFgW2dzkSAyATQIUeWpqL5rjxsG3mJ9/9TLh58Y7MIpFKx2r8AeUY0xEAhT1A4BCbnDMsneQtM9gBkgPdhhv6vVpe4XJS3n+dGPER/bQxxRbEt260EjxvL1OPf5C7Z7qNVhOzxNdgdJMQvXxyhRGlXRrrHFRdbw0nChStevgBL4+FoMuBFkqF/aJSoapwe8PNxp8z+Hk5Em+BQv/ieFcscESssCK1gSbvfz6MQyX+5ig+Gy+t28yy56/ir44PHwX47IOILzg7lABSvN+Uyt+sRKyBfx124hJjqgXf65YQ/fgknQt0NDKwZyP/gPSLC9HiLKdva/P9nuenfSnlLrGtfugejBAVQBMOP2HTp/ZKtveeKLVIzM7NLeHAw8ul1OL8OlOgyO3vhEkEVagLwtQYHqwoF7+z30TzTtGyDzuhohbhUH36D8BD/LTaPHxnnVIzWq/IBOmAU06U/EvS5x/JJtqMm8aaDFFEYA==,iv:+4umMhsr8s0IuiYuEdhDAOfLjAELEHbFVvWqaVyF2yQ=,tag:eE9gCZ3pC4wDLeMs5cQGZg==,type:str]
|
kylekrein-homepc: ENC[AES256_GCM,data:/7b7wHk9jX+2Gel3157KO4YHia+IyEurUic0BX9flNKdsjIyG/3N8lORAkIjwnPlFaN2VqGu6o1pFgW2dzkSAyATQIUeWpqL5rjxsG3mJ9/9TLh58Y7MIpFKx2r8AeUY0xEAhT1A4BCbnDMsneQtM9gBkgPdhhv6vVpe4XJS3n+dGPER/bQxxRbEt260EjxvL1OPf5C7Z7qNVhOzxNdgdJMQvXxyhRGlXRrrHFRdbw0nChStevgBL4+FoMuBFkqF/aJSoapwe8PNxp8z+Hk5Em+BQv/ieFcscESssCK1gSbvfz6MQyX+5ig+Gy+t28yy56/ir44PHwX47IOILzg7lABSvN+Uyt+sRKyBfx124hJjqgXf65YQ/fgknQt0NDKwZyP/gPSLC9HiLKdva/P9nuenfSnlLrGtfugejBAVQBMOP2HTp/ZKtveeKLVIzM7NLeHAw8ul1OL8OlOgyO3vhEkEVagLwtQYHqwoF7+z30TzTtGyDzuhohbhUH36D8BD/LTaPHxnnVIzWq/IBOmAU06U/EvS5x/JJtqMm8aaDFFEYA==,iv:+4umMhsr8s0IuiYuEdhDAOfLjAELEHbFVvWqaVyF2yQ=,tag:eE9gCZ3pC4wDLeMs5cQGZg==,type:str]
|
||||||
|
kylekrein-framework12: ENC[AES256_GCM,data:I9gMFXcLUd4xLUWcrvp2eYcMgkG48dmiRjobnSa2Emtq2dqK/H31KLkTuk6PQvY71YbwG41tdqYsFqKTQTxf7d7toDfnfuXxPUbI2dc2ps2LhpPJb9wTUKRgHtJNwPpMjQ5s7lumG9wltWhT1xMSZvthq1LBcgL4iYYmePLef0TBvExnkRohqn32H64RILhX2VrI8gAWoYU7PglbG3J4tyUH1+zB2t8G8MrEDTMjMIbXmP3tALFiGl/AeSRrvZaCLnm7I3bgkhWJIic2ZXsbEknR5to5jhSI99Tdm4U5R+HyX1LCWr55jxmMdafvdqQlaTeTrv8fu3e4k7rEVkT2XzLnChG3MOUskNLbTcKscHiilCkrFMwp7Qo2EgQIj4VxKqrr0Dp+xj1PPl0q7bTAejR1ijpdOIlpn+PE7A6mBoIMMUcUu2hApe/eWqEUpHs6jKU9r6w+k8+O7IcwHGS1KgAzTAGPjiDZeWVPdUdanC+p4lp6sqjf4+ZaFbinGZfWpCX8pIv3Yzszc4+8j7PTQtX9GkQDVP7HXUyZS+SOH/169A==,iv:dF5+s+26zmoy0fR72P+pvPikshPtqLYewMCrieRJWaQ=,tag:R4/9xHLmOLkDqZnXClSKIA==,type:str]
|
||||||
services:
|
services:
|
||||||
conduwuit: ENC[AES256_GCM,data:1shEq67QJTkeqrfYSr/eYG7gYWH//5ey6XQ=,iv:hy5wQmue8qU4ALfn9BrNQLnsTk8BsVVXY/8bDj18mXk=,tag:h6+hL0HjgSzd15Kc7Zg4ng==,type:str]
|
conduwuit: ENC[AES256_GCM,data:1shEq67QJTkeqrfYSr/eYG7gYWH//5ey6XQ=,iv:hy5wQmue8qU4ALfn9BrNQLnsTk8BsVVXY/8bDj18mXk=,tag:h6+hL0HjgSzd15Kc7Zg4ng==,type:str]
|
||||||
gitlab:
|
gitlab:
|
||||||
|
|
@ -18,10 +19,6 @@ services:
|
||||||
activeRecordDeterministicKey: ENC[AES256_GCM,data:pJBZAL60XeCrW7CPx76WcWpsYOwlR4OWmIP/61vNL3k=,iv:t/YmnVFge6kLiQjXD6RKNn7r5Oy1Aeyi3ZIaP57Nhig=,tag:L4aU4h4KdbsSNDpgybaV3g==,type:str]
|
activeRecordDeterministicKey: ENC[AES256_GCM,data:pJBZAL60XeCrW7CPx76WcWpsYOwlR4OWmIP/61vNL3k=,iv:t/YmnVFge6kLiQjXD6RKNn7r5Oy1Aeyi3ZIaP57Nhig=,tag:L4aU4h4KdbsSNDpgybaV3g==,type:str]
|
||||||
oidcKeyBase: ENC[AES256_GCM,data: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,iv:P8C/7NUd1G/VbKz7iWjTVXxMFOxZQxX5d0V4Tj6KeCw=,tag:iq4s3ahqkmf4e7BffjlIcQ==,type:str]
|
oidcKeyBase: ENC[AES256_GCM,data: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,iv:P8C/7NUd1G/VbKz7iWjTVXxMFOxZQxX5d0V4Tj6KeCw=,tag:iq4s3ahqkmf4e7BffjlIcQ==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
age:
|
||||||
- recipient: age1l8euy4w4nccrpdmfdfct468parcrulkqcts2jcljajs2as0k7passdv2x4
|
- recipient: age1l8euy4w4nccrpdmfdfct468parcrulkqcts2jcljajs2as0k7passdv2x4
|
||||||
enc: |
|
enc: |
|
||||||
|
|
@ -32,8 +29,7 @@ sops:
|
||||||
M0hSNWNYbGM3a21McUVMaGNqWTdmNTQK3VRFV4EaC8K8AJi2PUt6TeBgueEmPLI8
|
M0hSNWNYbGM3a21McUVMaGNqWTdmNTQK3VRFV4EaC8K8AJi2PUt6TeBgueEmPLI8
|
||||||
Vdwwbh89+xD5xf4Zm0LctPRlxxM6diubv0gIZZPy/ZXZfiU32ZnM0w==
|
Vdwwbh89+xD5xf4Zm0LctPRlxxM6diubv0gIZZPy/ZXZfiU32ZnM0w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-05-22T17:54:01Z"
|
lastmodified: "2025-07-13T17:05:12Z"
|
||||||
mac: ENC[AES256_GCM,data:Mh3pp3IQ+dqFaHY5ppptAS5Rgxhgq2V01/hbV+OPseh7kkHSoq78BEDD7O5W7XNW3EHFZO2T1snvmIfdCfMfI4fOovf54a/2H24C3DALf/CfNEPEPQ2kH6SXgfxGWq9tUnZrwPcaUgbAfbVF9TIjhByDSrMYrnBNOxZh9w0AkzE=,iv:WkUIlqW3IV5il4KYv7o/Vm/g4xrE68koxzx0MTayTbc=,tag:qwLOm137Z2xBqlxZLoE1tw==,type:str]
|
mac: ENC[AES256_GCM,data:hRjaoAb6ggQsrhMK5gDkVSqeKV2Mb2Yrmj8WuPM++UhHzCKVG3mE+uK2teTdbzpaU5+so2SJZuUvYRXVf8cK+2/NGz0ACkiWZ+DF0vbp/A0xW7NPZKhh1Uh3Q64ypKqDR4SsVpjn51FVl02/6k3yxi9bYnVzfdZkr6El3n8kzuE=,iv:I0frhCxpQW+tsPVFgOR/svmdrFpG3RXlSBN4OTO8mBw=,tag:4bY5wPuPMrgSkYW66TgAvA==,type:str]
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.4
|
version: 3.10.2
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,7 @@ in {
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMt3PWVvmEL6a0HHTsxL4KMq1UGKFdzgX5iIkm6owGQ kylekrein@kylekrein-mac"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMt3PWVvmEL6a0HHTsxL4KMq1UGKFdzgX5iIkm6owGQ kylekrein@kylekrein-mac"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFDdxZ5OyGcfD1JwEa4RWw86HWZ2dKFR0syrRckl7EvG kylekrein@kylekrein-homepc"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFDdxZ5OyGcfD1JwEa4RWw86HWZ2dKFR0syrRckl7EvG kylekrein@kylekrein-homepc"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA85Vz5ve3aDzgPbnKH6I4FaJQpcu1nRDR+/kBZiQsuZ kylekrein@kylekrein-framework12"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
sops.secrets = {
|
sops.secrets = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue