Merge branch 'main' of gh:greg-hellings/nixos-config

This commit is contained in:
Greg Hellings
2024-03-25 15:20:47 -05:00
53 changed files with 819 additions and 572 deletions
Generated
+49 -47
View File
@@ -4,14 +4,17 @@
"inputs": { "inputs": {
"darwin": "darwin", "darwin": "darwin",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs" "nixpkgs": [
"nixunstable"
],
"systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1701216516, "lastModified": 1707830867,
"narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=", "narHash": "sha256-PAdwm5QqdlwIqGrfzzvzZubM+FXtilekQ/FA0cI49/o=",
"owner": "ryantm", "owner": "ryantm",
"repo": "agenix", "repo": "agenix",
"rev": "13ac9ac6d68b9a0896e3d43a082947233189e247", "rev": "8cb01a0e717311680e0cbca06a76cbceba6f3ed6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -28,11 +31,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1673295039, "lastModified": 1700795494,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=", "narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943", "rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -66,11 +69,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1696426674,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -81,7 +84,7 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1694529238,
@@ -99,7 +102,7 @@
}, },
"flake-utils_2": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1705309234, "lastModified": 1705309234,
@@ -117,14 +120,14 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1689068808, "lastModified": 1705309234,
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -135,7 +138,7 @@
}, },
"haumea": { "haumea": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1685133229, "lastModified": 1685133229,
@@ -202,11 +205,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1682203081, "lastModified": 1703113217,
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=", "narHash": "sha256-7ulcXOk63TIT2lVDSExj7XzFx09LpdSAPtvgtM7yQPE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1", "rev": "3bfaacf46133c037bb356193bd2f1765d9dc82c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -297,7 +300,7 @@
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nix-flake-tests": "nix-flake-tests", "nix-flake-tests": "nix-flake-tests",
"nixneovimplugins": "nixneovimplugins", "nixneovimplugins": "nixneovimplugins",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_2",
"nmd": "nmd", "nmd": "nmd",
"nmt": "nmt" "nmt": "nmt"
}, },
@@ -342,22 +345,6 @@
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1677676435,
"narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a08d6979dd7c82c4cef0dcc6ac45ab16051c1169",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1681001314, "lastModified": 1681001314,
"narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=",
@@ -372,7 +359,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1705496572, "lastModified": 1705496572,
"narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", "narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=",
@@ -390,11 +377,11 @@
}, },
"nixstable": { "nixstable": {
"locked": { "locked": {
"lastModified": 1705641746, "lastModified": 1708831307,
"narHash": "sha256-D6c2aH8HQbWc7ZWSV0BUpFpd94ImFyCP8jFIsKQ4Slg=", "narHash": "sha256-0iL/DuGjiUeck1zEaL+aIe2WvA3/cVhp/SlmTcOZXH4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d2003f2223cbb8cd95134e4a0541beea215c1073", "rev": "5bf1cadb72ab4e77cb0b700dab76bcdaf88f706b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -406,11 +393,11 @@
}, },
"nixunstable": { "nixunstable": {
"locked": { "locked": {
"lastModified": 1707092692, "lastModified": 1709961763,
"narHash": "sha256-ZbHsm+mGk/izkWtT4xwwqz38fdlwu7nUUKXTOmm4SyE=", "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "faf912b086576fd1a15fca610166c98d47bc667e", "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -556,6 +543,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"wsl": { "wsl": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -565,11 +567,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1689163449, "lastModified": 1709211223,
"narHash": "sha256-C/cm0fRoNGx00lDOieW5439jpBH9VRWRJcAOXUFy+zs=", "narHash": "sha256-1cjd+yXbTlnCwNwEDjn289rJ2f0er5M8pOig4PxniEM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NixOS-WSL", "repo": "NixOS-WSL",
"rev": "20a1f182aed3d2bbc72f62f5814fc3dd34a1cf0c", "rev": "3257ad7f173b0314c8a42fec450fa6556495b97c",
"type": "github" "type": "github"
}, },
"original": { "original": {
+7 -2
View File
@@ -5,7 +5,10 @@
description = "Greg's machines!"; description = "Greg's machines!";
inputs = { inputs = {
agenix.url = "github:ryantm/agenix"; agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixunstable";
};
darwin = { darwin = {
url = "github:lnl7/nix-darwin/master"; url = "github:lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixunstable"; inputs.nixpkgs.follows = "nixunstable";
@@ -65,6 +68,9 @@
unstable = self.nixosConfigurations.jude.config.system.build.toplevel; unstable = self.nixosConfigurations.jude.config.system.build.toplevel;
stable = self.nixosConfigurations.linode.config.system.build.toplevel; stable = self.nixosConfigurations.linode.config.system.build.toplevel;
}; };
aarch64-linux = {
unstable = self.nixosConfigurations.nixos.config.system.build.toplevel;
};
}; };
nixosConfigurations = (import ./hosts { inherit inputs overlays; }); nixosConfigurations = (import ./hosts { inherit inputs overlays; });
@@ -94,7 +100,6 @@
overlays = { overlays = {
default = local_overlay; default = local_overlay;
all = overlays;
}; };
modules = import ./modules; modules = import ./modules;
-19
View File
@@ -1,19 +0,0 @@
{ pkgs, lib, ... }:
let
darwinPkgs = [];
x86Pkgs = with pkgs; [
discord
element-desktop
slack
];
armPkgs = with pkgs; [
element-desktop
];
in {
home.packages = ( if ( pkgs.stdenv.hostPlatform.isDarwin ) then darwinPkgs else
( if ( lib.hasPrefix "aarch64" pkgs.system ) then armPkgs else
( if ( lib.hasPrefix "x86_64" pkgs.system ) then x86Pkgs else [] )
)
);
}
-42
View File
@@ -1,42 +0,0 @@
{ pkgs, ... }:
let
excludes = systems: opts: (
if ( builtins.all (x: pkgs.system != x) systems ) then opts else []
);
in
{
imports = [
./chat.nix
./firefox.nix
];
# These packages are Linux only
home.packages = with pkgs; ( excludes ["x86_64-darwin" "aarch64-darwin"]
[
cdrtools
vlc
x265
]) ++
# x86_64-linux only
( excludes ["x86_64-darwin" "aarch64-darwin" "aarch64-linux"]
[
bitwarden
endeavour
gnucash
jellyfin-media-player
libreoffice
#logseq
nextcloud-client
]) ++
# Items that are not supported on ARM/Linux
( excludes ["aarch64-linux"]
[
onlyoffice-bin
synology-drive-client
zoom-us
]);
}
-49
View File
@@ -1,49 +0,0 @@
{ lib, pkgs, ... }:
let
# For now, we ignore this and don't install it
ffPkgs = if ( pkgs.stdenv.hostPlatform.isDarwin )
then pkgs.firefox-bin
else pkgs.firefox-wayland.override { cfg.enableGnomeExtensions = true; };
vars = {
MOZ_ENABLE_WAYLAND = "1";
XDG_CURRENT_DESKTOP = "sway";
};
in with lib;
{
programs.firefox = {
enable = (! pkgs.stdenv.hostPlatform.isDarwin);
package = ffPkgs;
profiles = {
default = {
settings = {
"app.update.auto" = false;
"browser.ctrlTab.sortByRecentlyUsed" = true;
"browser.startup.page" = 3;
"browser.startup.homepage" = "https://thehellings.com";
"doh-rollout.doorhanger-decision" = "UIDisabled";
"doh-rollout.doneFirstRun" = true;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
bypass-paywalls-clean
gsconnect
foxyproxy-standard
multi-account-containers
plasma-integration
octotree
refined-github
tree-style-tab
ublock-origin
unpaywall
];
};
};
};
programs.bash.sessionVariables = vars;
programs.xonsh.sessionVariables = vars;
}
+3 -4
View File
@@ -1,4 +1,4 @@
{ pkgs, lib, gui, gnome, { pkgs, lib,
inputs, inputs,
host ? "most", host ? "most",
...}: ...}:
@@ -15,11 +15,9 @@
./vim.nix ./vim.nix
./xonsh.nix ./xonsh.nix
./hosts/${host} ./hosts/${host}
] ++ ( if gui then [ ./gui ] else []); ];
greg.gnome = gnome;
programs.tmux = { programs.tmux = {
enable = true; enable = true;
keyMode = "vi"; keyMode = "vi";
@@ -54,5 +52,6 @@
tree tree
unzip unzip
wget wget
zip
]; ];
} }
+3 -1
View File
@@ -6,7 +6,9 @@
]; ];
home.packages = with pkgs; [ home.packages = with pkgs; [
(mumble.override { pulseSupport = true; }) (mumble.override { pulseSupport = true; })
fluffychat
logseq logseq
]; ];
greg.gui = true;
greg.sway = false;
greg.gnome = false;
} }
+2
View File
@@ -3,7 +3,9 @@
{ {
imports = [ imports = [
./gnome.nix ./gnome.nix
./gui.nix
./python.nix ./python.nix
./sway.nix
./xonsh.nix ./xonsh.nix
]; ];
} }
+91
View File
@@ -0,0 +1,91 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.gui;
excludes = systems: opts: (
if ( builtins.all (x: pkgs.system != x) systems ) then opts else []
);
# For now, we ignore this and don't install it
ffPkgs = if ( pkgs.stdenv.hostPlatform.isDarwin )
then pkgs.firefox-bin
else pkgs.firefox-wayland.override { cfg.enableGnomeExtensions = true; };
vars = {
MOZ_ENABLE_WAYLAND = "1";
XDG_CURRENT_DESKTOP = "sway";
};
in {
options.greg.gui = lib.mkEnableOption "Enable GUI programs";
config = (lib.mkIf cfg {
# These packages are Linux only
home.packages = with pkgs; ( excludes ["x86_64-darwin" "aarch64-darwin"]
[
cdrtools
fluffychat
cinny-desktop
qpwgraph
vlc
x265
]) ++
# x86_64-linux only
( excludes ["x86_64-darwin" "aarch64-darwin" "aarch64-linux"]
[
bitwarden
discord
endeavour
gnucash
jellyfin-media-player
libreoffice
#logseq
nextcloud-client
slack
]) ++
# Items that are not supported on ARM/Linux
( excludes ["aarch64-linux"]
[
onlyoffice-bin
synology-drive-client
zoom-us
]);
programs.firefox = {
enable = (! pkgs.stdenv.hostPlatform.isDarwin);
package = ffPkgs;
profiles = {
default = {
settings = {
"app.update.auto" = false;
"browser.ctrlTab.sortByRecentlyUsed" = true;
"browser.startup.page" = 3;
"browser.startup.homepage" = "https://thehellings.com";
"doh-rollout.doorhanger-decision" = "UIDisabled";
"doh-rollout.doneFirstRun" = true;
"signon.rememberSignons" = false;
};
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
bypass-paywalls-clean
gsconnect
foxyproxy-standard
multi-account-containers
plasma-integration
octotree
refined-github
tree-style-tab
ublock-origin
unpaywall
];
};
};
};
# This is supposed to be in support of Firefox, but I dunno...
programs.bash.sessionVariables = vars;
programs.xonsh.sessionVariables = vars;
});
}
+103
View File
@@ -0,0 +1,103 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.sway;
file_browser = {
pkg = pkgs.krusader;
path = "${pkgs.krusader}/bin/krusader";
};
term = "${pkgs.alacritty}/bin/alacritty";
msg = "${pkgs.sway}/bin/swaymsg";
sleep = "${pkgs.coreutils}/bin/sleep";
workstation1 = pkgs.writeScriptBin "workstation1" (builtins.concatStringsSep "\n" [
"${msg} \"workspace 1 ; exec ${pkgs.firefox}/bin/firefox ; split horizontal ; exec ${pkgs.element-desktop}/bin/element-desktop \""
"${sleep} 1"
"${msg} '[app_id=\"firefox\"]' move left"
"${msg} '[instance=\"element\"]' \"layout tabbed ; exec ${term} \""
"${msg} '[app_id=\"firefox\"]' move left"
"${sleep} 0.3"
"${msg} '[app_id=\"Alacritty\" workspace=\"1\"]' move right"
"${msg} '[app_id=\"firefox\"]' resize grow width 300 px"
]);
workstation2 = pkgs.writeScriptBin "workstation2" (builtins.concatStringsSep "\n" [
"${sleep} 5"
"${msg} \"workspace 2 ; exec ${term} ; layout tabbed\""
]);
in {
options.greg.sway = lib.mkEnableOption "Enable Sway support and settings";
config = (lib.mkIf cfg {
programs.swaylock.enable = true;
wayland.windowManager.sway = let
mod = config.wayland.windowManager.sway.config.modifier;
in {
enable = true;
config = rec {
#fonts.size = 10.0;
keybindings = lib.mkOptionDefault {
"Mod4+l" = "exec ${pkgs.swaylock}/bin/swaylock -c 000000";
"Mod4+h" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/headphones.qpwgraph -m";
"Mod4+m" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/monitor.qpwgraph -m";
"Mod4+b" = "exec ${pkgs.qpwgraph}/bin/qpwgraph -x /home/greg/sound/both.qpwgraph -m";
"${mod}+Shift+Return" = file_browser.path;
};
modifier = "Mod1";
output = {
"Samsung Electric Company S24E650 H4ZN600985" = {
mode = "1920x1200";
transform = "90";
pos = "0 0";
};
"ViewSonic Corporation VA2252 Series VMT201800925" = {
mode = "1920x1080";
pos = "200 1920";
};
};
terminal = term;
startup = [
{ command = "${workstation1}/bin/workstation1"; }
{ command = "${workstation2}/bin/workstation2"; }
];
};
extraOptions = [
"--unsupported-gpu"
];
extraSessionCommands = ''
export WLR_NO_HARDWARE_CURSORS=1
'';
systemd.enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
};
home.pointerCursor = {
name = "Adwaita";
package = pkgs.gnome.adwaita-icon-theme;
size = 12;
x11 = {
enable = true;
defaultCursor = "Adwaita";
};
};
home.packages = with pkgs; [
arj
dpkg
kate
kget
krename
file_browser.pkg
p7zip
plocate
rpm
qpwgraph
xorg.xev
xorg.xmodmap
xxdiff
];
});
}
+6
View File
@@ -1,6 +1,12 @@
{ lib, ... }: { lib, ... }:
{ {
# Workaround to set the config value to user read-only
# This allows things like SSH in distrobox to read the config file just fine
home.file.".ssh/config" = {
target = ".ssh/config_source";
onChange = ''cat ~/.ssh/config_source > ~/.ssh/config && chmod 400 ~/.ssh/config'';
};
programs.ssh = { programs.ssh = {
enable = true; enable = true;
serverAliveInterval = 60; serverAliveInterval = 60;
+3 -9
View File
@@ -8,8 +8,6 @@ let
machine = { machine = {
channel ? inputs.nixstable, channel ? inputs.nixstable,
extraMods ? [], extraMods ? [],
gnome ? false,
gui ? false,
name, name,
system ? "x86_64-linux", system ? "x86_64-linux",
hm ? inputs.hm hm ? inputs.hm
@@ -20,7 +18,7 @@ let
}; };
in channel.lib.nixosSystem { in channel.lib.nixosSystem {
inherit system; inherit system;
specialArgs = { inherit nixpkgs inputs; }; specialArgs = { inherit nixpkgs inputs overlays; };
modules = [ modules = [
{ {
nixpkgs.overlays = overlays; nixpkgs.overlays = overlays;
@@ -28,7 +26,7 @@ let
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.greg = import ../home/home.nix; home-manager.users.greg = import ../home/home.nix;
home-manager.extraSpecialArgs = { home-manager.extraSpecialArgs = {
inherit gnome gui inputs overlays; inherit inputs overlays;
home = "/home/greg"; home = "/home/greg";
host = name; host = name;
}; };
@@ -41,11 +39,7 @@ let
}; };
in { in {
genesis = machine { name = "genesis"; }; genesis = machine { name = "genesis"; };
jude = unstable { jude = unstable { name = "jude"; };
name = "jude";
gnome = true;
gui = true;
};
icdm-root = unstable { name = "icdm-root"; }; icdm-root = unstable { name = "icdm-root"; };
linode = machine { name = "linode"; }; linode = machine { name = "linode"; };
mm = unstable { name = "mm"; }; mm = unstable { name = "mm"; };
+2 -2
View File
@@ -8,8 +8,8 @@
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
# Configure keymap in X11 # Configure keymap in X11
services.xserver = { services.xserver.xkb = {
layout = "us"; layout = "us";
xkbVariant = ""; variant = "";
}; };
} }
+2
View File
@@ -3,6 +3,8 @@
{ {
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot = { boot = {
binfmt.emulatedSystems = [ "aarch64-linux" ];
kernelPackages = pkgs.linuxPackages_latest;
supportedFilesystems = [ "ntfs" ]; supportedFilesystems = [ "ntfs" ];
loader = { loader = {
timeout = 15; timeout = 15;
+54 -35
View File
@@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, config, ... }:
{ {
imports = [ imports = [
@@ -23,46 +23,64 @@
hostName = "jude"; hostName = "jude";
enableIPv6 = false; enableIPv6 = false;
interfaces.enp12s0.useDHCP = true; interfaces.enp12s0.useDHCP = true;
firewall.enable = true; firewall = {
enable = false;
allowedTCPPorts = [ 21000 ];
allowedUDPPorts = [ 21000 21010 ];
};
}; };
greg = { greg = {
tailscale.enable = true; tailscale.enable = true;
gnome.enable = true; sway.enable = false;
kde.enable = false; gnome.enable = false;
kde.enable = true;
}; };
environment.systemPackages = with pkgs; [ boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
bind # For things like nslookup
create_ssl
darktable
expect
gimp
gnucash
graphviz
flock
ffmpeg
handbrake
imagemagick
libtheora
libxml2
linode-cli
makemkv
nix-du
nix-tree
oathToolkit
synology-drive-client
terraform
vagrant
ventoy
# Video/Audio data composition framework tools like "gst-inspect", "gst-launch" ... environment.systemPackages = with pkgs; lib.mkMerge [
gst_all_1.gstreamer [ # for Immersed
gst_all_1.gst-plugins-base cudatoolkit
gst_all_1.gst-plugins-good immersed-vr
gst_all_1.gst-plugins-bad libva
gst_all_1.gst-plugins-ugly ]
gst_all_1.gst-libav [
gst_all_1.gst-vaapi bind # For things like nslookup
create_ssl
darktable
distrobox
expect
gimp
gparted
gnucash
graphviz
flock
ffmpeg
handbrake
imagemagick
libtheora
libxml2
linode-cli
makemkv
nix-du
nix-tree
oathToolkit
synology-drive-client
terraform
vagrant
ventoy
]
[
# Video/Audio data composition framework tools like "gst-inspect", "gst-launch" ...
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
gst_all_1.gst-libav
gst_all_1.gst-vaapi
]
]; ];
fileSystems = { fileSystems = {
"/boot" = { "/boot" = {
@@ -89,6 +107,7 @@
pulse.enable = true; pulse.enable = true;
wireplumber.enable = true; wireplumber.enable = true;
}; };
locate.enable = true;
xserver.videoDrivers = [ "nvidia" ]; xserver.videoDrivers = [ "nvidia" ];
}; };
hardware = { hardware = {
+1 -1
View File
@@ -5,10 +5,10 @@
./git.nix ./git.nix
./hardware-configuration.nix ./hardware-configuration.nix
./podman.nix ./podman.nix
./matrix.nix
./nextcloud.nix ./nextcloud.nix
./nginx.nix ./nginx.nix
./postgres.nix ./postgres.nix
./synapse.nix
]; ];
greg = { greg = {
+62
View File
@@ -0,0 +1,62 @@
# Registration of new users is disabled for the public, but I can create
# them by the following commands:
# nix run nixpkgs.matrix-synapse
# register_new_matrix_user -k "B9EoPr2WV9hzwc7uL2Sx1JmvCeKDEOGCpB0uginQcQtEH4wzRtkSIdo7lltrjSQa" http://localhost:8448
{ config, pkgs, ... }:
let
domain = "${config.networking.domain}";
fqdn = "matrix.${domain}";
conn = "postgresql:///dendrite?sslmode=disable&host=/run/postgresql";
in
{
services.nginx = {
virtualHosts = {
# Server the '.well-known' files to find the Matrix API server
"${domain}" = {
enableACME = true;
forceSSL = true;
# This is needed so that servers contacting hellings.com can find
# the actual application server at matrix.thehellings.com
locations."= /.well-known/matrix/server".extraConfig =
let
server = { "m.server" = "${fqdn}:443"; };
in ''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
"m.identity_server" = { "base_url" = "https://vector.im"; };
};
in ''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};
# Reverse proxy in front of the actual Matrix server
"${fqdn}" = {
enableACME = true;
forceSSL = true;
# Not the appropriate place for the chat client
locations."/".extraConfig = "return 404;";
locations."/_matrix" = {
proxyPass = "http://matrix.shire-zebra.ts.net:8448"; # Lacking the trailing / is correct
};
};
};
};
# Open networking ports for the server
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
};
}
+1 -6
View File
@@ -5,7 +5,6 @@
enable = true; enable = true;
checkConfig = true; checkConfig = true;
ensureDatabases = [ ensureDatabases = [
"dendrite"
"nextcloud" "nextcloud"
]; ];
#initialScript = pkgs.writeText "create-matrix-db.sql" '' #initialScript = pkgs.writeText "create-matrix-db.sql" ''
@@ -16,10 +15,7 @@
ensureUsers = [ { ensureUsers = [ {
name = "nextcloud"; name = "nextcloud";
ensureDBOwnership = true; ensureDBOwnership = true;
} { } ];
name = "dendrite";
ensureDBOwnership = true;
} ];
settings = { settings = {
log_connections = true; log_connections = true;
log_statement = "all"; log_statement = "all";
@@ -34,7 +30,6 @@ root root postgres
services.postgresqlBackup = { services.postgresqlBackup = {
enable = true; enable = true;
databases = [ databases = [
"dendrite"
"nextcloud" "nextcloud"
]; ];
}; };
-137
View File
@@ -1,137 +0,0 @@
# Registration of new users is disabled for the public, but I can create
# them by the following commands:
# nix run nixpkgs.matrix-synapse
# register_new_matrix_user -k "B9EoPr2WV9hzwc7uL2Sx1JmvCeKDEOGCpB0uginQcQtEH4wzRtkSIdo7lltrjSQa" http://localhost:8448
{ config, pkgs, ... }:
let
domain = "${config.networking.domain}";
fqdn = "matrix.${domain}";
conn = "postgresql:///dendrite?sslmode=disable&host=/run/postgresql";
in
{
services.nginx = {
virtualHosts = {
# Server the '.well-known' files to find the Matrix API server
"${domain}" = {
enableACME = true;
forceSSL = true;
# This is needed so that servers contacting hellings.com can find
# the actual application server at matrix.thehellings.com
locations."= /.well-known/matrix/server".extraConfig =
let
server = { "m.server" = "${fqdn}:443"; };
in ''
add_header Content-Type application/json;
return 200 '${builtins.toJSON server}';
'';
locations."= /.well-known/matrix/client".extraConfig =
let
client = {
"m.homeserver" = { "base_url" = "https://${fqdn}"; };
"m.identity_server" = { "base_url" = "https://vector.im"; };
};
in ''
add_header Content-Type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON client}';
'';
};
# Reverse proxy in front of the actual Matrix server
"${fqdn}" = {
enableACME = true;
forceSSL = true;
# Not the appropriate place for the chat client
locations."/".extraConfig = "return 404;";
locations."/_matrix" = {
proxyPass = "http://127.0.0.1:8448"; # Lacking the trailing / is correct
};
};
# Run Element web
"chat.${fqdn}" = {
enableACME = true;
forceSSL = true;
serverAliases = [
"chat.${domain}"
];
root = pkgs.element-web.override {
conf.default_server_config."m.homeserver" = {
"base_url" = "https://${fqdn}";
"server_name" = "${fqdn}";
};
};
};
};
};
# Environment secrets
age.secrets.dendrite = {
file = ../../secrets/dendrite.age;
owner = "dendrite";
};
users.users.dendrite = {
isSystemUser = true;
group = "dendrite";
};
users.groups.dendrite = {};
systemd.services.dendrite.serviceConfig = {
User = "dendrite";
};
services.dendrite = {
enable = true;
environmentFile = "/run/agenix/dendrite";
httpPort = 8448;
# Identify ourselves as the root of our own domain
settings = (
(builtins.listToAttrs (
(map (x: { name = x; value = { database.connection_string = conn; }; }) [
"app_service_api"
"federation_api"
"key_server"
"media_api"
"mscs"
"relay_api"
"room_server"
"sync_api"
])
) ) //
{
user_api.account_database.connection_string = conn;
user_api.device_database.connection_string = conn;
global = {
database = {
connection_string = conn;
max_open_conns = 90;
max_idle_conns = 5;
conn_max_lifetime = -1;
};
server_name = "thehellings.com";
trusted_third_party_id_servers = [
"matrix.org"
"vector.im"
"jupiterbroadcasting.com"
];
# Generate this with {path-to-dendrite}/bin/generate-keys --private-key /etc/dendrite.pem
private_key = "/etc/dendrite.pem";
};
client_api = {
registration_enabled = false;
registration_shared_secret = "\${REGISTRATION_SHARED_SECRET}";
};
});
};
# Open networking ports for the server
networking.firewall = {
enable = true;
allowedTCPPorts = [ 80 443 ];
};
}
+2 -2
View File
@@ -183,9 +183,9 @@ in
}; };
}; };
# Configure keymap in X11 # Configure keymap in X11
xserver = { xserver.xkb = {
layout = "us"; layout = "us";
xkbVariant = ""; variant = "";
}; };
}; };
+2 -18
View File
@@ -1,20 +1,11 @@
{ inputs, ...}:
{ config, pkgs, lib, ... }: let { config, pkgs, lib, ... }: let
registryPort = 5000; registryPort = 5000;
vpnIp = "100.78.226.76"; vpnIp = "100.78.226.76";
containerIp = "192.168.200.2"; containerIp = "192.168.200.2";
in { in {
imports = [
inputs.agenix.nixosModules.default
inputs.self.modules.nixosModule
];
nixpkgs.overlays = inputs.self.overlays.all;
age.identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
age.secretsMountPoint = "/run/derp"; age.secretsMountPoint = "/run/derp";
age.secrets = let age.secrets = let
cfg = n: { file = ../../secrets/gitlab/${n}.age; owner = "github"; mode = "0444"; }; cfg = n: { file = ../../secrets/gitlab/${n}.age; owner = "gitlab"; group = "gitlab"; mode = "0444"; };
in { in {
gitlab-secret = cfg "secret"; gitlab-secret = cfg "secret";
gitlab-otp = cfg "otp"; gitlab-otp = cfg "otp";
@@ -24,13 +15,7 @@ in {
gitlab-cert = cfg "cert"; gitlab-cert = cfg "cert";
}; };
networking = { networking.firewall.allowedTCPPorts = [ 80 registryPort ];
firewall = {
enable = true;
allowedTCPPorts = [ 80 registryPort ];
};
useHostResolvConf = lib.mkForce false;
};
greg.proxies = let greg.proxies = let
t = { t = {
@@ -45,7 +30,6 @@ in {
"${vpnIp}" = t; "${vpnIp}" = t;
"git.thehellings.lan" = t; "git.thehellings.lan" = t;
}; };
greg.tailscale.enable = true;
virtualisation.docker.enable = true; virtualisation.docker.enable = true;
+2 -2
View File
@@ -1,4 +1,4 @@
{ inputs, name, extra ? {}, packages ? [] }: { inputs, name, extra ? {}, packages ? [], overlays }:
({ config, pkgs, lib, ... }: ({ config, pkgs, lib, ... }:
let let
@@ -15,7 +15,7 @@ lib.attrsets.recursiveUpdate {
inputs.self.modules.nixosModule inputs.self.modules.nixosModule
]; ];
nixpkgs.overlays = inputs.self.overlays.all; nixpkgs.overlays = overlays;
age = { age = {
identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+5 -1
View File
@@ -1,8 +1,9 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./git.nix ./git.nix
./matrix.nix
]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
@@ -65,6 +66,9 @@
configurationLimit = 10; configurationLimit = 10;
}; };
}; };
binfmt.emulatedSystems = [
"aarch64-linux"
];
}; };
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
+8 -28
View File
@@ -1,4 +1,4 @@
{ config, pkgs, lib, inputs, ... }: { config, pkgs, lib, inputs, overlays, ... }:
let let
@@ -31,25 +31,10 @@ in {
system.activationScripts.makeGitlabDir = lib.stringAfter [ "var" ] "mkdir -p ${gitlabStateDir} && touch ${gitlabStateDir}/touch"; system.activationScripts.makeGitlabDir = lib.stringAfter [ "var" ] "mkdir -p ${gitlabStateDir} && touch ${gitlabStateDir}/touch";
containers.gitlab = container { greg.containers.gitlab = {
autoStart = true; tailscale = true;
bindMounts = { subnet = "200";
"/var/gitlab/state" = { builder = (import ./container-git.nix);
hostPath = gitlabStateDir;
isReadOnly = false;
};
"/dev/net/tun" = {
hostPath = "/dev/net/tun";
isReadOnly = false;
};
};
forwardPorts = [{
hostPort = 2222;
containerPort = 22;
}];
hostAddress = "192.168.200.1";
localAddress = "192.168.200.2";
config = ((import ./container-git.nix) { inherit inputs; });
}; };
systemd.services = { systemd.services = {
@@ -80,11 +65,6 @@ in {
]; ];
}; };
}; };
"container@gitlab".serviceConfig = {
DeviceAllow = [ "/dev/net/tun" ];
ProtectKernelModules = false;
PrivateDevices = false;
};
gitlab-runner.serviceConfig.EnvironmentFile = config.age.secrets.docker-auth.path; gitlab-runner.serviceConfig.EnvironmentFile = config.age.secrets.docker-auth.path;
}; };
@@ -108,7 +88,7 @@ in {
hostAddress = "192.168.201.1"; hostAddress = "192.168.201.1";
localAddress = "192.168.201.2"; localAddress = "192.168.201.2";
config = ((import ./container-runner.nix) { config = ((import ./container-runner.nix) {
inherit inputs; inherit inputs overlays;
name = "qemu"; name = "qemu";
packages = with pkgs; [ qemu_full qemu_kvm ]; packages = with pkgs; [ qemu_full qemu_kvm ];
extra = { extra = {
@@ -142,7 +122,7 @@ in {
hostAddress = "192.168.202.1"; hostAddress = "192.168.202.1";
localAddress = "192.168.202.2"; localAddress = "192.168.202.2";
config = ((import ./container-runner.nix) { config = ((import ./container-runner.nix) {
inherit inputs; inherit inputs overlays;
name = "vbox"; name = "vbox";
extra = { extra = {
systemd.services.gitlab-runner.serviceConfig = { systemd.services.gitlab-runner.serviceConfig = {
@@ -168,7 +148,7 @@ in {
hostAddress = "192.168.203.1"; hostAddress = "192.168.203.1";
localAddress = "192.168.203.2"; localAddress = "192.168.203.2";
config = ((import ./container-runner.nix) { config = ((import ./container-runner.nix) {
inherit inputs; inherit inputs overlays;
name = "shell"; name = "shell";
}); });
}; };
+88
View File
@@ -0,0 +1,88 @@
{ config, pkgs, inputs, lib, ... }:
let
domain = "thehellings.com";
fqdn = "matrix.${domain}";
conn = "postgresql:///dendrite?sslmode=disable&host=/run/postgresql";
in
{
greg.containers.matrix = {
tailscale = true;
subnet = "204";
builder = { pkgs, config, ... }: {
networking.firewall.allowedTCPPorts = [ config.services.dendrite.httpPort ];
# Environment secrets
age = {
secrets.dendrite = {
file = ../../secrets/dendrite.age;
owner = "dendrite";
};
secrets.dendrite_key = {
file = ../../secrets/dendrite_key.age;
owner = "dendrite";
};
};
users.users.dendrite = {
isSystemUser = true;
group = "dendrite";
};
users.groups.dendrite = {};
systemd.services.dendrite.serviceConfig = {
User = "dendrite";
};
greg.databases.dendrite = {};
services.dendrite = {
enable = true;
environmentFile = config.age.secrets.dendrite.path;
httpPort = 8448;
# Identify ourselves as the root of our own domain
settings = (
(builtins.listToAttrs (
(map (x: { name = x; value = { database.connection_string = conn; }; }) [
"app_service_api"
"federation_api"
"key_server"
"media_api"
"mscs"
"relay_api"
"room_server"
"sync_api"
])
) ) //
{
user_api.account_database.connection_string = conn;
user_api.device_database.connection_string = conn;
global = {
database = {
connection_string = conn;
max_open_conns = 25;
max_idle_conns = 5;
conn_max_lifetime = -1;
};
server_name = "thehellings.com";
trusted_third_party_id_servers = [
"matrix.org"
"vector.im"
"jupiterbroadcasting.com"
];
# Generate this with {path-to-dendrite}/bin/generate-keys --private-key /etc/dendrite.pem
private_key = config.age.secrets.dendrite_key.path;
};
client_api = {
registration_enabled = false;
registration_shared_secret = "\${REGISTRATION_SHARED_SECRET}";
};
});
};
systemd.services.dendrite = {
after = [ "postgresql.service" ];
requires = [ "postgresql.service" ];
};
};
};
}
+1
View File
@@ -43,6 +43,7 @@
gnupatch gnupatch
gregpy gregpy
findutils findutils
file
hms # My own home manager switcher hms # My own home manager switcher
htop htop
killall killall
+2 -2
View File
@@ -11,9 +11,9 @@ let
makeService = name: job: { makeService = name: job: {
serviceConfig = { serviceConfig = {
User = job.user; User = job.user;
ExecPre = lib.optionalString (job.pre != "") job.pre; ExecStartPre = lib.optionalString (job.pre != "") job.pre;
ExecStart = "${pkgs.rsync}/bin/rsync -avz --delete -e '${pkgs.openssh}/bin/ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null' ${job.src}/ backup@chronicles.shire-zebra.ts.net:/volume1/NetBackup/${job.dest}"; ExecStart = "${pkgs.rsync}/bin/rsync -avz --delete -e '${pkgs.openssh}/bin/ssh -oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null' ${job.src}/ backup@chronicles.shire-zebra.ts.net:/volume1/NetBackup/${job.dest}";
ExecPost = lib.optionalString (job.post != "") job.post; ExecStartPost = lib.optionalString (job.post != "") job.post;
}; };
}; };
+76
View File
@@ -0,0 +1,76 @@
{ config, lib, inputs, overlays, ... }:
let
cfg = config.greg.containers;
# Create a container with all our default settings
makeContainer = name: container: let
agekey = "/etc/ssh/agenix_key";
in {
autoStart = true;
hostAddress = "192.168.${container.subnet}.1";
localAddress = "192.168.${container.subnet}.2";
privateNetwork = true;
bindMounts = {
"${agekey}".hostPath = "/etc/ssh/ssh_host_ed25519_key"; # This is needed for agenix to
};
enableTun = container.tailscale;
config = { config, pkgs, ... }: {
imports = [
inputs.agenix.nixosModules.default
inputs.self.modules.nixosModule
container.builder
];
nixpkgs.overlays = overlays;
networking = {
firewall.enable = true;
useHostResolvConf = lib.mkForce false;
};
age.identityPaths = [ agekey ];
greg.tailscale.enable = container.tailscale;
};
};
in {
options.greg.containers = lib.mkOption {
default = {};
type = with lib.types; attrsOf ( submodule (
{
options = {
tailscale = lib.mkOption {
type = bool;
default = false;
description = "Enable tailscale in the container";
};
subnet = lib.mkOption {
type = str;
default = "200";
};
builder = lib.mkOption {
default = { ... }: {};
description = ''
This needs to be a function, like the one for
a container's config. It will setup the core system above the
defaults set in this module.
'';
example = ''
{ pkgs, config, lib, ... } :
{
services.openssh.enable = true;
}
'';
};
};
}
));
};
config = {
containers = builtins.mapAttrs makeContainer cfg;
};
}
+62
View File
@@ -0,0 +1,62 @@
{ config, lib, pkgs, ... }:
let
cfg = config.greg.databases;
dbs = (lib.attrNames cfg);
in {
options.greg.databases = lib.mkOption {
default = {};
type = with lib.types; attrsOf ( submodule (
{ name, config, options, ... }: {
# Options reserved for future expansion
options = {};
}
));
};
config = lib.mkIf ( dbs != [] ) {
services = {
postgresql = {
enable = true;
checkConfig = true;
ensureDatabases = dbs;
ensureUsers = map (db: { name = db; ensureDBOwnership = true; }) dbs;
settings = {
log_connections = true;
log_statement = "all";
logging_collector = true;
log_filename = "postgresql.log";
};
identMap = "root root postgres";
};
postgresqlBackup = {
enable = true;
databases = dbs;
};
logrotate = {
enable = true;
settings = {
postgresqlBackup = {
enable = true;
files = "${config.services.postgresqlBackup.location}/*.gz";
};
postgresLog = {
enable = true;
files = "/var/lib/postgresql/*/log/*.log";
compress = true;
compresscmd = "${pkgs.xz}/bin/xz";
};
};
};
};
greg.backup.jobs.greg-postgresql-backup = {
src = config.services.postgresqlBackup.location;
dest = "database-${config.networking.hostName}";
user = "postgres";
};
};
}
+4 -1
View File
@@ -4,6 +4,8 @@
imports = [ imports = [
../baseline.nix ../baseline.nix
./backup.nix ./backup.nix
./container.nix
./db.nix
./gnome.nix ./gnome.nix
./home.nix ./home.nix
./kde.nix ./kde.nix
@@ -12,6 +14,7 @@
./proxy.nix ./proxy.nix
./router.nix ./router.nix
./rpi4.nix ./rpi4.nix
./sway.nix
./tailscale.nix ./tailscale.nix
]; ];
@@ -22,7 +25,7 @@
lshw lshw
]; ];
system.stateVersion = "22.05"; system.stateVersion = "24.05";
nix = { nix = {
gc.dates = "weekly"; gc.dates = "weekly";
+1 -2
View File
@@ -17,7 +17,7 @@ in with lib; {
enable = true; enable = true;
displayManager.gdm.enable = true; displayManager.gdm.enable = true;
desktopManager.gnome.enable = true; desktopManager.gnome.enable = true;
layout = "us"; xkb.layout = "us";
# Trackpad support # Trackpad support
libinput.enable = true; libinput.enable = true;
}; };
@@ -38,7 +38,6 @@ in with lib; {
}; };
programs.dconf.enable = true; programs.dconf.enable = true;
programs.sway.enable = true; # Gives us Wayland
xdg.portal = { xdg.portal = {
enable = true; enable = true;
wlr.enable = true; # Enables screen sharing in Wayland wlr.enable = true; # Enables screen sharing in Wayland
+6 -3
View File
@@ -13,9 +13,12 @@ in with lib; {
services = { services = {
xserver = { xserver = {
enable = true; enable = true;
displayManager.sddm.enable = true; desktopManager.plasma6.enable = true;
desktopManager.plasma5.enable = true; displayManager = {
layout = "us"; defaultSession = "plasma";
sddm.enable = true;
};
xkb.layout = "us";
# Trackpad support # Trackpad support
libinput.enable = true; libinput.enable = true;
}; };
+42
View File
@@ -0,0 +1,42 @@
{ config, pkgs, lib, ... }:
let
cfg = config.greg.sway;
in with lib; {
options = {
greg.sway.enable = mkEnableOption "Enable my default Gnome3 setup";
};
config = mkIf cfg.enable {
services = {
accounts-daemon.enable = true;
pipewire = {
enable = true;
alsa.enable = true;
audio.enable = true;
jack.enable = true;
pulse.enable = true;
wireplumber.enable = true;
};
xserver = {
enable = true;
displayManager.gdm = {
enable = true;
autoSuspend = false;
banner = "Welcome to Greg's JUDE machine. Do I know you?";
wayland = true;
};
xkb.layout = "us";
};
};
programs.sway = {
enable = true; # Will be enabled through home-manager
wrapperFeatures.gtk = true;
};
security.pam.services.swaylock = {};
};
}
+18 -23
View File
@@ -1,24 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw pgy+JU0OlmCRGL1YxpPdvo7yOYM/ds3PcQQraRfuklM -> ssh-ed25519 mOmPfg gumFVDhQh1AGitpxIits9R6Vjm91ZizKG+FhDZjYRFM
V6i7wXHal63cLthtmpr2yY2Ayf/3Dd7yEGeJzEsuGfI wRzhgUUJp5RAA2teqQeowvZcTkycHPk22X006MPTfxE
-> ssh-ed25519 mOmPfg 1ukIe3ZVLgsr2z6GvZOevYeIh2EyukgpSevAN4fj708 -> ssh-ed25519 YJiRbw SQevbHb7VyGn6MMJs3IBhz0Rymy8b7OuP4Fj/rEYjSA
+SnY9KsZe5yrEfJsXPMZDll6At7y7Z62Alz2hyfs8YQ PeB0i8IId0RNILuW1g2RC08CVaACm+zCjQJkDR56qGs
-> ssh-ed25519 YJiRbw I+gmOoz+dF4ZDjAu/EJv3VfM0DBYyFGL4+yqhDfqv3c -> ssh-ed25519 aY2AXA g997hboApB18f+r6j8FBCAgCg3nEa9vBdrFWQ83J6jc
vHvuTwex+n5W9dmzx8sluCcSefeInvECLZBMrv9EqOc ECAbekA5M5oM8J58X+ouEmLcKnfOqYF1a0/UX0YCNNM
-> ssh-ed25519 aY2AXA JViGiOEhvqHVu9SgW5AT2OAO73WnA3J1HKO9rfCrdWY -> ssh-ed25519 Nl/5yA unK0RFaggliR++d/9pyKsL6f2amxHdo2Gn65pKHgKCs
Rt6n/EWGFrxpigG66uzmNSbxmu3DCFTIQ24XMo3dPdw w/UX6dqejaqgrdVOTaRVMOyS4rwaNuc/5TbHed4TrhQ
-> ssh-ed25519 Nl/5yA OnTtkQIJBeQGEwTZmBgeYtWlArmqcTaItWTiuPVbPwk -> ssh-ed25519 GdLgCQ Fe27fkX2BeHTGct/Pm2nLG10hl5c4tE4PA9Cwggj/g0
rmCmPzC4pCaMOfLCQcnGtkwrF4D+BfuUG4zswAJ+EUA +XK+8POGfNZQEQmRYC5lLIWRO5thPxTicM0onkpgGPQ
-> ssh-ed25519 GdLgCQ qlJysE+dXsJN108Lgz+jzVUMV9BYDcp4knFMOWtEoVk -> ssh-ed25519 tOH/HQ oIFm+9sttK0BInsCS+xS34DAdbDYbIBpsNmSVT+PUkk
wJTyxTtVu0p1PEEkd/tF80ttPXKO6XB+AaVYEwZ+5oo u/4noQOR9wnR5dO1tqpRk7+wCVpwcRnwclg26TOzF4M
-> ssh-ed25519 tOH/HQ s6IMoMfgLNDsfisM+MZ2BFdqmQ/YqSMCquw9AgruQVc -> ssh-ed25519 FpzvfQ rPbTDyT5eg+n5qlmHvy2Zu9A/JLKTrBIIk0jwdeUdUI
8t7+P6YiBsPtP33eUmDTrfO67LtsfziORgn0twGKT78 F8D5VJIplhXcqfTzlUhk2GlwRkBmPIiOee980H0VJLM
-> ssh-ed25519 FpzvfQ 6gwHsJcGdK0EttaAmg6cTOSGWBVjApo8xsC1y2/piB8 -> ssh-ed25519 kdPvzQ ky3n+PXUHZOXiXNa4+MBaLmSMW6H2z/NBX+H9QHVKhE
Vv6mfKYOQS3o8qgFC5bjfAbJpb7yTsxyvu3yQS6pQQI wR2DfcF5CgOXBsbQxHKVcZLU+uo1Vt3berKpWoMo/FA
-> ssh-ed25519 kdPvzQ rzSykoG6mHkxnlwWyd0Y7mWmKviRvO0/5iqzRHTgwHY --- Zrbuy61RBb9S64+YAaGcXNn+i+v/qEkJjXRrDBBKEKY
6claIsJUVTKts3lZU+jpB00QV3Lv6CHpnC5EbexJW6Y  • æeÖÁùU|ñ:í¶rCv*~ÿÞ8¾[)ˆ²V†„ÛG ÎÚ@Kæ‡Õ<Cå±òÿ  `asC˜ ƒ’:lÉÔ·«º£RÑTe
-> A2g(UHN--grease =T5M"
5VTJOL65wKYIQQzuK0hXGTzAmJL3wryRY/USjZbIHuHDMhZMbgLsYIpxIvq248JQ
Cd4GXw6aH5TUC4kBLHlKlRi+FTA9C543U06SgQA
--- O7vNniD/JmbDJFUR+rut9ZL+OhkvIqlBQt7Zc2nqQUo
ŸZùU“æcY2EOÙéÑ 5 ×nܯ–h_#W"‰èzöÑžâøÕØÙšË ::à€õí…ƒUøÄe®Üj)ÄR!ðâI·´
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+18 -22
View File
@@ -1,23 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw 6DS+bTAy4b62Nxw0uXHHEMn3OVY9wUzX+wUCZP5Hjig -> ssh-ed25519 mOmPfg caaT+VREuqBSbCt7Nv+gAyZgcr6kITpslJjqUn4AoFQ
Nt+zLf6IsLY7h5/alXiUffBxgyEL9vV7EEIrlHO3W04 iOFZnm7shGu9q362G0KSUeJqfT3uunJ3VE1NQxihx5w
-> ssh-ed25519 mOmPfg 0Gi5xr72h9ya1J5BZGy5ahxCkLx35ImPpZoIlP3sZwo -> ssh-ed25519 YJiRbw Jnr26oIvPnKlU6qoWgG7o79CKzYeQ92vRkBeUFiD7j8
iE40yQ2/J8UksZgkl/l3+8bwwg27CZOz/H9sWdKOHok JVG00d1wPYTB0SEhv/DR25pkJcK5KHbhtt0JtJ2fDh4
-> ssh-ed25519 YJiRbw AzMXidZGMtBUb7TRrC6lTEa4egnNqbi5J2WRUzqYBiY -> ssh-ed25519 aY2AXA UzWTN6JGfaw96atZLsSnJAxyKq4cYyxeTKnBbeNTgD8
pAIRAFH+8KbJGPjj2fApMMACjnYdxA58yrB4YZEJnYM WLR1F9yTZxZF67DXzWLqqulnWyVpSq5FGWv1kX4IC3I
-> ssh-ed25519 aY2AXA VchzlGCRVKD3R30THPckqVQnAb9qAGrQkdPUlbAhn10 -> ssh-ed25519 Nl/5yA l/JQbZH6JY0UNPk5YtLl6zwoIe627u68tSjxwt/N6Cg
siGMMSA14PDHtJwv1EeEpaztkFMwiyAmnlJsewy6qQg BzpKvweac6lKB/YgGF0tUxEFzmJZSWqiD4XQ8ApPb2s
-> ssh-ed25519 Nl/5yA adKC4ZbwvXWO+zI+cOS2KF/VpuzgucfqkVerpGZ5vCA -> ssh-ed25519 GdLgCQ hlYrhTQUwaTx5YAFIf++QuqJL8dJjJJ4q2FN1glVBD4
JNZadXOyBUu2pBLq5enLGEts5+uSNfPfuzHh37rFSc4 yFG60mKri3M7s1tUvVOv08XPeDIpKChiOmOCWCXxflo
-> ssh-ed25519 GdLgCQ WSOxf9kUvalmcWf24l2XYApV+91BPCdRHNxYznnQtgE -> ssh-ed25519 tOH/HQ QIGaHNqrVi81W549YNnYN5mfrM1Ci6hieVDYqU6cjzo
Yh8GHx0PvcomYPEmY950kloxo5AuURIr8xcRn2roLVk BdKS4IaE5lGHQv3I+m6K+HDM157YF2COE5ZC6d7XBm4
-> ssh-ed25519 tOH/HQ pVWHOg02OAzlsPKYAq68kx4cFhh1Mlq6YgvKe+2kcjg -> ssh-ed25519 FpzvfQ X9ZUHxbN1JN2WTm9nip791WnP2yoLyFBKedvEeI1ihE
QxkzNE2Q9TL45dBAIHwtDrSsj7qohmQ7Bn85TXjUu4o IdWZjOBQNFnv2FRlE/OIu15+wk8Pc/ac6d8NWEzFTkU
-> ssh-ed25519 FpzvfQ OtdjKF5JtWZabX8nRET3LxUb/KtwoP/0sP3Cc7K4ljw -> ssh-ed25519 kdPvzQ 9h1fd/Z4WWs3LUfZToK2VD97a04iXPWEX38mN7SQJTs
E+yGcgPEWWSh6wuxVRr2Bv1+je6v63x9b85v/j4H8gA eioXC6/f9NVuUyJAUlbU18ARfQ9fSCetyl7sd8+2gH8
-> ssh-ed25519 kdPvzQ NZ6HUl7kvr+f2inPHRwWjQGByXyIp/FzIhIK8bKxfwg --- mQK+grHzDNowE61Xip34q+sg7Y9dkX9b1vFP0N+nKtw
P+MImWM0wzsSCk4kJe5Mdg9NhOCmoJIAwzsvifrPdqo S¯–xg´å¥)b8"<p;v°ý¼Ú[${ÜŸ–ÓüÏ„ öÂelRvÀÅ)Â¥aô±Á½w‘\ÔŽY”3e¸/fÖ˜PaE“ácúr/Ù°6ùï²I
-> l8`-grease bcA %TIY [d]~
R+MH2T2z+etA
--- kjTynEqr/Xufkw0158ZP3mxuBzWzxVQ39QJ6rV965c0
²Üß}5>—hϺR›ËNœ‘žº.t\:+»’IN^²‚Žõíôm@Ie^I¨œK¡³X–s8Zœº¢”’.!ÚGʸ¨(¼x„ÔõÖµ9£[p“:
+18 -22
View File
@@ -1,23 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw 3op+GhV8OpN2fD3YxNIxBlL4vNvBX+ij93zH0r5ZIy4 -> ssh-ed25519 mOmPfg o+i2oELghwEnsYN0//DougkC/3VAP6lVl0VYH7cELyQ
i2UDs/g/2w+tCgCnWtMK7fPSSGEtcCimQlY31fYWHYE yL2FJ/MkSuJrB0J4iK1EVdG21RWc3M4NmVU8TncI7dw
-> ssh-ed25519 mOmPfg wjMwi+bB1CC83f5eCcbmNE/w+aF72BTTxEJkZu3oVy8 -> ssh-ed25519 YJiRbw XojJl236Ed5WUnda48abwixlYyuaoQx9QzYiQNl8o30
5qcAf6zWzKgN9fD4qjsb5GnjfZsjCbMdcEDD3TI4gtA 3PA6fnnWVHqTAmQtrYEE4KBcvGGjaPl6MwKIqoeNHTk
-> ssh-ed25519 YJiRbw 3OYExR/7TTlzvDK/xXh5fQ+f946hVxVRviSDv2DJjj4 -> ssh-ed25519 aY2AXA lwiy/CDfOwsutQrEvE9+tbMiYMSmivICPE+P3CcDsic
1SbIht8SnDdGw404tFdmEAHydGg18Phb0a3WpeAxqK0 wqZ+kQ659tMEKZXuNUuISjeWuFV4lTX9QNgUTtg28Hg
-> ssh-ed25519 aY2AXA IxtJr8/Bp4gaITNzxiXuDPkFUF0/skE1T6Da80zZdXo -> ssh-ed25519 Nl/5yA uzDbFGonniZv3yYPo8wVHhPM8xhCB72osiFF7qlkwQY
D63zeOhtKPgtPLbNBnVzK4P0ZhytJ6whq7lTxTN+zwA lsbg26Hru9WKvjN9DedhBdXzHczTv3FgBH9GqfvzfUo
-> ssh-ed25519 Nl/5yA isCCfCSBrU8yGQ/oNHGRB/V5T/BnPV+6FZnhPq0D82w -> ssh-ed25519 GdLgCQ IMBKcmHmJQSjemBjpRd8codzvji7CWWVymf94RnMAEo
+6M0cX0MbCOKA3QZocEiYZfEFgcgDrVpYscPx6KTndw YfwvLEz+hESvvevoYp9YW5GL2mg6ss1Sn83/nLHRhCE
-> ssh-ed25519 GdLgCQ a6zGDEVPndccmXoYOK/hGQEwgq8tvbkIThopz/4cQwM -> ssh-ed25519 tOH/HQ K5bPrUnHPIjkCyZUnK36zrtSSBBRYaHKWIYDyW07v0M
6qyK4b/6xbBXaqxQkKWufVVgptDF7TZcrRcAjowHkSk AHSM8WuLySrHAhy7h2Vr1XU6r7O6xRdYPS8djxBys2s
-> ssh-ed25519 tOH/HQ maiNdWPZ+ZeIFC9ZJPgMNb0vb0sgLMsfiDyj8pThoG4 -> ssh-ed25519 FpzvfQ WLZ2OiarCBQolnpS7dTkQhiZY9/P8CpZ1fHYm2nwAR4
OGUR9ZCFVgKxiqsDf4EZk59QwkMYFeJp2mPqd3PEOTk ettuJbEGuxXUqT9Kb7J89aw6TdtUckeLXItfANrg+T0
-> ssh-ed25519 FpzvfQ C0UnpWeSAtrm3DJAJuEFSayJr/3m+7SiJvejUrFYklo -> ssh-ed25519 kdPvzQ G/pyPAn05PtGcAi8WCf/mbBAX1eOlABC3Wy4Md/X9yw
gBxzb/JmRvyutYLYOsAf1Hs4Py+jsv4OvEE/CWL3kDU n8pWfPKC4DSPZiEJZ9ysZupIFyF5RMM+Dx5savwPcO8
-> ssh-ed25519 kdPvzQ /4iNfORP7vr6STdayTzULEutq6A34as9D/SQyrOmimQ --- H/MbLtj0T3VfZhz+7LTPkp3SRuCDCR94KSW+8RThjtg
XKB0sv1RvSlFU8j3IHHiFaPMnUTNBeLSxWPgfne822s yÝ^Y ¼@«o1Ïç ùãªXN7B„Ô×d³␍ô©Š™]àüµÉvóÃ{R b¯|&Ù«@*_¤·æNäì¤åC›Ì‰Èì<Ò‹^~¹‰)LÆžœ~n¡ôâ n=ð` åDQ|å2œc}6™ÚíûC„˜¿<kmOÝ<iÚ8ïFRCBÔ2V1«„␍°™ª´ÔÐs*Aô
-> n+-grease 6H
hA
--- ZmPFZncGjg6Ze5VdAq7ZxhMwCoL5XJRNhN8iZBse5pc
ÿBt;¹,Ö¤2¥"+"+5ßé´0Ðf␍#qÈ#³t“‰ó¡0u¤c/¼¦XS ¤ÙÒêšypC]ØëË €õÍÖ"øä‹:ÇŸlaž'ÕaZv¬½]Ù©A’µ+—ÇÕ.õ²¿¨I;J5ðÝ“^ö,î’2´cœf«ï:-–ÁͰwüµÓÞ<œVzth~}×qÌ%¢?¨F
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+18 -23
View File
@@ -1,24 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw 1gVcNXHntuYOZt7uS7bha7oUfCfIhRzzOJIxhsDneUg -> ssh-ed25519 mOmPfg 1S+O/4h+KtXv/KT7jumzZjbVRjI5fWWP9s2qpYWNNiM
2E+w6F+4Ivj6sVgbwDuHVrtp8xd/Vb6taHflp2ua/LQ rI4PYkwXE2nLWAxxjREBswKb9N/ZmU26D91XtmcL1gQ
-> ssh-ed25519 mOmPfg RqI0kJeCEI/bbnfkFbH+49b2iNl7XIk6Xmbeoc27f1w -> ssh-ed25519 YJiRbw aXG0M0Nfa0zt01LpXqynqrxbbTT8AlyZYrNKVOPHhXA
amQ1gg3tbuKE4RRgJ4W1nTnt2cZJvG270ILFnxH0n10 mWE7ed0KNPcE7ZR1r1KdBAxHM29F46GxwFw7w0R9awA
-> ssh-ed25519 YJiRbw VdyG0wKNQ40NhrPHGKxjioT8G7x6os3txWNyl4fUGlc -> ssh-ed25519 aY2AXA iC9GKmK60/1kHYZyN3DoILqsvPZUDWY5F31kTefOc34
KViYzzpahou/pz7CchKgD6T9v/jHrECgyGwXaMpJ83g gdkASIQcUvogORDIhHdT/wo+0jP53VIqeYCRzPmAU8o
-> ssh-ed25519 aY2AXA IKzNs61QdKaTUDfCaerk//hj7aJuspjPHdjLUIZnkjQ -> ssh-ed25519 Nl/5yA gG0I+WlVA1jfcQ+WlrgzlfpsvxzOOLr280Fx9s+sNRw
xRRWvEZNYiFU227kqNMH9PzuK1Q1czzTb72ZQ6WeUUE 9Vlh1tJ2ucjXEzFKjamj7/tDGsBrg5+VYdYHhX8GPio
-> ssh-ed25519 Nl/5yA CK4Ny0Lqv8uw3wKvBZX7OFAq9UG83IAFO8SV54kpdWA -> ssh-ed25519 GdLgCQ Pf9rjnx2w6QZJ+sA1pOD090ODdVBLjDbWD573CZTj3U
PJClgWC2EhB/zr0u42QWtXlskQv4DeeDkmUku/Mqkco WFPlHf7MVKLAC4zyggvr2yqbMYq5LBsO1nW2/eT/2fA
-> ssh-ed25519 GdLgCQ Ldy01TmkbvmuG8QDo39zaZK1JMBy8H2gZ9gd+xvv4xY -> ssh-ed25519 tOH/HQ j61wyz9nJqfXtw9q+XhqJI7XLGjwO1ecWDXYvpzxlzM
5ewsObFjmZCh7VIoPBLsrRz9pXQyvCBKOsyEW1TJDIM 5y/197ptsDvrSFlaRtb9KbEDp9FKN3y1ggNTo0LZGss
-> ssh-ed25519 tOH/HQ Iz9rOSoY2+SjOmCgYJkvkqfwgg+trZGcrCl5TemzZz8 -> ssh-ed25519 FpzvfQ QA3+JlcexQQCzy60UqJ12n5WrgXj6/raiYvezsftDUQ
L+yoX/1/odfI4zcjcL9ccW9QG0TxoQF1peenqMvS5ng 4hzapxkfBUgtSy8jv8xaH8qO6c5/U8hSfgsOWTCXtqY
-> ssh-ed25519 FpzvfQ 1hz0IwEtpIgxbVKK2q1Gb2HMNykWxOrAcjAGK6Xwamw -> ssh-ed25519 kdPvzQ lTiMAWCoQ7wSNSWTzJ7wgt/SPXcq7rTHli3cZKEH3zI
tIQt2yKSXABnJAKuXXVkJe4C/XYa7afGE/WsD2nZ7kE IqnTB97pG06TE/H7EelI7lRejDDmeeNAmlcA3iXcmsw
-> ssh-ed25519 kdPvzQ goTQzffzeBmlCSiVmehfE1QNcWau3Mp+6A2ulbhRt0o --- dMfqSq2yC7lsn66dsfNVyhcIlYeKMvsc+asI5Olvz7k
Q675UHTn6RiDOMd0Zaioo25qBAuHFgkfwFQAICLCBYs >諧5陟サ(IO贖エュSvttリ妣辷チ。ヤ]tク5 mgンM({]スユ柱翼華ハK瀲d蘂"サア、ア湧,ゥハミBa'ャス4S5
-> z-grease '%#V0Cvt
jEaoqrlfOBAv7IV/lHaHKhgegTyoSeThGpMyCDyG7V5rdyuthXFqOyAPJr1gTWit
6RIFDoTBamp9+s1H7Ie0BVRN9PM+qyxy0ezzSXiib9ddW2A0TsKHR4M
--- kfIy6IcNlk5+RUWpSUbzhNEqP6RmPuuVsr78T5n/36o
Lÿ\o8Ck=c[âǧ ‡§Sd&¿h°Â6/ðûÁëfÔzÐ@Bžœª5®3 Ý¡RTÛ#”¥~ íkOq—s‡·}#°ÛÀx¶1T?fE޳ìžö
Binary file not shown.
+18 -23
View File
@@ -1,24 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw Ee6sHuaax6dl1ymOessJyXNOn6Yqdx+TmvXtWVCDHUU -> ssh-ed25519 mOmPfg 2G5NU0YqTsV1tEd6OEPQq5Mz47zxOhyl+N40AQFWGUg
/6mfY5/olSO0tlPzUBCzkcmBFNnUucCakSAvEppc7Kg 9HICW3CX8Zu72b70AJ0DLU0UZdARGzjgiuGtO7tuMyE
-> ssh-ed25519 mOmPfg bEIwmTQPh+ckpBvU+zuQJFLguXLOV6H8XAcA6sla5Uk -> ssh-ed25519 YJiRbw Nhj7z919U4Zua3KqD69z43Gl8D/UlcbO/Ka/prqC3nE
a00/OUNo3O239ZL0Xh6Do7iw2wP4f00Ct5bHX2E1t2M BYGMIuheJ/M/jAuENAkhpT17QeFMNwvh62atAMVTzmQ
-> ssh-ed25519 YJiRbw /UBwRGBmkTJ7lGGngi9Yq9dscC/1ZA1y1XAIf0zYSmU -> ssh-ed25519 aY2AXA 1K8CdLdKOkqtbLzbQ59K4Ian4oI0aBLWA2gt2b65ZQ8
u+Q4aX+oO0BQ90iStA7mCww+4MSUPePuxuidtwFNusg LaZfOk9friVrPyFgDnuKPwVV07Q39mhseK2MIY3Q21Q
-> ssh-ed25519 aY2AXA MdCq40DKOrF5qhwDy3aOjiFczim6V5mc6vetpy+LSAY -> ssh-ed25519 Nl/5yA ZmaGiys35vAP0S9RXwnP2Rs6LDsGrxXkVkER4lA7jgI
yoahpHv1FsynU8QUTkt6DJefcyuCz94/4AZLM2IZRsE WbV3Yem3gcnH/6kP4TE/uJKj4046xzbKYNGXGB7Lw+E
-> ssh-ed25519 Nl/5yA qvk0cLBlAk/h+PRndzX2EQUrgb7NV9/x/+m5a/ZWtQQ -> ssh-ed25519 GdLgCQ lT07BOROuNbkmgyFGStm4mWQqPVYZHww+kAXQJEAwwg
72emoDa8zBCCSJgT2eEDxhydMSuEdbywCarcmjlGz7U enfauL3YtQIZ8nQEUi1jkqr+kzk4mA1tWdW+PfTl5OQ
-> ssh-ed25519 GdLgCQ IBx6NonXSJIO2gGKfzfJbxW0KaqFstwwC3D6fVpg6jY -> ssh-ed25519 tOH/HQ 9qKXwlbH67xrNWhr5WuxgJ3i+M9jyT50sWc2fdSEmy8
rvr21zirUS+R9zCyPV5O/cqzVe9NVevlfrBRRAJNAos xOVZUX/Z3PZK9uVKyaK++g2oc2MMaN0uVReAPh0naEs
-> ssh-ed25519 tOH/HQ eyUGDyQGogdQ7Wyj10HFS/GBZsur86ssYeX1yEV4NS0 -> ssh-ed25519 FpzvfQ /Kx8WrMw4jG+ufzDBKgQgDQZick+WxGOTBlaK2jOdAw
iYkMk9w5cpaKgvXomTYXPSXKJXvsIYNbqIaIM1aRQZc Fsa+SzNcgnxQR9hZXR7l+gAQxY/c1wZH9Ftz8aF392k
-> ssh-ed25519 FpzvfQ 18RQYBBhudWXP6KTjTkuyclfNAIoVMwlAsJzMa/lFTU -> ssh-ed25519 kdPvzQ PWfMYf9DSnxhYXnEf4kEQ9Z4zZJmzwC0hmsz2c4fWFc
Cs+yqVQ/dnhRj7XWnBo+sq0Jzy8EAHxrxQ/xlThY/58 FMq/kfEv8AXxvFUKQ2WktsW8Kc4ehHMr407+xjwr/rU
-> ssh-ed25519 kdPvzQ fRInO3CmYQlEoaXKMekM8uGr+PTR3fTRSVQH16WDhQs --- hMLIVir6WZ+pyg6DfbwOrFAu6go5X/r5ba5T8GNJcI8
y7oVEp7MowBn3SeGzvtWS9dWKRXqwgzs7SFKKYzYs1c dfã->ÖšþyG_ô~NÃ˽K—€Û··<Æ‚¥h IJ¦öÞDk˜°ÅMµ²sRÍöJAëýÜ¢NËýÃ+†ÀSL.ኸã
-> VqCj-grease cM
l13Rk35e1jII+LYs8kLlxPFqxG+6RpGfyD6y7ECvawQ3LFeVGS5tK8mw0lmA1837
gDmHFduATwN+Vh+1ma1xmTzZW/8q01ChxRtw61b+s2WvdskJRnqURiUj
--- ydn3UpzhLestaGGFt4qPWfzAAsG48Dvv4XiNnscOlX8
O™l—ÓEšÇ+Áê'¢çîG‚çyð¾UsE·7j+V|ͩ˞¨üëëeó¯èŒÚíb{ÔçÞ)y©²üuEùœKÌÓâŠúnT™mz
+19 -22
View File
@@ -1,23 +1,20 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw hbxTniFYHleC74gD9ipfbIAh5d4pPj2DkDkW7oFjxyU -> ssh-ed25519 mOmPfg yOULBTP94sJiyma4Yzp5SCIbEKdFkJEPi962XZA7CFA
lYz2RHrr2xBPmNaLYbu8w/mjLuuvf/Rca+znPNhykmA QsdyfwKgX95rxlZhYmKe8UxgHPpLtX3C1nBF+649Wfo
-> ssh-ed25519 mOmPfg Q4hNJGkGiO5F6FE5vMLBjHXgH3MMYeROL3OrVI8iHEY -> ssh-ed25519 YJiRbw XZ2AJPQz+v1D4DBzUMOIXr07lrn6hQsWYQW+8AzwBko
kZFI/ywUTVb6mczZTvuTroA+UKESSxfAE5nN39nd+Mc VLTi/f9VnRPI48DBny3GLhD9XQsbAYCbaf2ZB2s19EM
-> ssh-ed25519 YJiRbw U7F4H/y2fki5BjRcoj6WSM4/moVc4LK6IL32/svL0TA -> ssh-ed25519 aY2AXA JBoYNE5DIAxi2NED/jo3raVTy7WBvRS4nqAOBF8UJgM
7Z2wp62ngdPkKQc7XY9zmKLoNfc4Oi7MJTAuAnEIjus 88VW3KGO6WoZEwqen6pDX8gBlOe2z8Jxo6Je1mKpB8w
-> ssh-ed25519 aY2AXA z+KbzHrWkOz0EEXSb8P1YXkySBRAS9WKhX4Mk/IyLxg -> ssh-ed25519 Nl/5yA fsU86ATOCufWpDqEQJ70rEe9ztsRCyfQDC9vg4/hFmI
8gxsvjm2ekYtPiFer20dyxkuUjOpvlvg5EgwEZzkv1c eYy38nXMFe0oBkBUjsiHqJxujkXIB2VH1FQRviTfLuM
-> ssh-ed25519 Nl/5yA /Gm9CD19quwWVBx9gCQsvy6tFb48xaZKFS3lYyAh6SQ -> ssh-ed25519 GdLgCQ BLCsfZiE9uoOyTXYCLrrTxM5uyPpC/oPxjn4ciiauWE
HtiW2rOYkBTVIuI+Y2/z1FEQJwxSJf4K7Q7eK4LNhUM 3VzsAVb8M47sUq8m/CeCx3CYPyDzo7mfD3GuwMRU9BY
-> ssh-ed25519 GdLgCQ jK2LK+MAIDxKU94XnHOg9v8seO9VKE42jr51zRY4PHQ -> ssh-ed25519 tOH/HQ lTW1co7HylJEEY6eNl+iniuAe1N4/kCYlPkGuniNnCA
IaqFbzdMu80cKeByc0Y4dVRPci5CVOtZ4F0f9P9G3SA WW5Nz1F+mRTNWoaSMqTNlGbZOzLLfh3PrXX6tahuS08
-> ssh-ed25519 tOH/HQ SG5pz5P2jlg0A86syvjNv6MK89aMPro8P8Su+lwaThI -> ssh-ed25519 FpzvfQ tYSQ6Ipm0Lk5c4/A9H3LJ+ZaHvKMTuL84RbfKaGI/BU
5SSF5u51C2TUJym8GdK56dgvNsVLmcSUrDCLOr88aTM fJGJRDlceoPy+FDeGlCIvQj/t4HScGTEYAQ31zPIvy8
-> ssh-ed25519 FpzvfQ jqFIr4c8IRgA1wPkzdutJZJ2UTeKJUy/qUKCp5C9E1g -> ssh-ed25519 kdPvzQ ZfEHG6OphdhbAtDPZ7bY0mfsTheaCkCrGdFsXdw5izM
qrcnB4L3Jd/euaQK6RLjsvxqB5rEupTqeQjxzd38JyY KucJj2PM4AQSAN8z5dtMQ3lNxQrzoX/ru7cfjZxS+mg
-> ssh-ed25519 kdPvzQ B/VS2CZLrj1UMSwm0p2k4JQra7jdpuqA2k8aHKFqQmo --- UZ6cw1upnDZDSEI2N0Afj09MhFajhKqUhn9DeZxXspg
sB+UWXYGCPRcirH9nIEw88D/7KvCVPZUgBevxX3pv1c Îù„œSg0@…ý
-> -A-grease ÛŸm«¸ãÌéUŽŽØhŒÔtµ‚/f³(]¥7™#§ü÷KäýHÞ-g¶âxà{¿SqÌû<ËËY’ ¡®:0õ©·7ù2µCrÊ¿ö]¤I;müoÑTs
G0JeaURRjTw+XEwEzv3M0HB6xNzO5+inlBR2eWGltrN0uKP4P8GbbfrI
--- C3BZePDnl+fl+JQUqk/XC3gIbkcfdAYjfm9oF6EJ1as
NGÒ>Ð ?€JÃeòTÝÍu:ŒÆ7<q9ÊÏTG" Výh½ö6jò¤ä0¥`0ñдt©€óhAÜ1äEœuª4#”{: ¦® ßq³äÌÉpD q©þ›€
+18 -22
View File
@@ -1,23 +1,19 @@
age-encryption.org/v1 age-encryption.org/v1
-> ssh-ed25519 oyEmTw LZKtu9SMMJu2sampgNCt8ED2O3ahJXJO7L1R8jF7ERc -> ssh-ed25519 mOmPfg Fti3/hZ2LNZTtHDt44QQKVG8KtI1ew6UcRnGdCGpZTg
sLUcvIGBnPvznsvY+2M6UYj9QXAYguwNYTXBs9DpHMw wMOhWTHd2BfzIetxNrU0KdrSn6b8JKBtxGxoykJIolA
-> ssh-ed25519 mOmPfg RG9XN6Oewa0IlDojj7l95PJLZ+2ZTJr27aqxPHWNQxM -> ssh-ed25519 YJiRbw PZ6i/cik5zD2Q304YDTjQJ1v37tTng8TgPbU40Gw5j4
/YkGe1LEfWBNqN3oHfr2+wlimSeIYTz4ZyNqKGr7WZ0 NAU+9KnxeTn4UXiZtXQYCZfW104crGpCS0Nd08aUu48
-> ssh-ed25519 YJiRbw mNibzxIqGjh4VdUj81uY/aNAOLha3zK7WcuLJJJlfiI -> ssh-ed25519 aY2AXA X9YU1qT6v3jh3CUiHXCA/TWCNRN/mx+BWbpK4z7pGAk
f/tYgb2n3NF382ZaMCDEnF2fZDS4Cj7EeHlSWX5AZOI N0pRGVfX37pzi+3GX4okj1b5QA8Y+Y3bErUJekTBYYc
-> ssh-ed25519 aY2AXA Jve/PI5ujBMbzFoPtbLzYNRkSO2ko5x4cA4eHlBZQXw -> ssh-ed25519 Nl/5yA fSQ1Ip11xRvPjvjFr6O9SGFi/8Hd5hYZ84Eao0v9YmM
qp2a8FH7iFkvXdiZIkzkaH0o4F8pMIkamikozkAgQ+M NpWf40Pyjl6NaEhG7wtalnF8eSKzd+XFMwB8IYpBfwo
-> ssh-ed25519 Nl/5yA d8bVRU9KOeGpJcg2PwWvnm8qnT8CEsBru4JHbiyed24 -> ssh-ed25519 GdLgCQ X39sru2i8g7oTAiVXhg9urlMMAPC4WZcZ4ipjzFGxR4
Z6I5Xhvhq1EWMuV/H7xiRYsx4F9QSxM/Xnd8VaHls8g gfQBzREuupeNwyD7XtCEUCSoRbAvd8bwyRLomKAk6rg
-> ssh-ed25519 GdLgCQ I1XoGkAandUnNszJypbu4uMN0ejo0fokWsU+CgXP2Wo -> ssh-ed25519 tOH/HQ jGh7wljbo4AnxEAs+vufic3j6Y+57Z0qLq5ZOS0YfEA
rLnZqCqsZgjElmVOfefVZtKiu00mJqjt66YysgdT3GA OeuNT4JxkoBX0XmewlxaPeuUgKGgf/BJlppl4CuFGwk
-> ssh-ed25519 tOH/HQ 1ekPwz1O/m/FsdwXtks/B5oTuZLwhvqXn5aiP3WqRy8 -> ssh-ed25519 FpzvfQ yB453fvNrlmZQydBS42OTtGapAZwCyjgsLmze5Rrhk4
PQ2dsYBhm8i4oUWeU430iCdwEf+NoMqfR3uHstdFVHc vI2jeR6Pl17k+EUo67sVIhXpqu1C0fNo8vtReMu3/A0
-> ssh-ed25519 FpzvfQ CuqgZOBrQFCCwQslHBXJmiZx5XrFKP/w3JGT0yTkFGQ -> ssh-ed25519 kdPvzQ njpxHD3aNvKyDIM0sRKD5A3/Iplg5U5FTlk9yYtFdjE
RAHWAXNWnm3gTIjTcfH+5bQ+AeikiSQ7ejCv9xQyF5A HukoZ4nrNohTKfua4kCLGZOUwXSUmSqQvMUJUpTaz6Q
-> ssh-ed25519 kdPvzQ EUwAYcsrZb/kvvBvTAqbcDIt2uRVdsItSyC0rDP/uUQ --- z1qWoUGQYj6xHAOpXiQpEC9ImwqLXkjYRRYFx/WnxJU
/jet2+ewq/rkZMt3Air3CDio1qkJXmN+jzTvqkMmQpk 3ô¼w 4랤C¢Sò~>7ÒT÷0a&l/lmòp]çï}õ«
-> Z-grease /D aI fQ9
UPslB3eMDsmzbw
--- M/PtjTsIhWWbmnlXu+8v18AFhvcph2SWiG98GLeDoOU
Ö »ˆ^?r,­€|è¿i3ß␍Ä@ÒËE?.ôÎ2~…ûýl>9îÖ ö~
+2 -2
View File
@@ -34,14 +34,14 @@ in
# Then you can reference the file at /run/agenix/matrix # Then you can reference the file at /run/agenix/matrix
"nextcloudadmin.age".publicKeys = everyone; "nextcloudadmin.age".publicKeys = everyone;
"drone.age".publicKeys = everyone;
"3proxy.age".publicKeys = everyone; "3proxy.age".publicKeys = everyone;
"linode-forgejo-runner.age".publicKeys = everyone; "linode-forgejo-runner.age".publicKeys = everyone;
"jude-forgejo-runner.age".publicKeys = everyone; "jude-forgejo-runner.age".publicKeys = everyone;
"dendrite.age".publicKeys = everyone;
"dendrite_key.age".publicKeys = everyone;
"gitlab/secret.age".publicKeys = everyone; "gitlab/secret.age".publicKeys = everyone;
"gitlab/otp.age".publicKeys = everyone; "gitlab/otp.age".publicKeys = everyone;
"gitlab/db.age".publicKeys = everyone; "gitlab/db.age".publicKeys = everyone;