Merge remote-tracking branch 'origin/main' into compass

This commit is contained in:
Greg Hellings
2023-08-23 14:48:40 -05:00
committed by greg-compass
49 changed files with 1039 additions and 287 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ let
gnome = false;
gui = false;
home = "/Users/gregory.hellings";
mac = true;
host = name;
};
};
users.users."gregory.hellings".home = "/Users/gregory.hellings";
+5
View File
@@ -25,11 +25,16 @@ in {
brews = [
"qemu"
"gcc"
"libaacs"
{
name = "libvirt";
restart_service = true;
}
"virt-manager"
];
casks = [
"synology-drive"
"handbrake"
];
};
}
Generated
+15 -15
View File
@@ -219,11 +219,11 @@
]
},
"locked": {
"lastModified": 1691312444,
"narHash": "sha256-J9e9dGwAPTX+UlAn8jehoyaEq6fwK+L+gunfx0cYT4E=",
"lastModified": 1692260837,
"narHash": "sha256-2FpkX1zl+7ni7djK7NeE1ZGupRUwZgjW+RPCSBgDf4k=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "903e06d734bcae48efb79b9afd51b406d2744179",
"rev": "6a94c1a59737783c282c4031555a289c28b961e4",
"type": "github"
},
"original": {
@@ -281,11 +281,11 @@
"nmt": "nmt"
},
"locked": {
"lastModified": 1691355845,
"narHash": "sha256-00GSWiXYdCiBOv7MTW4mCzoSCqBZYQ8K9NID5E3WVas=",
"lastModified": 1692281989,
"narHash": "sha256-b1WPbUNVWahAHvMxWnp+0zzswUj8lReX/c28O2Au2Og=",
"owner": "NixNeovim",
"repo": "NixNeovim",
"rev": "98296a348aad6d6430a568dfb17101c817f00714",
"rev": "929c6c4a188947801ac354e1c5d110937fca9449",
"type": "github"
},
"original": {
@@ -307,11 +307,11 @@
"poetry2nix": "poetry2nix"
},
"locked": {
"lastModified": 1691331489,
"narHash": "sha256-aSz1bJyHhKtjN5DpPLoIkpW3TYWs4zqiSBjAjnEObsw=",
"lastModified": 1692281871,
"narHash": "sha256-nyOnXgW1lyD+ngprSVrKAQdgcK+XSd0vvRaZm5PwRwk=",
"owner": "nixneovim",
"repo": "nixneovimplugins",
"rev": "76048147f3e04fe3f1fa79114d2feb7f35caa64d",
"rev": "93da8f94aa765d8597d631ee5beafb6d26824777",
"type": "github"
},
"original": {
@@ -354,11 +354,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1691186842,
"narHash": "sha256-wxBVCvZUwq+XS4N4t9NqsHV4E64cPVqQ2fdDISpjcw0=",
"lastModified": 1692174805,
"narHash": "sha256-xmNPFDi/AUMIxwgOH/IVom55Dks34u1g7sFKKebxUm0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "18036c0be90f4e308ae3ebcab0e14aae0336fe42",
"rev": "caac0eb6bdcad0b32cb2522e03e4002c8975c62e",
"type": "github"
},
"original": {
@@ -386,11 +386,11 @@
},
"nixunstable": {
"locked": {
"lastModified": 1690272529,
"narHash": "sha256-MakzcKXEdv/I4qJUtq/k/eG+rVmyOZLnYNC2w1mB59Y=",
"lastModified": 1692174805,
"narHash": "sha256-xmNPFDi/AUMIxwgOH/IVom55Dks34u1g7sFKKebxUm0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ef99fa5c5ed624460217c31ac4271cfb5cb2502c",
"rev": "caac0eb6bdcad0b32cb2522e03e4002c8975c62e",
"type": "github"
},
"original": {
+20 -4
View File
@@ -12,14 +12,25 @@ in
./firefox.nix
];
# An alternative editor to vim, when I need it for some things
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
golang.go
ms-python.python
ms-pyright.pyright
vscjava.vscode-java-test
vscjava.vscode-java-dependency
vscjava.vscode-java-debug
vscodevim.vim
];
};
# These packages are Linux only
home.packages = with pkgs; ( excludes ["x86_64-darwin" "aarch64-darwin"]
[
cdrtools
ffmpeg
handbrake
libtheora
makemkv
vlc
x265
]) ++
@@ -34,6 +45,11 @@ in
libreoffice
logseq
nextcloud-client
]) ++
# Items that are not supported on ARM/Linux
( excludes ["aarch64-linux"]
[
onlyoffice-bin
synology-drive-client
zoom-us
+10 -8
View File
@@ -1,5 +1,6 @@
{ pkgs, lib, gui, gnome,
inputs, mac,
inputs,
host ? "most",
...}:
{
@@ -11,11 +12,10 @@
./direnv.nix
./git.nix
./ssh.nix
./templates.nix
./vim.nix
./xonsh.nix
] ++ ( if gui then [ ./gui ] else [])
++ ( if mac then [ ./mac.nix ] else []);
./hosts/${host}
] ++ ( if gui then [ ./gui ] else []);
greg.gnome = gnome;
@@ -35,10 +35,9 @@
home.stateVersion = "23.05";
home.packages = with pkgs; [
bitwarden-cli
brew
copier
diffutils
findutils
gimp
git
gnupatch
gregpy
@@ -55,7 +54,10 @@
transcrypt
tree
unzip
vagrant
wget
];
] ++ ( if pkgs.system == "x86_64-linux" || pkgs.system == "aarch64-linux" then
# Linux-only packages here
[
busybox
] else []);
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+16
View File
@@ -0,0 +1,16 @@
{ pkgs, lib, ...}:
{
home.packages = with pkgs; [
aacs
brew
];
home.file.".pip/pip.conf".text = (lib.strings.concatStringsSep "\n" [
"[global]"
"retries = 1"
"index-url = https://pypi.python.org/simple"
"extra-index-url ="
" https://pypi.ivrtechnology.com/simple/"
" https://pypidev.ivrtechnology.com/simple/"
]);
}
+14
View File
@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
gimp
gnucash
ffmpeg
handbrake
libtheora
makemkv
synology-drive-client
vagrant
];
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
+7
View File
@@ -0,0 +1,7 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
brew
];
}
+5
View File
@@ -0,0 +1,5 @@
{ ... }:
{
}
-18
View File
@@ -1,18 +0,0 @@
{ pkgs, ... }:
{
# Programs for everyone?
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
golang.go
ms-python.python
ms-pyright.pyright
vscjava.vscode-java-test
vscjava.vscode-java-dependency
vscjava.vscode-java-debug
vscodevim.vim
];
};
}
+59 -4
View File
@@ -19,8 +19,18 @@ in {
};
dconf.settings = {
"org/gnome/Disks" = {
image-dir-uri = "file:///home/greg/Downloads";
};
"org/gnome/desktop/interface" = {
clock-show-weekday = true;
color-scheme = "default";
cursor-size = 24;
toolbar-style = "text";
};
"org/gnome/desktop/screensaver" = {
lock-delay = "uint32 0";
lock-enabled = false;
};
"org/gnome/desktop/wm/keybindings" = {
switch-applications = [];
@@ -28,16 +38,28 @@ in {
switch-windows = ["<Alt>Tab"];
switch-windows-backward = [ "<Shift><Alt>Tab" ];
};
"org/gnome/desktop/wm/preferences" = {
button-layout="icon:minimize,maximize,close";
};
"org/gnome/file-roller/listing" = {
list-mode = "as-folder";
name-coloumn-width = 302;
show-path = true;
sort-method = "name";
sort-type = "ascending";
};
"org/gnome/nautilus/preferences" = {
default-folder-viewer = "icon-view";
search-filter-time-type = "last_modified";
search-view = "list-view";
};
"org/gnome/shell/window-switcher" = {
app-icon-mode = "both";
current-workspace-only = true;
};
"org/gnome/shell" = {
enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"Vitals@CoreCoding.com"
"window-list@gnome-shell-extensions.gcampax.github.com"
"gsconnect@andyholmes.github.io"
];
favorite-apps = [
"org.gnome.Calendar.desktop"
"org.gnome.Nautilus.desktop"
@@ -45,6 +67,16 @@ in {
"firefox.desktop"
"vlc.desktop"
];
remember-mount-password = true;
};
"org/gnome/shell/extensions/vitals" = {
hot-sensors = [
"_memory_usage_"
"_system_load_1m_"
"__network-rx_max__"
"_temperature_k10temp_tccd1_"
"_temperature_k10temp_tctl_"
];
};
"org/gnome/shell/overrides" = {
attach-modal-dialogs = true;
@@ -53,6 +85,29 @@ in {
focus-change-on-pointer-rest = true;
workspaces-only-on-primary = true;
};
"org/gnome/shell/weather" = {
automation-location = true;
locations = "[<(uint32 2, <('Midlothian / Waxahachie, Mid-Way Regional Airport', 'KJWY', false, [(0.5664611473274288, -1.691437359323684)], @a(dd) [])>)>]";
};
"org/gnome/shell/window-switcher" = {
app-icon-mode = "both";
current-workspace-only = true;
};
"org/gtk/settings/file-chooser" = {
location-mode = "path-bar";
show-hidden = false;
show-size-column = true;
sort-column = "modified";
sort-directories-first = false;
sort-order = "descending";
};
"org/virt-manager/virt-manager/confirm" = {
delete-storage = true;
forcepoweroff = false;
};
"org/virt-manager/virt-manager/details" = {
show-toolbar = true;
};
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///session" "qemu:///system" ];
uris = [ "qemu:///session" "qemu:///system" ];
+2
View File
@@ -3,3 +3,5 @@ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6c
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCoGGV3eD1oF0O62JZfCWNxmViRjRGQsfOhRkQfzQROkwDlFZ7S1+02fudD9t7mPtZE6dQ4yS2+6Q3NIfGW8NBbZAlWwsQ6PnrpuAhWpWc+ng/IDQd9CH/rBCt5bWSLL8AGHa4c+qde7iyoFGK0l9jXVD9wATBFQ274WTmPacVQVHmIAmJS6ISmR6vlq9eaDj1fX8wixao6WvzfwAUvXIs8nhPEfmtyu4T/1Eev9rVIxOw3ODQjk/E0VWV4Koeptsyc+V+j+XMyA91v8f20T4Uwe5LGnJHSQS0WavHnCMWHb1tzkmiKdaNCymoDUcUF2rywMYry7JN0kZo2mp2d7OzE/RP3bz/IsAI33+DwRlDYDNzgeLsLVmOJij61AtqBZque6WDcyCF8HN0ZaY0KJPOtNlN92+GUBRF/Faei0MXZ7wW2BZL5Bc7qnXc9USyhPNsm2vQ7LLhh/NtBGqB88+C+AidTTZ/xiIHKWZJXPkWLPRcK5cfaFqHFqcVMk4U+b0FYB95vYPKmjURlAZ6WrU6dNaNaMH9hJSE6/03is4hb4t8RCRiNaR41pEACDZbATjY0DInFn1LxxpUV66xfpOVg5hKm5ScIks3KxWJ8i3v4/cX7WvbDC/UzWb2UygpsqR7/1n5LV1SNPl+/qxFfdaOyZ8WVvx7DKGxkKfkPBgGwdpSthdv7BY+SC4sT9WXQAPGnvOIk6HwKhHjJYX7AIKK64ACfGZbjBC2gg7Ocl4HkgwpYYlUWLRJdJUhHOCi3VhPZDspYhw/UxPnUhYa8lxq5l7kgkks/tFe1qHOvPe3QRW6brg3EdJNkwtMrlrstW4/nph/KFqSshzNVDlEqTAnhE1cjbBZNmlHt1Un4ixcW1b8b86mE+472pSsIEfO8vxP26brQhxepJFZGOFv2vs3XDrrtn6IMJok4e+AQSCCY0kCcgfG5nMYXUoWpGyTpN/JLG0joJuhPWt58OaOzzKNPq2+rCVAbS7/UmDCqkwxjCywxOZRwluBsEWbZaLEdOwQOfIZQGwSDBM0hfHJJxMSaLN3rCe6VZb+c/5mFXUZ46L5mOGkRlO1TOEAe4jqawAQnuGaHN8mMWSw1gKM+UBXTKa0tBR6Aj/OSfPW0jU+mz/YzzJkzNnlRFiSrLxWvL4eXaBsMZvgKdpA41+E4JG8Vu+9D9KNGRnLASOCxRknV18MubZlEEyKby9A6TaKoPrz7GVQZP+36V9DtAJAza74nHSDNAQG/4w2BLOw9+VrDNdXwjMbgG+SN4f1K+e554OirtSMVB73VXjdwoH/FyX+7+dcUZRQ7V2n37jIVOE6CcuEPjzdnkvKSqBsdTO3Bt66+QtS9BwGHu5c01+Q7jvIl greg@nixos
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCXP9nxL5Hg1R1AtT78zJl+ObCDZsnWWAqAYhTVjpRvYpiTbODvCf2IImvUsLGMdgo/xdSSzNqQcK6+KZVeNbvRSsw0ssWw7ggYnhw/yyv/KDZwnqXsppeucicnwpQNvts154yOqAvuuMaOYCTTQoOVvecDdgtA3svIpfxL3vVB/Mq/Ns/NwoE9XKz3NBYlWytqDcvSwR6Les7RzbMIs6axSfMVNwm9w41dG1NqDMteLjKlQ8bFfrtWXZ4QHKlnEWatOgJIzbP1hU91JvvzfypjleGuE9EBCSayqhu9PuxJ1/yxMJKSMaXUl8SoPMLsPNr1ZS5ZNjkNCvZK4fI+CqyAXtbgeSGKIKqZhg9z6/fR9SG0l3Gh3Prtw+AEuE+Xzb99Bi4IAe8lTaL+lw+z+CmsXR+kcJ4nnNrmf1fnDsI4l1EctVGb3Yt3tutV6GjB4mDjIYKwNBxuIx8hlugmZIy3oEUGrh85o5wnXlJQzmhszS4eas99dj1L5tj5dF4O/ED7SyQI5e7V9Pb5AgolcvLLXcFzDuy43oU8kWvQJMMvbEIFr6qPXWmp8MvrSTucRQCCzWJVudhrYhodXA56tRoJvFIRs0s12p/YXzsmJbKxPiVwLGOlCd2CqbdM2rCqN2LkUeOAQitb/8wv4njRKZ4lgqhjyXnBtoD2Nm/NmuIERoUY9J21dOhc2tg0zLvH120xVKa+WN5HVOOG9LyKl7koyc8nqdSDKFhcN4joYmnZKfyJUJzQIhiQayEfvWfTNJiNVkMIE2OqQ4O64s/7QzOHeHSMzY4TCO7+5bK9ecOqPxCDHLHhO0xVA3/w4FscRkObjkQ6zv3UCFJTSbr4YkdUIk8OtRR2KN9y9txrt/OS1l1DigVyuYUdz/L83+Y8E8d3l0hq/S1YLMwlkCbHE8hm0HxlLuyTA3OqXizRxNk7w4ku9OC4+nHrj03i2apNG0Z/ojcGsJxSBLhPGlPWbDJ2h7YL+lkDZFitdhBZHjIQKC2dNoretA8zEzNk48Pi829NFRuXqjSsq3iOJ1sXP/lMAZvdzbZOQ8CrH5SWb9GDeWR0uh76RXzKXvv5UTtu1PpYj/BHToApc8kUAxpUh3ypjt6bS7XLYtk74PEZHD3HXbpBYBnMNPUp2ecDw6rxpLxq3rnzROriX4Uvy0sOx8Q13ZgrZwxLeEWImlK9qQT4SYytGGxt4vwG0R2B8zS1xNiNC/B8jnBrK4GwnYSuJwNMrJ8vk1u9gn1pCj51RslBsldVzVB30jxNU74iD/WQGJudJrUAYkQ5EpArKZK0GQfaRXM6VzsvyLBA02CZJkeIU0jUc6Q1Nms+C8teKrP8+EKXONT/igsLXwfLMiR2CqVP greg@nixos
-7
View File
@@ -1,7 +0,0 @@
{ pkgs, ... }:
{
home.packages = [
pkgs.cookiecutter
];
}
+1 -1
View File
@@ -41,7 +41,7 @@
cylint = "./scripts/run_yaml_lint.py";
cpip = "compass workspace run src/python3/uc/tools:run_pip_compile";
cleanup = "nix-collect-garbage -d && nix store optimise";
cleanup = "nix-collect-garbage --delete-older-than 30d && nix store optimise";
d = "vox deactivate";
devroles = "cd ~/src/ansible_collections/devroles";
dirflake = "nix flake new -t github:nix-community/nix-direnv";
+7 -2
View File
@@ -16,7 +16,7 @@ let
};
in channel.lib.nixosSystem {
inherit system;
specialArgs = { inherit nixpkgs; };
specialArgs = { inherit nixpkgs inputs; };
modules = [
{
nixpkgs.overlays = overlays;
@@ -26,6 +26,7 @@ let
home-manager.extraSpecialArgs = {
inherit gnome gui inputs overlays;
home = "/home/greg";
host = name;
};
}
inputs.agenix.nixosModules.default
@@ -36,7 +37,11 @@ let
] ++ extraMods;
};
in {
"2maccabees" = unstable { name = "2maccabees"; system = "aarch64-linux"; };
"2maccabees" = unstable {
system = "aarch64-linux";
name = "2maccabees";
};
genesis = unstable { name = "genesis"; };
jude = unstable {
name = "jude";
gnome = true;
+49
View File
@@ -0,0 +1,49 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, ... }:
{
imports = [
# Include the results of the hardware scan.
./dnsmasq.nix
./hardware-configuration.nix
./home-assistant.nix
./networking.nix
./vhosts.nix
];
greg.home = true;
greg.gnome.enable = false;
# Bootloader.
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
};
networking.hostName = "genesis"; # Define your hostname.
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
}
+108
View File
@@ -0,0 +1,108 @@
{ config, pkgs, ... }:
let
extraHosts = builtins.concatStringsSep "\n" [
# Local hosts
"10.42.0.1 switch"
"10.42.1.1 router genesis genesis.thehellings.lan dns dns.thehellings.lan smart smart.thehellings.lan jellyfin jellyfin.thehellings.lan"
#"10.42.1.2 2maccabees 2maccabees.thehellings.lan dns dns.thehellings.lan smart smart.thehellings.lan jellyfin jellyfin.thehellings.lan"
"10.42.1.3 printer"
"10.42.1.4 chronicles nas"
"10.42.1.12 tv"
# Tailscale hosts
"100.90.74.19 jude.shire-zebra.ts.net"
"100.99.244.92 dns.shire-zebra.ts.net 2maccabees.shire-zebra.ts.net smart.shire-zebra.ts.net jellyfin.shire-zebra.ts.net"
"100.119.228.115 chronicles.shire-zebra.ts.net nas.shire-zebra.ts.net"
"100.115.57.8 linode.shire-zebra.ts.net"
# Dev hosts
"10.42.101.1 icdm.lan wiki.icdm.lan *.icdm.lan"
];
extraConfig = builtins.concatStringsSep "\n" [
];
lanDevice = "enp1s0";
in
{
# Enable the service with its own configuration
services.dnsmasq = {
enable = true;
settings = {
domain = "thehellings.lan";
dhcp-range = [
# "${lanDevice},10.42.0.1,10.42.1.255,255.255.0.0,static"
"${lanDevice},10.42.2.1,10.42.2.255,255.255.0.0,12h"
"vlan66@${lanDevice},192.168.66.3,192.168.66.150,255.255.255.0,12h"
"vlan67@${lanDevice},192.168.67.3,192.168.67.150,12h"
];
dhcp-option = [
"${lanDevice},option:router,10.42.1.1"
"${lanDevice},option:dns-server,10.42.1.1,1.1.1.1"
"${lanDevice},option:domain-search,thehellings.lan,shire-zebra.ts.net"
"vlan66@${lanDevice},option:router,192.168.66.1"
"vlan66@${lanDevice},option:dns-server,192.168.66.1"
"vlan67@${lanDevice},option:router,192.168.67.1"
"vlan67@${lanDevice},option:dns-server,192.168.67.1"
];
dhcp-host = [
# Static IPs for things in the IOT range
"98:da:c4:77:7f:4d,192.168.66.102"
"28:87:ba:0e:ca:da,192.168.66.74" # KS200M switch
"8c:49:62:aa:58:60,192.168.66.108" # Roku, HiHandsome
"28:87:ba:0e:c9:fd,192.168.66.75"
"4c:a1:61:05:cd:52,192.168.66.61"
"8c:85:80:1c:f9:d1,192.168.66.104"
"48:d6:d5:5d:81:21,192.168.66.65" # Google Home
"ac:84:c6:5e:4b:28,192.168.66.100"
"d8:0d:17:19:60:62,192.168.66.112"
"0c:80:63:41:6c:5d,192.168.66.98" # HS200 switch
"0c:80:63:41:74:73,192.168.66.106"
"0c:80:63:41:6e:0f,192.168.66.90"
"98:da:c4:20:f3:64,192.168.66.6"
"98:da:c4:21:1b:2e,192.168.66.85"
"98:da:c4:20:ea:db,192.168.66.107" # HS220 switch
"f0:03:8c:b3:b0:f6,192.168.66.55" # Roomba
"98:da:c4:77:80:18,192.168.66.84"
"98:da:c4:77:82:7b,192.168.66.105"
"e4:f0:42:61:fa:b5,192.168.66.149" # Google Home-mini
"b4:b0:24:9a:14:0e,192.168.66.131"
"6c:29:90:3e:e2:02,192.168.66.66" # wiz
"54:af:97:83:ed:33,192.168.66.80"
"54:af:97:c2:0f:a1,192.168.66.76"
"b4:b0:24:9a:12:53,192.168.66.130" # KL125
];
expand-hosts = true;
log-dhcp = true;
log-queries = true;
addn-hosts = "/etc/adblock_hosts";
# Public AdGuard DNS servers
server = [
"94.140.14.14"
"94.140.15.15"
];
};
extraConfig = "${extraConfig}";
};
environment.systemPackages = [ pkgs.curl ];
# Regularly update DNS block list
services.cron = {
enable = true;
systemCronJobs = [
"* * * * * root ( ${pkgs.curl}/bin/curl -s https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | sed '1,33d' > /etc/adblock_hosts && systemctl restart dnsmasq ) 2>&1 > /var/log/adblock.log"
];
};
# Allow traffic through
networking.firewall = {
allowedTCPPorts = [ 53 ];
allowedUDPPorts = [ 53 67 ];
};
# Custom host addition
networking.extraHosts = "${extraHosts}";
}
+45
View File
@@ -0,0 +1,45 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
initrd = {
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
kernelModules = [ ];
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/a509426b-5af7-4d04-ac42-619674d932d9";
fsType = "btrfs";
options = [ "subvol=@" ];
};
fileSystems."/boot/efi" = {
device = "/dev/disk/by-uuid/5AC6-50D7";
fsType = "vfat";
};
swapDevices = [ {
device = "/dev/disk/by-uuid/a57f8b82-dc0c-4906-8a48-56203d07556b";
} ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.eth2.useDHCP = lib.mkDefault true;
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+93
View File
@@ -0,0 +1,93 @@
{ config, pkgs, ... }:
let
service_list = [ "podman-home-assistant.service" ];
in
{
virtualisation.podman.enable = true;
services.home-assistant = {
enable = true;
configDir = "/var/lib/hass";
package = (pkgs.home-assistant.override {
extraComponents = [
"accuweather"
"calendar"
"cast"
"eufy"
"lovelace"
"nextcloud"
"smart_meter_texas"
"solaredge"
"tplink"
"wiz"
"zwave_js"
];
}).overrideAttrs (oldAttrs: {
doInstallCheck = false;
});
config = {
default_config = {};
tts = [ { platform = "google_translate"; } ];
http = {
use_x_forwarded_for = true;
trusted_proxies = [ "127.0.0.1" "::1" ];
server_host = "127.0.0.1";
};
#"automation manual" = *nix config here* and so on
"automation ui" = "";
"script ui" = "";
"scene ui" = "";
};
};
# Although NixOS has a package for Home Assistant, it is not kept as up to date as the container and the upstream
# is very vocal about only supporting their own container or the HAOS deployments. So we deploy the container here
# and avoid any potential messes from that
virtualisation.oci-containers = {
backend = "podman";
# I have ZWave devices. The easiest way to connect to them is the zwavejs2mqtt service running, so we spin up
# its container and map the ZWave device into it
containers.zwave = {
image = "zwavejs/zwavejs2mqtt:latest";
ports = [ "8091:8091" "3000:3000" ];
volumes = [ "/var/lib/zwave:/usr/src/app/store" ];
extraOptions = [
"--device" "/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave"
"--pull=newer"
];
};
};
# Both of the above container need storage for their configuration and devices, but it is not created correctly by
# the container. So we add the creation of /var/lib/{zwave,hass} to the systemd Unit files
systemd.services = {
"podman-zwave".serviceConfig = {
StateDirectory = "zwave";
StateDirectoryMode = pkgs.lib.mkForce "0777";
};
};
greg.proxies = {
"smart.thehellings.lan".target = "http://127.0.0.1:8123";
"genesis.shire-zebra.ts.net" = {
target = "http://127.0.0.1:8123";
path = "/smart/";
};
};
# Ensure that both ports are up and running. We keep 8123 directly open because we are on the LAN and sometimes want to connect
# directly for troubleshooting Nginx configuration
networking.firewall = {
allowedTCPPorts = [ 80 443 8091 8123 ];
};
greg.backup.jobs.zwave = {
src = "/var/lib/zwave";
dest = "zwave";
user = "root";
};
}
+117
View File
@@ -0,0 +1,117 @@
{ pkgs, config, ... }:
let
lan = "enp1s0";
wan = "enp2s0";
iot = "vlan66";
in {
greg.tailscale.enable = true;
# Really, why do I still have to force-disable this crap?
boot.kernel.sysctl = {
"net.ipv6.conf.${lan}.disable_ipv6" = true;
"net.ipv6.conf.${wan}.disable_ipv6" = true;
"net.ipv6.conf.${iot}.disable_ipv6" = true;
"net.ipv6.conf.lo.disable_ipv6" = true;
};
networking = {
enableIPv6 = false;
networkmanager.enable = pkgs.lib.mkForce false;
#defaultGateway = "10.42.1.1";
# 100.100.100.100 is the tailscale DNS
nameservers = [
"1.1.1.1"
#"100.100.100.100"
"127.0.0.1"
];
interfaces = {
# This is our WAN port
"${wan}" = {
useDHCP = true;
};
# This is our LAN port
"${lan}" = {
ipv4.addresses = [ {
address = "10.42.1.1";
prefixLength = 16;
} ];
useDHCP = false;
};
wlan0.useDHCP = false;
"${iot}" = {
useDHCP = false;
ipv4.addresses = [ {
address = "192.168.66.1";
prefixLength = 24;
} ];
};
};
vlans = {
"${iot}" = {
id = 66;
interface = lan;
};
};
firewall.enable = false;
# Router portion here
nftables = let
myvars = {
lanInterfaces = [ lan ];
wanInterface = wan;
limitedLan = [ iot ];
tcpPorts = config.networking.firewall.allowedTCPPorts;
udpPorts = config.networking.firewall.allowedUDPPorts;
};
in {
enable = true;
rulesetFile = pkgs.template "router.nft" myvars ./nftables.nft;
};
};
fileSystems."/media" = {
device = "10.42.1.4:/volume1/video/";
fsType = "nfs";
options = [ "ro" ];
};
services.jellyfin = {
enable = true;
openFirewall = true;
};
greg.proxies = {
"jellyfin.thehellings.lan".target = "http://localhost:8096";
"jellyfin.shire-zebra.ts.net" = {
target = "http://localhost:8096";
genAliases = false;
};
};
#########
# Blind service proxy behind the walls of the VPN
########
services._3proxy = {
enable = true;
services = [ {
type = "socks";
auth = [ "strong" ];
bindPort = 3128;
acl = [ {
rule = "allow";
users = [ "greg" ];
} ];
} ];
#usersFile = "/run/agenix/3proxy";
denyPrivate = false;
};
#age.secrets."3proxy" = {
# file = ../../secrets/3proxy.age;
# mode = "776";
#};
networking.firewall.allowedTCPPorts = [ 3128 ];
}
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env nft -f
table ip filter {
define FRIENDS = { {{ '\"' + ( lanInterfaces | join('\", \"') ) + '\"' }} , "tailscale0" }
define SUS = { {{ limitedLan | join(", ") }} }
define LAN = { $FRIENDS, $SUS }
counter tcp_dns {}
counter udp_dns {}
counter catchall {}
counter sus {}
chain output {
type filter hook output priority 100; policy accept;
}
chain input {
type filter hook input priority 0; policy drop;
iifname lo accept
iifname $SUS counter name sus
# Router needs to yield up DNS and DHCP for itself, in my case
iifname $LAN tcp dport { 53, 67 } counter name tcp_dns accept
iifname $LAN udp dport { 53, 67 } counter name udp_dns accept
# Open the specific ports that we allow
{% for port in tcpPorts %}
iifname $FRIENDS tcp dport {{ port }} accept
{% endfor %}
{% for port in udpPorts %}
iifname $FRIENDS udp dport {{ port }} accept
{% endfor %}
iifname $LAN counter name catchall accept comment "Allows LAN traffic and outgoing"
iifname {{ wanInterface }} ct state { established, related } accept comment "Allows existing connections"
iifname {{ wanInterface }} icmp type { echo-request, destination-unreachable, time-exceeded } accept comment "Allow some ICMP traffic"
iifname {{ wanInterface }} counter drop comment "Drop other incoming traffic, and count how much"
}
chain forward {
type filter hook forward priority 0; policy drop;
iifname $LAN oifname {{ wanInterface }} accept comment "Forward LAN to WAN"
iifname {{ wanInterface }} oifname $LAN ct state established, related accept comment "Allow incoming established traffic"
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority 100; policy accept;
oifname { {{ wanInterface }} } masquerade
}
}
table ip6 filter {
chain input {
type filter hook input priority 0; policy drop;
}
chain forward {
type filter hook forward priority 0; policy drop;
}
}
+10
View File
@@ -0,0 +1,10 @@
# Virtual hosts that don't seem to have any better place to live should go in here.
# There are others that are specific to their own purposese scattered about in the
# configuration in places where they more naturally live. This is more of a catchall
# for ones that do not have a better place to live
{ ... }:
{
# The module doesn't handle this
services.nginx.virtualHosts."dns.thehellings.lan".serverAliases = [ "dns" ];
}
+29 -11
View File
@@ -1,17 +1,35 @@
{ ... }:
{ lib, ... }:
{
# Use the systemd-boot EFI boot loader.
#boot.loader.systemd-boot.enable = true;
boot.loader.grub.device = "/dev/nvme0n1";
boot.loader.grub.useOSProber = false;
boot.loader.grub.extraEntries = ''
menuentry "Windows" --class windows --class os {
insmod nfts
search --no-floppy --set=root --fs-uuid A41B-5963
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}
'';
boot.loader.efi.canTouchEfiVariables = true;
boot = {
supportedFilesystems = [ "ntfs" ];
loader = {
systemd-boot = {
enable = true;
configurationLimit = 10;
extraEntries = {
"Windows.conf" = (lib.strings.concatStringsSep "\n" [
"title Windows"
"efi /EFI/Microsoft/EFI/bootmgfw.efi"
]);
};
};
grub = {
enable = false;
device = "/dev/nvme0n1";
useOSProber = true;
efiSupport = true;
extraEntries = ''
menuentry "Windows" --class windows --class os {
insmod ntfs
chainloader (hd0,0)/EFI/Windows/bootmgfw.efi
}
'';
};
#efi.canTouchEfiVariables = true;
};
};
networking.interfaces.enp4s0.useDHCP = true;
}
+22
View File
@@ -17,6 +17,28 @@
greg.kde.enable = false;
environment.systemPackages = with pkgs; [
# Video/Audio data composition framework tools like "gst-inspect", "gst-launch" ...
gst_all_1.gstreamer
# Common plugins like "filesrc" to combine within e.g. gst-launch
gst_all_1.gst-plugins-base
# Specialized plugins separated by quality
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-ugly
# Plugins to reuse ffmpeg to play almost every video format
gst_all_1.gst-libav
# Support the Video Audio (Hardware) Acceleration API
gst_all_1.gst-vaapi
oathToolkit
];
fileSystems = {
"/boot" = {
device = "/dev/nvme0n1p1";
fsType = "auto";
};
"/windows" = {
device = "/dev/nvme0n1p3";
fsType = "ntfs-3g";
};
};
}
+5 -2
View File
@@ -2,11 +2,14 @@
{
environment.systemPackages = with pkgs; [
dmidecode
guestfs-tools
libguestfs
ovftool
packer
virt-manager
vmware-workstation
vmfs-tools
];
# Give my user access to the libvirtd process
@@ -23,8 +26,8 @@
enableExtensionPack = true;
};
waydroid.enable = true;
lxd.enable = true;
waydroid.enable = false;
lxd.enable = false;
};
users.extraGroups.vboxusers.members = [ "greg" ];
+6
View File
@@ -16,6 +16,12 @@
}
];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
settings = {
auto-optimise-store = true;
experimental-features = "nix-command flakes";
+4
View File
@@ -17,6 +17,10 @@ let
udpPortsString = lib.strings.concatMapStringsSep "\n" (x: "iifname { ${lanList}, \"tailscale0\" } udp dport ${toString x} accept") openUDPPorts;
in lib.strings.concatStringsSep "\n" [
"table ip filter {"
" chain output {"
" type filter hook output priority 100; policy accept;"
" }"
" chain input {"
" type filter hook input priority 0; policy drop;"
+10
View File
@@ -0,0 +1,10 @@
{ pkgs, ... }:
pkgs.writeShellScriptBin "aacs" ''
set -ex
[ ! -d "''${HOME}/.config/aacs" ] && mkdir -p "''${HOME}/.config/aacs"
cd "''${HOME}/.config/aacs"
[ -f KEYDB.cfg.zip ] && rm -f KEYDB.cfg.zip
curl -L -o KEYDB.cfg.zip "http://fvonline-db.bplaced.net/fv_download.php?lang=eng"
${pkgs.unzip}/bin/unzip KEYDB.cfg.zip
mv keydb.cfg KEYDB.cfg''
-57
View File
@@ -1,57 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, pkgs,
colorama,
dunamai,
iteration-utilities,
jinja2,
jinja2-ansible-filters,
packaging,
pathspec,
plumbum,
pydantic,
pygments,
pyyaml,
pyyaml-include,
questionary,
setuptools,
wheel}:
let
pydeps = [
colorama
dunamai
iteration-utilities
jinja2
jinja2-ansible-filters
packaging
pathspec
plumbum
pydantic
pygments
pyyaml
pyyaml-include
questionary
setuptools
wheel
];
in buildPythonPackage rec {
pname = "copier";
version = "6.2.0";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-eSxm7Rpu3dhWkLoSA1/b8IemWxjIsHwlJ+NYEpbilkk=";
};
meta = with lib; {
description = "A library and CLI app for rendering templates";
homepage = "https://github.com/copier-org/copier";
license = licenses.mit;
maintainers = [];
};
doCheck = false;
propagatedBuildInputs = pydeps;
buildInputs = [];
}
+13 -14
View File
@@ -3,7 +3,6 @@ final: prev:
let
myPackages = pypackages: with pypackages; [
black
copier
dateutil
flake8
ipython
@@ -48,27 +47,27 @@ in rec {
jinja2-ansible-filters
pyyaml-include;
};
iteration-utilities = cp ./iteration-utilities.nix {};
jinja2-ansible-filters = cp ./jinja2-ansible-filters.nix {};
pyyaml-include = cp ./pyyaml-include.nix {};
xonsh-vox = cp ./xonsh-vox.nix {};
})
];
aacs = prev.callPackage ./aacs.nix {};
brew = prev.callPackage ./homebrew.nix {};
enwiki-dump = prev.callPackage ./enwiki-dump.nix {};
hms = prev.callPackage ./hms.nix {
pkgs = final.pkgs;
};
inject = prev.callPackage ./inject.nix { inherit (final) pkgs; };
jinja2-cli = prev.python3.pkgs.callPackage ./jinja2-cli.nix {};
libbluray = prev.libbluray.override {
withAACS = true;
withBDplus = true;
};
setup-ssh = prev.callPackage ./setup-ssh.nix {
pkgs = final.pkgs;
};
template = prev.callPackage ./template.nix { };
xonsh = (prev.callPackage ./xonsh.nix {
#inherit (final) lib coreutils python3Packages git;
}).overridePythonAttrs (old: rec{
xonsh = prev.xonsh.overridePythonAttrs (old: rec{
python3 = final.gregpy;
propagatedBuildInputs = with final.gregpy.pkgs; old.propagatedBuildInputs ++ [
xonsh-apipenv
@@ -77,9 +76,9 @@ in rec {
];
});
bitwarden = macOver ./mac/bitwarden.nix "bitwarden";
gnucash = macOver ./mac/gnucash.nix "gnucash";
handbrake = macOver ./mac/handbrake.nix "handbrake";
onlyoffice-bin = macOver ./mac/onlyoffice-bin.nix "onlyoffice-bin";
vlc = macOver ./mac/vlc.nix "vlc";
#bitwarden = macOver ./mac/bitwarden.nix "bitwarden";
#gnucash = macOver ./mac/gnucash.nix "gnucash";
#handbrake = macOver ./mac/handbrake.nix "handbrake";
#onlyoffice-bin = macOver ./mac/onlyoffice-bin.nix "onlyoffice-bin";
#vlc = macOver ./mac/vlc.nix "vlc";
}
-23
View File
@@ -1,23 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, pkgs}:
buildPythonPackage rec {
pname = "iteration-utilities";
version = "0.11.0";
src = fetchPypi {
inherit version;
pname = "iteration_utilities";
sha256 = "sha256-+R9BolSemn5A/1Rg/fkDO27lswXZvneUO2OlVFNMKnc=";
};
meta = with lib; {
description = "Utilities based on Pythons iterators and generators.";
homepage = "https://github.com/MSeifert04/iteration_utilities";
license = licenses.afl20;
maintainers = [];
};
propagatedBuildInputs = [];
doCheck = false;
}
-34
View File
@@ -1,34 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, pkgs}:
let
pydeps = pypkgs: with pypkgs; [
ansible-core
setuptools
wheel
];
in buildPythonPackage rec {
pname = "jinja2-ansible-filters";
version = "1.3.2";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-B8EM9E1wc/TwEQLKEtmi3DG0HUfkxh7ZLvam0mabNWs=";
};
meta = with lib; {
description = "A port of the Jinja2 filters from Ansible";
homepage = "https://gitlab.com/dreamer-labs/libraries/jinja2-ansible-filters";
license = licenses.gpl3;
maintainers = [];
};
doCheck = false;
buildInputs = with pkgs; [
(python3.withPackages pydeps)
];
nativeBuildInputs = with pkgs; [
(python3.withPackages pydeps)
];
}
+39
View File
@@ -0,0 +1,39 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
flake8,
jinja2,
pytestCheckHook,
setuptools,
}:
buildPythonPackage {
pname = "jinja2-cli";
version = "0.8.2";
src = fetchFromGitHub {
owner = "mattrobenolt";
repo = "jinja2-cli";
rev = "0.8.2";
hash = "sha256-67gYt0nZX+VTVaoSxVXGzbRiXD7EMsVBFWC8wHo+Vw0=";
};
propagatedBuildInputs = [
jinja2
setuptools
];
checkInputs = [
flake8
pytestCheckHook
];
meta = with lib; {
description = "A CLI interface for Jinja2 templates";
homepage = "https://github.com/mattrobenolt/jinja2-cli";
license = licenses.bsd2;
maintainers = [ lib.maintainers.greg ];
};
}
-42
View File
@@ -1,42 +0,0 @@
{ lib, buildPythonPackage, fetchPypi, pkgs,
pyyaml,
setuptools,
setuptools-scm,
setuptools-scm-git-archive,
wheel
}:
let
pydeps = [
pyyaml
];
in buildPythonPackage rec {
pname = "pyyaml-include";
version = "1.3";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-9/vrjnG1C+Dm4HRy98edv7GhW63pyToHg2n/SeV+Z3E=";
};
meta = with lib; {
description = "A PyYAML extension to allow includes.";
homepage = "https://github.com/tanbro/pyyaml-include";
license = licenses.gpl3;
maintainers = [];
};
doCheck = false;
propagatedBuildInputs = pydeps;
buildInputs = [
setuptools
setuptools-scm
setuptools-scm-git-archive
wheel
];
nativeBuildInputs = with pkgs; [
];
}
+5 -4
View File
@@ -1,11 +1,12 @@
# vim: set ft=bash:
if [ ! -f "${HOME}/.ssh/id_rsa" ]; then
file="${HOME}/.ssh/id_ed25519"
if [ ! -f "${file}" ]; then
echo "Generating a new key"
ssh-keygen -t rsa -b 8192 -f "${HOME}/.ssh/id_rsa" -N ''
cat "${HOME}/.ssh/id_rsa.pub" >> /etc/nixos/home/ssh/authorized_keys
ssh-keygen -t ed25519 -f "${file}" -N ''
cat "${file}.pub" >> /etc/nixos/home/ssh/authorized_keys
echo "Authing key to GitHub - may fail"
gh auth refresh -h github.com -s admin:public_key
gh ssh-key add -t ${HOSTNAME}-auto ~/.ssh/id_rsa.pub || true
gh ssh-key add -t ${HOSTNAME}-auto "${file}" || true
fi
cp /etc/nixos/home/ssh/authorized_keys "${HOME}/.ssh/authorized_keys"
+15
View File
@@ -0,0 +1,15 @@
{ stdenv, jinja2-cli }:
name: vars: template:
(stdenv.mkDerivation {
inherit name;
passAsFile = [ "varsData" ];
varsData = builtins.toJSON vars;
nativeBuildInputs = [ jinja2-cli ];
phases = [ "buildPhase" "installPhase" ];
buildPhase = ''${jinja2-cli}/bin/jinja2 --format=json ${template} $varsDataPath > result'';
installPhase = "cp result $out";
})
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+189 -37
View File
@@ -1,40 +1,192 @@
age-encryption.org/v1
-> ssh-rsa KsR+0w
VMaTGFrR/XXf3I5UpvEE0w0Om0TlRl7TsqCQjQXKbk13R35Y7C0Lz9fm7XPIhZje
9Uh52TZMuh5prWP5f5NBLhp0n22ASAY2zdyv/eR5QU9kV0ai8opsT/Bx79Ocuk6N
bAhlyAOfrT/o1wJuTxTXCU+6a2XmJnbrYwYQVsERiGT08RV7xL6awAT3Dk4b9ucF
2kYGdx9egq0dIp2qE5Ws8bo9LBuE8NjncK4H3vbne1g37gEBFpa4oicuK4PvVsWk
TsdfizPDA7NI4avaMNL7izCxYWIdSb25dTu9NUtQXfVQxvgAC71pVDcOXUO4iau8
jS4Nh4/PB/2UNLhxBZ/a2Xc1HfHBxlENHDRy4VyhjhwDvzy6EFj85KEQdfC5BKiF
yo2BTHlRJJVLGkdF6oeG/rCMtRqjr6QPYPBRis/Lziz4DhGvBb0rpaG47CZfGyCo
Ev5yZGJssiNIfm38zfNmpN/xsd9K/kQjZMMpjd121CMDs0XV/sifANmPcvL0l9Sy
kzbbJjN+Tu7sN1PU01J/DpntEX8na4B/xJktP/LMwIkhyPWEz9L8qwKlZMzKQ3is
8n34BcHnmJHyVSTVrYgKUned+Wnhan4luWZD0S8RdCmnCRoR2U7ikuSTRRadatgl
8AxZCqNd+OnjNj5nsm4wBdbIixiMiAynHymyUx/hx0w
uEe6nhDJEfOSY/zDBYqjdSpx075qbgQSTWYNv+3t6/Nw8Ia/0LK/ZZEfO7TUFZO+
EpckZuNUMiEyrxwlOFZGvvxZbu0lDZPRRgd1knl8mIGwyRUf5Q/BR3pOfNw/NuxL
pQErJLAezFoZtk8XW7wVXY/raZhlwMkVcjsUYWk3IgY3QdZjsrXqyMHsqv5Qifhx
l9lo7lB8KLWVwnsOthqWjelIJ4CMYpGZuixQBYTptMuEb/Lf8PMIGqpO71F0DxXh
4lXFC/d3PD1O6frRIt2OHNFk8R8F0awpMO+rJe9teUNNBcG4QZ5WLI+keFVzDyy9
AAma8rY5OH1eP/KXuGKV9t8Ddbp/ekPErudNvIvm7gjtae4j8uLnm5iy3e/mkhFN
qktlm/IIZAhHTHqkaF+zxT5sqyqlqO0CKrDvXOGLdEeAoteQxlqT7rD/6eAl/nm4
Uw0Vtei4uPGSo7lTyCPl8/52IZEdB5dF2K4LWtha58CMc2VVHe/yQ/jOlmqrCamj
e0MXjBIfpxsQs8xdBeA4ud7gD1vNAgt12GwwT98RRKz4nSvX6OIchvnoRCB1+oqf
OaqHddHAMX1S913LnUgfxg7adCLT4mcNvVIuIQKRC/trkirS5hvPyZvYzWmLAQn1
LEFRXv0zg4fN+Auk6nYxN6Ofr4q/SOays0jklRLfeYo
-> ssh-rsa kEvMzA
M0KEYcUKnV12kLX1PSy+eSWHt1aWE9B0P0FGFsKguqgNvtVcbNQJ2mVKDBgDDBQJ
TFU4HgK7MeAv3wm7kPFzFm4330wYjQQi+9kofA/Da9BdhGsnhcYdQ1uFPW5ahIgm
xbw5Dmx82Ja/04zZgLAxJ6FNwP+z6n0OXqZ78hAQeGa34HQ3urNc50UxTtGFpPDp
w11jSGtoeS0MGxYursGkmcyotcZL8mrnppYqUYJEoRsjeg269mF5wpQYyfPlufxH
9bGdI0AisRpZ7bQNQJdQeK3obp3rpjEHOubJ5XrK3xFgUULqtcQOm516UnGUb4G1
+t+zk3gTDkYUm5C0tFyhAeVQajtr/3PL3dQlRza7aNz7bgSmxAkqWHc5SiW9bOw1
sqghGCd0loZmzCvNUxZ5dB62/vvXW99EG8uFQjC7p3LHKb/XArYDH9Qip8FqQHiC
s9yBgxl9rmyKRba/9iilNwBtwDYxUF+tzILebw3eSXuEwJVl95793Mw3Ccz4CUE9
FdpIJoXls5lAUGyoQuPQnzP/x5iKFW06yb2ibpE+wF6lVWKW/aA5mw9jO3juRllI
3rihlWKSf43egZGN/EGscDPBDIqCeVPbyiHb8p9WgtKyCUdbYpavp/GANP6f4rb+
9uOge0tLuaMArg2WAwE4lfnUNlQHY/CSZ18NbCIaXj8
-> ssh-rsa hjSvjw
EVfVhO2sgOqRtoLuJZKAzLpHzw3iqNBqrklOuXtev6no1uvK91eaNWarry6M21BA
ukGeN089MdvWZ+ZuooQT1iOd1uNmuauwKtERR1306rRFBRnrhIIsEPYMxqPif2r9
qX6+XjoEUTXO/nKjQExmipknORiXMQTpU0/PPmy2syRu0f1hizEpc8/aMTkve0f4
2hoC5sieprQPOojmwyxGfAp9dT5ierKs7/PRH2ln2rOFg5569kOIheEDrfMblbVi
CrhbqcJ9ewqfjEC7pZiPtRUUarwlUnVZ3pLul99QKALDIFYwcprz4l9VFr6lqUwn
3qtWKmjKEzN2jw2mB2RvymKRl50auOreH8GMOk7pvL8T6bAhvU9ApYZsHPN9Z/1B
AHzgCmyM4p3l5w3o0N14jkDbUB5ev9T7QiCcvrUCRvjLc8ZSX3V61mElAzNQcTP/
3wWHOL8Wq8l8L73kRmn/My/lgn/s4cL09g2TElmcJ2RWfeFs+gmPF0wH7HZJpBqp
BoHQ5YUi1ixQXilYr+Ix8swhFL9PnrVoJ3Ln/gkG2fqG+bjknGzOlTsyl4u1xjua
X18XsYkJ9cl4K9R+ArL3fWxXg5SRJNhpJUYenedySvngnBjVkF0NgbkzZMIR9y89
mh0hVmSxidbUUKZZ2v3x8Oez/OIz67Qn9oEFEgr0XwKPD9uK1nnRlDOEs+NTiN2R
G4laxV7VjCCVOEJrQMNQp9TivhHLFO5VFq9JCJkdA15iGwRR304QHv2RvBAxJ0Fl
NHOqSX0zw07BTjKaaDng8phlC/2Eou3hxOz9i2lrxKAFtoq3wuo4Uz743Yp3QkcU
DTNAp+XNFcqWvfgDa1s8pMWD0ayyWFhu9E3LyGYswWtB1eeow1oBGY3i3vn3ddjr
3StEhwoH9wFo+luYYYha7lZexbwEkwTs3ZFiGA8d0vU7NsLdwtd7YlFueVmqCLc6
rjQMuhcSMedLq0ACNP0X+PCLfGiHRXPrfx0UQRZFMhaF7Wb4B5gsQkssco02BY5H
4AJyAxArafltEmtCPW6lPU0lQKKm/u6NrdwuwMln9KJfMZwRXiVdeyVxiLxznpls
0LU7rMhjMVVodZyHRRur3oIGb96X1w5uzY64BPLOZx94vXKFCVCKFC7BfKb563tb
99VzH5t0jsD1z51HcN8QtAUhvaPTtZP4w82xgy3nuefx3R3D0ns1ylI7logU1VzG
el/j5TYbQiDN7fGvBK7/YlLV02XDSI6wI/AmzerosDKLxe7/lvJJk/87pzFx5X/2
mRDHHHaPT3j49K9PIqzYhjmXMkfNDF1F8wzBZ8uuB+cu2JQ4USbI8UiZCF1kh1mI
hZMXOKtC/tkEQMBHIFjepQ
-> QD-grease
IGsXeglI2u+sj7bs5NoSeG+LplglQrYvp2skjHaNOIgXGA9bi00
--- LTL5VCdJPqJku3MXXoRRIXVDuog2iimLW6CbFeL/Hz0
q60餱*f罓洏"&藦橳!@徙裊%脠賜X寀"$m敄1
IR4b7UJ4OqdagwLN5lReaUj4Z8+iRNGc4Amwj00SBedn06st0K8EOfwbFG4OeNgZ
PfvpDUy4vnpzUkhmCHnqdUqg+gD7h+8Flv41rHQN+LoBEcaHO86eFK92oVzmcYuF
sQi3Q85rHydXjhebJ+1oVwc/LPIo9EM1k2+Jv5EJ6uuZmL7iNKDYc1H7ECX+cwxp
TlcZBcoeQYf+dmWKfxOocKjviOA0036NUJUBAOLCIjYA5ZueCjiR2f2WUe1IC4fe
rSazUqKshR/ZVtrG/AabkL/kN96KxIEMe0sdX/NXjNpY+noS0/CLCR7NPklUpC5B
LjbeSiBmcmygNvDx8HWjROSmmLyiHiI52QziyqFyLo6wW9bOMXRFv5L4foPuQ/3G
GQb9xDhkAQu21ukRD2eVOfaBmxYHIUyz1pIXFqQsEyrFheBYJdsoP6emtiOYXlmF
ToJ0Ie7ChPJoBHUJSxBLeHSQ4/KSNR1Mkk7KBrzn5bD/v6ALvTsSrxbejX6f1tWR
p4teVvgLCLev/I0INZLc0hR35g/Jdz6Qg4hcEBqINFbDQR7NggOfdSRRloyYmbZi
kvMfnGcxzOciCh42m68yo8nm+yOkOvb1OxKM/fVXzpXZCknir0tTMZd0lIonAvMg
yd4Y6QsqpAb7yy51abXQe7grOEH2F8kMdDH5bFKLASrcX3kKyblscwkftaza4H/f
yFRCimnHjvVoQZPG9w6heOkgDJCGIH3Ai2NnRnAMV+jOt2CGG6MWO3kwqmP+vpOj
WrYUhgN1HhQkCAq59VdJkEXa95sfRHwpa/7ES4YwYmk8YZE2SvwKA22eLJB4XQ9f
3LcO13O0BNuIpMJq+JOrmabCp3qEeY48ZsCZdJTvHUvV9RvR4GafXIN1KNeGDbiV
knNILYzRxfWA71nNHtAXv2KjOZsEqtxuTl8aQjnxVztTLe6g6woNtHy5fgJLVoAH
5rr3Z6XjcWe/4WJmQf2kjpfrbqu4ex4b/+W/zg+GKmKNhLmyGEeUgGPwF7TeyfzK
Dx6zzx8ijnVBFRlq2fvFqWYlspmOagKvN7WvPK0h3LESVw+mOVLqypaZ5NQI5A0X
vAnmJq/2wXrabETLHYPDAJE6Zr+PWaJr3fVoW6tr74/kxMXtuV+EsHmTDrqmZUQp
Yj/pQLeaT9VtSk5MqwBq709cBtNipsXFE5DJFUuB1H2OHKzVP8TkgiqKWkEuX1V+
llUi6vq2ZHl4VXImx9/bi6GZ3aKkBvz/Kei6aFCflujrh4xs5TJdmbMnw735fQgC
Emo8wwMCr4DQab/6C3pAgRKMQ33x01jXIwpnQ9Ni9ECVnpWgUQl/Ipm5vc/QdW9d
nbQNg9BQwBX5JSPKIw82Jw
-> ssh-rsa mMfKqA
eNHzuaUhRLdB654cTcLuFvWH2wFrihTASYUJbIEBfi/VpqGeozYBbg7eG2FBjKgI
WGWodtYdK9kakyX28QAvil6XAj1FM63yJVXApfaljKPc58yfaA1QLx1U1D5PmoWk
08H2Q5OmwFIfHweLbrRn5mWVNYvpD+dblS/dvsPSi3MIVfa8rRS1Ex5wVmUENsAW
v0GQkRXheRP4OTF7brC7W629eGpfkVxR2Pepv94zzBQgt7ODb7oCOtgesEyDElCH
64XXCnZrLc83IeCTqUig+JU3uHOkNYmKhBCd/Qd7ODILEVD9WKBZbi7vDyqsv6uc
/USCBU8T01rT4hYcgQbz6olVA1Vf41edinnzD3f3nVZafo08LEBQDmlToEjdJAIW
+lcnXIDMZg0t6NUr+ePQ3so9wom8Se8azITnkv/df213KzX3T3ujEv+oE882PmL/
bapT+TleeIj7e1YAsWNGzbG2VPpWHGfwra97LpGplcsusEtj2URxuMiiP3X8tAxv
PC4JXfxuK+icDf1pdtHTb1TUxbgy/cuASGJzjgjmPsv00RPGWt6y2zMuLCGKa4va
0UN5UXwXNtl6IzK3TnPkvWbwydon8cUxoi9OBHOljt4pvZuwl3fCAQkTxSlHlVS/
6GZSmb/J2HMFh7iELJK0jmulRWwAlS72xc+BuRSv2Z2I1vLSxBWoZL3Znw4Wxy8c
+zJkTKN5VjfJ4fhmDUjRZlFgvyu3YIFV1oD0DYZWSM7QKxQWDJMSBzP3zodalBp/
CI2b/yjDpEhmXvo/wWRazz8u5eBBGAi3H43H7wUXU2f7WST50S76AA9c09jg3XK3
iG57BvlMnJGVceCQQIpdOGxZ0bNlGLJW9uBisMTmhQ2K4BiTU5bmoTe9jeKwtUv2
QcGJCuTFjM6sxQSaIWTBjkXUmNBUlMQNmpTB+t68lNBGAhmMHMpzoz/NDF50NqIH
fTHMAU8eC/8euMRGR8dums4FSq97AFMlrybcnnPLPktM/tDEIsfvSkix/wtpDfUw
Tnpsj14j0tUl0yq557dmC87NZNR9q4iH4NhtUdMKUBV5LpeW7zZxuGQd70p3XTOx
6Z11+Sz2Jp/xsALytPds0SAWEss2c5vTX4sp79qk0ACbBOiGG0r3YN0BqNE/ajPj
W+nKdTc+3ncZhOt+tcipGRtIaM3+5GHs5tE7BN75NwKygYXywvQZgXhN29Lhtr4T
OUDaakNt4uSiCuA7rAwVt9Z+RppBRalU03YoAJgAbvThVI4kveJURDLEOLneivOv
gVaIpQphCmHZgYauo3hgTTxYohqvqafP3FWfHWk/z369e3WySvtNC+KCue5qMFOF
Egmx2Mu5c2Heui/55KqSHQ
-> ssh-rsa hjSvjw
R1dwwXod6s4y+gIe0pmHb7d+f4zTRZVUyvZZqiMp6f7udSWwwpTACW0+ygt8CAHh
9F7Xmlz6o1eXVvpgbFZI1s85aK9lgeljOk+tqKHk6D/0l4u0r3rex3cTTXgkslL9
57AvNoXOSUdLgka7k3AlaNiPW9sppyeTydRd9ROQAcOdd4o9rc/q8XlrK2FdyJnX
rxhBEmdMXkkDrlA7gKHHBC2JK4vq+zSYPFnqJgqYmKm5m7VaxJSE18GoWEBVv/jr
s2xY0RPr/y8QTUo66vFVZLJ8dcMG3nv4wj7cbM1wBV3gepdo6ZXN1RwFyXxB2piG
0S8PubnoeVUr7PRMtUraEsv6yEyxcsX0QnFPUiHsWNVBbr5Cj1lGCQTVseecORrO
tAikxVPMrmTWWBWp2ddSjgLicz32ry7bQcshFrNU+GoGXofr6eVGu7OnMj6aKmRe
ie8pfLodJBLPtCB8g+WXhSQrOsKf9ACro6cMcfo4dFhi07V/zbOhlvwUk+K/cOI7
DqFtYwvItsKK/uahJd+gjBEORGjS3jri7PG9LabVVBWeg/w64ZTq781jcnJY/9rP
zOZpGu9w2BYnH5x1SCqbUaC4yLS5RIkW3C3Vj4+ZmyQTxCcErkwJiTlDQfoDZb2L
Vv7wQx+fn/EQzeTnhWhhDCHMiTjjzYEr1mg9Wub+SMvyX8bDemgTP+OJxhxAjXcV
HsO/AI+Fm7nVF6zDf0WvqKv1wDOEmpg2EYeirEE2q/xDAUo0+K4AXtbS5YEUsUFs
p4HvmoCCpriuEZY7q9a7i91IgSVeCrfKrH7slC15eXw0IjqqRY63zceGVS+FtDHV
gTduM6CpDx/f4OLKY0YXgeDgSKZsG4Qkeb1++db7tv/q/SeIS62LgTpaUUSxVnHZ
WaBASxJO8iutgSg6OichMNFiIwfIuioCQNW/P2PYXB8Y0uD00zTJp0/gOPwxNzIp
wJKy6DFMIKBh3yQx7wSy50Mcl3Lp0oiIFc6lt5v0PJPLOGWf6/ebsjglfgtCWc79
HKeGIUPiILEs3y4NIS7k3JVSlfm17WSSRH4ogq6nDiKUOzIl/2P9tI6KHQ7Hm5lI
gmH6yGoarBodxf1vbbeVMTNjvTxTC5rbfDAeXubTJ8gAOrPVgCGi9el4BWu9yw1+
PekATy/O9BPDp/LN9GUi6cJgz2NDAH5Q1j1pl+lhBd5TmJASx/809K8dvpoTWP0h
njLKgufW+8wVcpBitDvCaJLulkgerzZP9uUvGCT3rMjMj4ac3S//fVaYWAwc7Cxs
qyaBz2x6Kz06AF3LpZV2d2k56YmdaIKAdd+2cnU/2eD2GBcFIKBjP9nFE+KIJVZf
4xYWuJQovYbejkBfqWHiIA
-> ssh-rsa FS7DnA
kGER2nVJY1PFXepVRgmrFtfq6xRCIFHtPgFqz+VPudvDiQaW6eIflQSDFKpwr1rQ
wf6I1yXJY1Mm4+rlYWuWze3qslONFSes5FoFHNjD9pmZ6IBiGV3HYPmeCPIO+PMR
CXHnLMDl4dKBnl7QtEZwX9E7ez2cBGq7IRs79pCpRRpARYjjbQRQVcnmmBk0Ze5l
WgqYJeTWnBo/4OywKtVtYhY5/LqfkjLcdPrslMdGriraDK8YiDpv2YbNgxY7DrZE
VXq5qTjabYQ0oU93QbIc9XTtn1UGvoaAKb7VV6o+kPNU8MwXfEzdCbyd73ZwlPOp
wdVOuiQRnL3I2M2Yy0dezlof2GIgQ7BHJpxgbKLSH835NlFky67Ooz5GDg0C1eqI
dpbIeDCHG5b/TZGeGlkPsLccblLAvekZ98CRTsBN3h/LMzSgD5Ysgi+M39W4kE+4
7Y1OwO8TQ9KU0CBe7njtiGhtcMaT2+QpCocXeNGKJOXDjneYX9yPWx6N1jL/U3rf
yM/9COD/09bDNDkn+aWqWR1M0GS0+z4WUjxqjjDuQcwu2LI1rYBcPs6Ys8/iWIY9
vQ4qf0kBkoDrS2gPnSSxfu1/HEE1Y3i6YGmOAZvrdtK1/OVJl16WposmVlPpYlp4
dIG3zuQeQSYSyGvGsXPmv+WKYIz92NyFTn8tiV1jE92rnZzsCux0VP09N0hOSlmv
B+QLHh9LsnJwhTYZElZfgeXB/C+5RwLWgL1jnql7/eJhjp342zlVE8CLcUOfe902
A89ECYN+mg4Mhp9WFRG29LkTsy7HYyl1PkP4TZOMiRIQaqndTbm1Ld+3OQ6Pfgz7
ksOLdfJSeoX09WBP/k3cevbm908hnU7KUC1WpDN9MsSf1lE1kYMWM9IR6OrfRDlW
NmyWHpU8824iX1clFNTZMLCIDiJmkbALeezuQqO0EXCrgNyCP2r3tJsv/BD6aXzu
h+wTiGv0maHZXlYeU5BtdMRcKZ6I4dNHgo2Mf8h+xxv0XuJHPHQfQSpbVxkNK26A
oEt4onSPvM4LXdyEQJ7iHWSuebN1vY/r+0f5GxC9qavL4DDiPR8S2WXEXoHnKgnp
b/SmPluBITVGSYEB9k7Z72r1MNpOcDN+nAD7Jn5CBsWVEtKoCGy7qpdlYHwdoSDb
6sdqk372RAOyiH6o1WtN2xmM4OccUJYdh18N2tXmjtXfxm2QOLCNZmw5iz56figG
VOrkybTDXUm3dBvCvefhgR8nhcTsI/XrDo1BK9jAIax+SnnYvEwOsmzZsmvY9reX
7EtWVU45O7yHLvZyuSZFXS8XpW41yTSXMlXGLS/CwTnCZdTFGFNaHfbH3gryyw8W
wm2iPDhrbSLjpmWywyvkGQ
-> ssh-rsa mMfKqA
o6dPmyM7WB12mXdpK5MPXjsuzCevVhlo7Ud2vIAsAWf8SErATIF4/59rVZGIusu0
RM1+P/ZagI13L4VdC4OOfdEU6cOw5zpYzRRacI/uaG9By2i9ohqSvqAzyg7Rf3/z
DKQjiVwDDv/kyTzzAGRhAIuw7ZfuXgkYkeM11H3wpNUuFjPg4P5Inef5g/MEYijQ
sckJDxZ1xFuX0SfkOOR9XUQcUkVMHT3V6/tEYfNPbSoaN1txH7NA0aLTI12yGFgr
6OnlVV30Accdn/zmj0sP893ockGoAs7PgE281vRpljlHyzcygEU+luRjR0vY8Hy2
J1q3TDXBAG4Is9aVUFBc3nwWFpB839qQTu8HNGfg14oYcm1ctB8aMEMMPMCbtrCm
ToiF2LSsSMQ7V5wqyKPra5jHc1KurjQ/vNvWZW2vvZHrh0indOyI291/H8xT8YlT
RUPZUBKuZZH/xbuzSpbEJvaO8ui2TZIQvYc+2JOGHjzIkoO8CaC/WY9yGKBOdjx+
RD1MYKR6CPEoFxGGiYz9kIkJYVUfcySxCcMgs/L0YhnEbNMjS7h4YWIfRJjoTFCz
fm4mfvFqzAqdrn2acUrYgd6G2ZuKNIuey0Bgs9IGwL3S9o1VXSDenP7ON7iF7y4q
jiXw84u5hG6F1kEJkI9oqbxDtzBt2r5nemiGxWBFVnpKKv/R6i4eP5Y3zyTyDhN8
IKgjVSU35q7ZwpbN6w+IivQIrEEMGMhU0Xz5UJkAQRzTG8+t2vvod70EgOIkuV2J
KSbwOlAlLuMt2g+IbVwHGYefEYWe3qU5irrcELwzgV93VFJIwf9sy8h42RbsnI4C
9nKGRmfNn/aYv0CI87NlpxsUgN8swzLq6jU6JKT9xPjw3LojON0kk4Dp5TsRVHoH
yH5sugIzLpfjJ7ERR+j1S25l6GXR0Tpz1VGZ85vy0sMIU22lvSe/TPTjvHkbK/E5
wOAahiGXN1z2f/P2jHxhxb6CaCJRWEEW1W9fnUbo6fgLAlWyRPVkm8sSOrssxgea
Q5ZivuosfkTMtr0AXpJdXK5Lzy9TCyK5H+fpc0TYlnvWkZgpX6X4meIJqAGkf+rf
Q5TOrK9o0pROm2i9WTXoHyBSe7IuvcFSgaZSAl688tnS2aQTICrRqBIC1m//EYDS
M8AA1lo6d/Ub6lUFcSxif1qwiMreOGGtEJldTJ3kxSS6+uGQMMvzbBRjezXTTMAR
59FU1zUPZL4R4RAxv86wY4qjEOMnWHQf7+OZKd5scwxSLIIyZPVf+SSGY3B9nj7V
/HQoi8wAaBuJzTHEIFay1eDR/137yea+6/z2e71HfPLCoLwlMNyCkangnp+ycQ8w
QHHpovjPt0f3L8Ue1yX83Q
-> ssh-rsa PYwg6A
PhfZacWUEX4MoBjBMeBJF/78ayDslWIC1cV9XY0fvrr5h+Hof2rkitZHBDr45Mb1
tpoLMGrMtAYKS7Ea1qz64SPJAjQLYmXJzWoGxy1p++ym/kPr3QyalO1OLK3vuaon
oCgguT0vs0dZ4hurDa4n3BWYy5lhmVo7x2jkJp3+LRxMA7JJZhY9oVbyp0sw0xWz
jRn4QRfdZyt3XDN/bHvNViplYslzSLlEILaZtn24eojIAvFc7RoyxV1oAwIRpvSi
kMgWTRTglNG9pKB5XtJ3hxFCQilIIRLrio46Aj6BCj6xkkT7wwGqZ6gWXqJYqu74
e8nkGm2/+A0NtDQr1ocpWq6x51pL4rBj2ZBE4PphAs431yxPkqKnPiS5/cR84ldo
7opm3Zd4PvP/nM+sed/VUblatlgS6MN8QwxxEMdKr9giMZJvhkcBf6f+EAS06Hs3
bITY9k0rVL+DwNvk7aVjxWyp3vpJcd0CQigJhjVNtgveKMit4alEY13SkVA0sHdH
iBOx9o4dxP/QziBL/M6sRpXQ0edxriUU0ehoIkWg2Jwzxii1hAlCYjGpyhr5ksOn
QWRYhYfTc+JXaXASHoTO8IlsSIHUh5ydrcn/5pJhpENQY4nqtrc+7+gfSBPOUWfH
wD0l7WdCaRbVNSEaFV5JUGtFiNwVg21rqBiFeCqlNiMADEyOAc0scLmroeqk0Unx
vXykd6GtBu0ep9WzZwOYXmjXPe0nNMl8wtazNJC5MfXPv5lh2eF9fqST1BjxHQyz
8R+20ZC73qilLvr2BqWbPV6mcKXPyTrweV66anUhmXkayWUOv/UbtvMhiLgcoZjN
q0MSrmVy1cOC1gx3CpDkGroExq8LntMlJVbHvlrnb3dt5wpNuoWd+CfNS68nz2s2
FxESRM62huXR/GeSG4isOKWCSTer0kYL1GtIUaYTTjhXYiT1YBaJUtJol6q1UBje
blWJ+kwnCdzVCOzFrKlsnFO2JVwrLNfSm0tagXephy05+hrHMx5e1x8RA97z8kYV
dG+cu5n1t9FmyCoZzj5OC4xHqF2jdp66trRdvhps8nBCzsCWEl+s4mcG2VOePbrd
L1lV9aIys7UrOkzUDvl+DhT6ykyl6oV4tYiuumcmFwE8Q+uj1RDXlNsNOq1Y40S6
oX1kyuiq4D2IxuIfG99DLSvjKbn95NX1UMwOJeKpghihdH4MfEyTtqGs/2AJka00
SQme2RkTNi+ze9Aif4MbZPHKbQ1pR4FgwZZWOryXfo7mxJUizF0CTlWGuC1EN+VX
m0xrS7cFlH3eRoNgWBUI6m4WqbhFzUFeIErnk7FOGq1/uBvi8pGFt+CV6wu/AykA
b3HINkLMTvhgEHn/XnzkDA
-> ssh-rsa 5JwzEA
BCKJDtQfy2AME+ll1rpcnxxJK7yM6lQxBM8TyruNBNxyk6bK3OPRUoUE1otOt7O5
IB9HexflFpMlEH+uTy9Z/k9wQBbPWNKtDlEGl73jWpC7gp9rjGtwNbeVvckSSt0D
ia/T2ctUmLVozZMskYgWPkra7M+anGVp5FCTg/kNg71AIc7umLrbBj8aKiQKzXEF
GgMD+fdLgXsJeNC3kYRpBgG3PE/PGirfja2rEs5XXjo8RkXpXyVoQ/MYqAxY+daR
OgCW2GHMT8F5lwCFlFLGsEKCaHrNgFCnrp3nTc0Yz+qjoekCi35OCGVxC1+jVew2
vCHNhsOitFveBfjLgkblVl9EK4uGOaSRdPlgIZbWOO4WgrQGHGo7nlTr45khUOq1
P5VxMdqovseIlCeFIYBKmCDaS+cCvMejKsREOgR4+QFGp7U72fDwg1uY3yxubBvg
FIm45kS9vsR/ae6pWi2OKzqAkCWuI/mLy1Wv2UhHrVpbElaZ98L7o/2/+vu2hZtG
uLS2mZNrkiz1Cy/JVRn8eW/7yO28M+e+mOzNiLa3eZoRdI7ClER53L+H8QQ/X+GT
XIHGaRntGnOiHmROgGkfn6smaaF+ZoT7kC6Y1G9X1tUqIvRVKT57JyRagYICGHyj
QCv/S+9VGiFMagnsOviO1EjvcimKk4XI1rgNWIfpVsXHQlWcO9VaXHl/iN24If0S
sU72NFbAMPiuNCnt0I1wsgz+DSbA+pvZmGPrO96PAPgOej15w8gxp8OYUKirUGu0
FACXZeLWiInIr7yJ+ahtaKuwVqgN7WtYnxndXL+/AGq0qajo90+0X/by9Es8dQfW
M1IMQC3hIuGckq5dwZ+sVbn5kyrw8FweAM5pp9WOZg1S+0kVUm6EC3RMUZrva+rg
NPdYCsb/ng57I0dq6C0PJ5317mNhfS9IPE8H3Ul8lLjHSlLLT3v7gMATHof8wxuz
y7HFH7RKkvxOsXkCqizMuEYiDOUVVywR6ezojpxhrhovZIRh3BBFBlkKrbRcus7w
l+iaJJeWsB2b0H+L4kj1IaeeJoKBMaio6OFIPcatJorv2GVGm0wkSxuHLet/1svu
IYb3Nfz4iqLhvjeh46vO983K+x54MX8fsvRWFhTZ4WT2Hrr/+mqldgDBvh1Dg/uJ
Uy+LN6o4Gbu+EsNCm/biM3EvXVSmpKeLhSzSswx3itdOD3caODvNJKRxKGJ6E2Wt
FQiSFGywF3DJSgjs5+psZj9spFlt2jzoZnLSLkLNj3zbYBTc2DkijJ66juPLkXHx
NEym3rdK5XZS28LlivJ5gzfrQN+J2YaL0U/oV5yau3p7m+GyJNVr+ruVeK76tPCD
GhpPN+LjVbVItTBme+x/tQ
-> Wh4shPrk-grease 3Z?p
vDyeBSBkunx5fJuQUvG8rXbnafBfDg3vZofg1EZir+HBwSQhhUCTiCNAZJwqv6f6
x12Lk29wt/Q+h+ru
--- D/xNQTu3lbJG4bmFx3SCwjSyWexKLAarsbuOa0fqAzk
í ¾Ž¡ñ46
3ÑPKvoõ®*v'Æ)dˆd­+ÚÎ-=¿ëÏ
+18 -3
View File
@@ -4,8 +4,25 @@ let
systems = [ linode macca2 ];
user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102";
genesis_user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCXP9nxL5Hg1R1AtT78zJl+ObCDZsnWWAqAYhTVjpRvYpiTbODvCf2IImvUsLGMdgo/xdSSzNqQcK6+KZVeNbvRSsw0ssWw7ggYnhw/yyv/KDZwnqXsppeucicnwpQNvts154yOqAvuuMaOYCTTQoOVvecDdgtA3svIpfxL3vVB/Mq/Ns/NwoE9XKz3NBYlWytqDcvSwR6Les7RzbMIs6axSfMVNwm9w41dG1NqDMteLjKlQ8bFfrtWXZ4QHKlnEWatOgJIzbP1hU91JvvzfypjleGuE9EBCSayqhu9PuxJ1/yxMJKSMaXUl8SoPMLsPNr1ZS5ZNjkNCvZK4fI+CqyAXtbgeSGKIKqZhg9z6/fR9SG0l3Gh3Prtw+AEuE+Xzb99Bi4IAe8lTaL+lw+z+CmsXR+kcJ4nnNrmf1fnDsI4l1EctVGb3Yt3tutV6GjB4mDjIYKwNBxuIx8hlugmZIy3oEUGrh85o5wnXlJQzmhszS4eas99dj1L5tj5dF4O/ED7SyQI5e7V9Pb5AgolcvLLXcFzDuy43oU8kWvQJMMvbEIFr6qPXWmp8MvrSTucRQCCzWJVudhrYhodXA56tRoJvFIRs0s12p/YXzsmJbKxPiVwLGOlCd2CqbdM2rCqN2LkUeOAQitb/8wv4njRKZ4lgqhjyXnBtoD2Nm/NmuIERoUY9J21dOhc2tg0zLvH120xVKa+WN5HVOOG9LyKl7koyc8nqdSDKFhcN4joYmnZKfyJUJzQIhiQayEfvWfTNJiNVkMIE2OqQ4O64s/7QzOHeHSMzY4TCO7+5bK9ecOqPxCDHLHhO0xVA3/w4FscRkObjkQ6zv3UCFJTSbr4YkdUIk8OtRR2KN9y9txrt/OS1l1DigVyuYUdz/L83+Y8E8d3l0hq/S1YLMwlkCbHE8hm0HxlLuyTA3OqXizRxNk7w4ku9OC4+nHrj03i2apNG0Z/ojcGsJxSBLhPGlPWbDJ2h7YL+lkDZFitdhBZHjIQKC2dNoretA8zEzNk48Pi829NFRuXqjSsq3iOJ1sXP/lMAZvdzbZOQ8CrH5SWb9GDeWR0uh76RXzKXvv5UTtu1PpYj/BHToApc8kUAxpUh3ypjt6bS7XLYtk74PEZHD3HXbpBYBnMNPUp2ecDw6rxpLxq3rnzROriX4Uvy0sOx8Q13ZgrZwxLeEWImlK9qQT4SYytGGxt4vwG0R2B8zS1xNiNC/B8jnBrK4GwnYSuJwNMrJ8vk1u9gn1pCj51RslBsldVzVB30jxNU74iD/WQGJudJrUAYkQ5EpArKZK0GQfaRXM6VzsvyLBA02CZJkeIU0jUc6Q1Nms+C8teKrP8+EKXONT/igsLXwfLMiR2CqVP greg@genesis";
linode_user = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode";
users = [ user linode_user ];
user1 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDLQRq55JKqLifX+31kEXyuoB8gfM+5thAlgR7XLPvvdu6g2a5cCWyozQ1I2oGbPRfJtzcJ5ifM7Ii2PuqAj3MdYFLHBEDOhIpBBWme9Ts2YB9HJ4NorBvB4zEfJd0Q7k2MmylyeBOwdwGz3bVqPRDcJbxWFMDHqr33FEs6SXdfyAQ5SvhWGARI84qz8zUUdOp6M4e3aIGO3cx1gA+YzYQ4FbUtL8+m1NFO8VoNFMZBMf5q0iF/SgEu5bmGWUCePia6DvfeBFQ2/y4Y7WmOj980WE+JmFTkIvmGruMYeGI8FuDQ2JIIIcehddy9bQbPF4VlGnTFsHqJYVRUUWc+vH1cPNMn01oB8s27ogf9e1lyhIN+cZOgp/jDt4eXcO4Wr04uwj7CI6m+d8iMQOa5Jv0hmNgqqiwOMVBlKeo0FCxlovzwvn/Lia9WZ74JqM6JwLCD8SZ0oFgiSIHOTHrQhr7iaCmj7X/0ey7VR8FnCrpeAJpG+ELTfWGshF1d9QR2zW7u4EsXTDLiuOmdJ+/KxwMvjMcWdlg2+Qch6SwulTQRxWaED2IWJo+YiAql8eaiVXu/eZJGLoiskGFZnONoLrzIT4pSjakPlrSpn/M/GkP1pDpaMkr24OhJsGpJNEU3F1ZcOMqy2iJzIxlPmU8Xg0I/OrnbJplpaXeRCqnmouJUJhWkaPzawaVyW7dtvprLWcpQtUgTRet18WLyOrLKlq1jwvNRMTPKUJ2IFJMpk2pNEP6bdiUxyMa4vrRIEU2p1zsYSUJpCRLtccZ/i/+yAqwnTA2L5TdAORi9nD2uCdM/Ljz52V3A14QapS6oqcoWx2soWKgnsbVXoG8DxmUTpll77Ze9t7Y5216SMInWuOu0vstP8ZcgFmWsiBgIYIuLA58abWHMxgD251phYidua6R3Gtkf8J/kYqTR1P6eJF1bt5efEg7FD2aL1QQZsYJo3CRNz7yVe1XqMdPbfe2mFXQVF9TDX5x6r9Ir3d0KiEmTlBdByz8nSyPJ8IQxC58NT4LNVQs3p2XH2Zcf6B4JOBSmV4NNBnLseFobsxniWjkWwZigED/D2iu3OXuuhmskCbw0hKy2rBcKffaSNMioVqYIiYNfKlMlSvAacQKqc/1HCpqgX8PwAcSgNSLy4K7/gIrTHmjY+g+CH7onzatWzkLo+0vsZRa/D/qwhhK2CU2FeU07mhnWxWuzqpJuqVaAwDTaEforK7nQUtAOFAZZP6qGhIoqsynYt4THb+QORb3QYfaP0PVgQwXfVU5Q8eUQFZ8A+siPtOASFjDumsIbseB5VzkF+UhvdseJwkX2+4pVFu8eHFDyvArYsHeGK6fBcQGJFQc2jSs6doIP9HD9IO2R ghelling@unknown38BAF87CD102";
user2 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCgg6FGmtWPjw5iYTlxJLz1WBCE7zhYhXgmfPvFRt6cd+sPdBdD3axkYPwuUxIa1dxwLEHn8BY9ZajFNrbD+Y0C82stxbBGLRhScj9phGP6LPJhNJsqeuU1rXcnUS127GlFayBb92UajpgMBVlQVJVgOikdK0GZWS4LMsTafkldS5leYr4o8pJ94ZQUk04m9Y2AhkLOMWDdLqqbVS7rFDKsfNDm6YUIrc4fCFvMwo2IhKb3VMv/CqPBFWx9YWFnLoNRAUhVTbcpDWBprvgAirf1rI9jXihX78gBLYqaI0shZg3mldIfQPaPudxXAYXZBFxZkcdnlEwOIL3jvR1bQKfRroAsLs4Nz66RDMIEC6cYm6QEIppFzx5pAXmjBHk8RPYPV0Z7gHxlp2yL0C3K6E1XN/A6cvK719VxEI8Sqmzl7Dd9/wikuyZhA/ZJfShpGTFX7M4wWKd9ZB6F01ATqAqACs4BHIIakl01C+lad2WQwxCXZo3dxGTMGoUrWTlTcAIKYHA0uun0k3oU0KRcSojpGMFCedR/HfLXZ/3TxeUHAZzSFKAQqZPE+6AZMoDSqVgWW6gPvRqVbtgG17qf6kPXM7XQRw/mNnjUWYrqSzDU4eEyN0AcfWhAN7defp+ERNlDyIdvYSiTniONuBMR5nz5xhLctKosJ1DaQcyNxYok9kGhG92pShRW11JmU/AmM3K6svD2tMRNRg2sJUNYHVzr/P65vZ43jXFV9hn5VTvhNofiDmAgTiPP+4Xo25FHtzu2CDwd7ve1zZZ8WyunmHx5kevdCQBcscKnpHO5MK1EBG2acThWD3HbfzncLkP6w5ZkLngGieIB1C3UjpzbbcBTeQ2NJnra59ZpouZ/ivqoxr/xqCakKlRmi201PV4DzB3HEYhODnmieykZcpSU77EuQb5H5w4k/YY0I9ZVrwyBuMfEducUPV8ghV6HRuZYUNWhOOr+rSmPSvi24kH8kkuoG7D+6aZbLpezyl6u6RvFuwGC784nr1nLXFSMOQpjND23SuGWn6iAcSCqxJ5eBIh50U2ZylsavBjaMDp94esBEG/YyWKcFO5b3xPr75/cwaeLGttdrnMfyWFG6Iz1yFxiMvTNqLKRlGNduK6OPTet89ymu1Gau+l5kfn9YE22gvwCRWU2GuCyTk/PigFyrAKmKduglUecW+Wgylh2OQ6YLJkE3nnJ2u+ujEJsqNdoQBJRFYm4efPFp0WK6DrAmOT/fAD6TyLitWwH+1XFgDR3IKynHgTVaG5SVhjBrT9NA59b90FDmQJmKiVMItDFTn6Ir2+qMw3mvl/xHoXJ6QRuNEOTWtqh8QeJIU5+tjr0pfW+Dz4/fydmOYX3khVZADR9 greg@jude";
user3 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDUd5LQVl/spIfJ3mh/MERlCfSIHCh3jXnaNVnyHY2AVD2dFVgFX+Q+1adA64plXqXHEQVb3q2EMzVW14QAMP9VJspnODgpyMHwpxp6ZNUsZIH83RN8kauVHgW2LRDCZ4DLRzbqaeDm92rntapoUB74Vjto00AE3gWyGQp/v6BeAUhqE0J2p6T6xDgsuyJ+Tzm2YEUozFW8w8LSGDgaoTKzjq0WVkAo9rNaxGLr/ez8P3SUHgb2VSUrL1qrHE99KL8rravOjP0aQmGGWu/MOjgvh7icQuqYlBF6MHfxeSd7/FZApVNKzEXD9TKBg5IaCOjHH2GHnxthSC0mcjKmF2EVAXuWYDARqxmtIfV/9YdeECEFxzB6X+t6b3RYxA0/oa5Zt70WH2LILmc3U5EfiRf88x4WcsdmbcsKQ74/julgg7vYlTlndBxvl8Nd1IKd6ZD3nJBMMMKrDOYbME5r6x2VTzm/RQkpp+SHarCMXxjukhguYY3Iz9CTO2hdGaQ/41ftlOhpb3I1Gai9GymTPFDt9n3JCEVyQ1+a97ELVr+Ky1L3hMewE8nqZFIoXUB2RFMu2pD9GggDO2e6bXdN3SIHLL/8amoDK62iYgVEp1XBkzHJ7U6hhIYbkFji0KK8A7Cwg8+gOKdovycJIAWndHjaDcLmWDlBktqHIRQvLMTzE9f935faTcrSTpnrCLK/pR3f7ir7HGpD8lUug8m7DfxhH3am1Fz7uY9iNI1GLctexC7espXq/xEA/+j7JRVVKbpIubXcmJjNlKs6jOx849SpdWvLlnJpqo1PIjxE9ZDa7zlPSLMTKGTuY0ekKvvbuaOhcOBuYg1RfbdN1QIX5ba86U7giFMZb7wGh7Pbsy0PhFgO7ANgNZy81RKp45G8ozHLnXCj/qhstqjcEgUICDkT/CGnNkreu023kqOaix0nELBLwWBVM/5iWmKQZnpiBhHHDNJ3Q6DsCkIUdfOWZNCIRwGDPuV8uMOEHJIemg25Z282QqWUIfWzGOO1f0ylVmhTQooZIfjhyGXxKa6AV+/tAXQtkF5B1Z8rB5A3pYYLDmnY1E007sWpvm2L/HKV7cWUX7bkuS+qBXZyHxEn+cc6YvalJbDi5/bE5kFQudZFgKInwFiMLhX/8BpbgBUv+6MvvCn79o9qnoOnkI36A9bEOdQKpjwPdg9tkVWr0RotXfP62tIAQsxS05J7yxprC5Uitf+Bhp+Hph0tS/hyxTbN1h30vfdABouvQpcqbgUlp6psyTT17efeNbGcs9l4gkg4HOGpmF60alA1+PBZ1l7ba6bglp+CZoeA5qsCTmMxT5yLaWcEck/8WR3NHQqkER5ZyH1204Kci35kNon69y1/ greg@linode";
user4 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQCoGGV3eD1oF0O62JZfCWNxmViRjRGQsfOhRkQfzQROkwDlFZ7S1+02fudD9t7mPtZE6dQ4yS2+6Q3NIfGW8NBbZAlWwsQ6PnrpuAhWpWc+ng/IDQd9CH/rBCt5bWSLL8AGHa4c+qde7iyoFGK0l9jXVD9wATBFQ274WTmPacVQVHmIAmJS6ISmR6vlq9eaDj1fX8wixao6WvzfwAUvXIs8nhPEfmtyu4T/1Eev9rVIxOw3ODQjk/E0VWV4Koeptsyc+V+j+XMyA91v8f20T4Uwe5LGnJHSQS0WavHnCMWHb1tzkmiKdaNCymoDUcUF2rywMYry7JN0kZo2mp2d7OzE/RP3bz/IsAI33+DwRlDYDNzgeLsLVmOJij61AtqBZque6WDcyCF8HN0ZaY0KJPOtNlN92+GUBRF/Faei0MXZ7wW2BZL5Bc7qnXc9USyhPNsm2vQ7LLhh/NtBGqB88+C+AidTTZ/xiIHKWZJXPkWLPRcK5cfaFqHFqcVMk4U+b0FYB95vYPKmjURlAZ6WrU6dNaNaMH9hJSE6/03is4hb4t8RCRiNaR41pEACDZbATjY0DInFn1LxxpUV66xfpOVg5hKm5ScIks3KxWJ8i3v4/cX7WvbDC/UzWb2UygpsqR7/1n5LV1SNPl+/qxFfdaOyZ8WVvx7DKGxkKfkPBgGwdpSthdv7BY+SC4sT9WXQAPGnvOIk6HwKhHjJYX7AIKK64ACfGZbjBC2gg7Ocl4HkgwpYYlUWLRJdJUhHOCi3VhPZDspYhw/UxPnUhYa8lxq5l7kgkks/tFe1qHOvPe3QRW6brg3EdJNkwtMrlrstW4/nph/KFqSshzNVDlEqTAnhE1cjbBZNmlHt1Un4ixcW1b8b86mE+472pSsIEfO8vxP26brQhxepJFZGOFv2vs3XDrrtn6IMJok4e+AQSCCY0kCcgfG5nMYXUoWpGyTpN/JLG0joJuhPWt58OaOzzKNPq2+rCVAbS7/UmDCqkwxjCywxOZRwluBsEWbZaLEdOwQOfIZQGwSDBM0hfHJJxMSaLN3rCe6VZb+c/5mFXUZ46L5mOGkRlO1TOEAe4jqawAQnuGaHN8mMWSw1gKM+UBXTKa0tBR6Aj/OSfPW0jU+mz/YzzJkzNnlRFiSrLxWvL4eXaBsMZvgKdpA41+E4JG8Vu+9D9KNGRnLASOCxRknV18MubZlEEyKby9A6TaKoPrz7GVQZP+36V9DtAJAza74nHSDNAQG/4w2BLOw9+VrDNdXwjMbgG+SN4f1K+e554OirtSMVB73VXjdwoH/FyX+7+dcUZRQ7V2n37jIVOE6CcuEPjzdnkvKSqBsdTO3Bt66+QtS9BwGHu5c01+Q7jvIl greg@nixos";
user5 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAEAQDR4vmc5TiymSjMB7E+oYsiTxOg+2xwnLAILYjQKPA7dIvz/A/HW31R1aVVxNEgkHm8qeqmgE1bUysMMl128zvdKmwkMmq2uagx9hboyfCwOYRaQOtpS0dlgSllhM654vL9553t94sTuMIfNUiXBD3EV2Z5JJ1RteCkBTJjzmXQnV9he0xozBYOdGv35UGneQzAr7Pps9iK81mR4yW+vLcW3pAaPmDBbN7C6WFxqcEBWsaJZK0rLCTrQo+6B130XgH6gPgh4GyDaRmtRJl63yANiP/RfkDFTPKOh87slLLZaHJUe94P2CTZw0e9xSzWuzx71nBp9JhkoZkI9XD+AnbHIZ9X3twIADUf+D0fivzOH+Yzne0gNRFa+O4x8xd/xj8QeM+Rr1ATikBf/FRfyx+RzHgHS1ZyOKfIpQbrm44E8Smv7FzS5RcCfAScSn0npOqP0cilYjtDCEoeMVsx4XQy4+iYLOA/EaMICSz2PwQFG/KXe7NK30Cc5flq5qUiz8TX1Mzlxuro4qTktYSXZBs5YyEg3Za/hcqMV52kVn0W8S1DatHOL4TlRKYeKsg1hWNvtm2MRqJvWkqK9vNNL86Ew5D5hgXdCk+AiRzOhQxfprPYMea2Vx1Mkaq3VYHWmJBWc/m4aOKUSajhFu8KG7l8bc4IkgC+qQCYzr6pCUDlCaCEF1iQ3lItSkbJJmRBHKEOb85lsIJ/SZ0bhsMl8bc9z33zY+bwv2NezG/aKVGrny4ZTAI1BKkZN/60L0yzJihyKamEa442jjnvG1jzC2wEtd/0gCGWScfZsQWqDu97spbeq8jrc67U9xqlGTrWyyNsCW2lpu26cQWWRC8ufl5zBNRDFDSYKceBaJ2+sx1GPj3YYdJSlTt5JvxNyBg0BGfGqCTd0w4IXF3KP9IZRWWAKPaOZcil2MRZwYhWEd7p+CtKVAL93uW0sE+0C13+iFMnBUkFBJ2dZH+tWpywCRYcrVNvrBlsHe2XniwBwvQHUFgKaQAB8upFTK1xBWTh2S+CVyNed/fckAUrPDj4sI2NERGcyPC5Oi6r0fUPtcWvKRfA/yXx5A0iNWc6acTqd5wwSO3s8rOCjIwdczZmkmnjAf3UKhmtDnwRd9rbO5Hanom80re9Dk0W+z9E2+70b9iYvZ60pbw+cG4WqEQnr02RS8hKvU0CsYFoDMTzV4snqTKNrl0IeD+Fmjl7oDkcC4YQbZd2902qVL3WHHvW+p0WQ1B/rk8BPVRYVmrUQbqwPFCQlmTe3Zy+LpqbWYemhQJGVSiEiioVNCc7pHO6RyWLCoEQKwKHAoNleKtkG94hT/d0z+1RYpB/nbJ51BPihK5EMlXbw/Hu1SVaaDLOSL6p greg@mm";
user6 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINAX6pNx5mbwIa8X+GzktyNijfYmJUpgROFpRxSW9js0 greg@linode";
users = [
genesis_user
linode_user
user
user1
user2
user3
user4
user5
];
everyone = systems ++ users;
in
@@ -20,6 +37,4 @@ in
"drone.age".publicKeys = everyone;
"3proxy.age".publicKeys = everyone;
"dendrite.age".publicKeys = everyone;
}