feat(build01): Init

This commit is contained in:
soyouzpanda 2025-01-09 23:05:17 +01:00
parent d474e39b92
commit 8cfc0001b9
Signed by untrusted user: ecoppens
GPG key ID: 871893E37A732093
18 changed files with 464 additions and 143 deletions

View file

@ -21,6 +21,17 @@ jobs:
STORE_USER: admin
name: Build and cache bridge01
run: nix-shell -A eval-nodes --run cache-node
build01:
runs-on: nix
steps:
- uses: actions/checkout@v3
- env:
BUILD_NODE: build01
STORE_ENDPOINT: https://tvix-store.dgnum.eu/infra-signing/
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
STORE_USER: admin
name: Build and cache build01
run: nix-shell -A eval-nodes --run cache-node
compute01:
runs-on: nix
steps:

View file

@ -20,6 +20,7 @@ rec {
_keys = {
# SSH keys of the nodes
bridge01 = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP5bS3iBXz8wycBnTvI5Qi79WLu0h4IVv/EOdKYbP5y7" ];
build01 = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIYJcEMQpOyKInqtd2/brnSQuzwgv6fNPlTSQx9tcvPu" ];
compute01 = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE/YluSVS+4h3oV8CIUj0OmquyJXju8aEQy0Jz210vTu" ];
geo01 = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEl6Pubbau+usQkemymoSKrTBbrX8JU5m5qpZbhNx8p4" ];
geo02 = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFNXaCS0/Nsu5npqQk1TP6wMHCVIOaj4pblp2tIg6Ket" ];

View file

@ -0,0 +1,26 @@
# SPDX-FileCopyrightText: 2025 Elias Coppens <elias@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
{ lib, ... }:
lib.extra.mkConfig {
enabledModules = [
"dgn-forgejo-runners"
];
enabledServices = [
"nix-builder"
];
extraConfig = {
dgn-forgejo-runners = {
nbRunners = 16;
dataDirectory = "/data";
};
services.netbird.enable = true;
};
root = ./.;
}

View file

@ -0,0 +1,59 @@
# 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,
modulesPath,
...
}:
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot = {
initrd = {
availableKernelModules = [
"xhci_pci"
"nvme"
"megaraid_sas"
"ehci_pci"
"ahci"
"usbhid"
"sd_mod"
];
kernelModules = [ "dm-snapshot" ];
};
kernelModules = [ "kvm-amd" ];
extraModulePackages = [ ];
};
fileSystems = {
"/" = {
device = "/dev/disk/by-uuid/fed99278-0916-4d9c-b974-c7125d3557b3";
fsType = "xfs";
};
"/data" = {
device = "/dev/disk/by-uuid/69b62f16-7db1-4720-a115-fd3b8dafe123";
fsType = "xfs";
};
"/boot" = {
device = "/dev/disk/by-uuid/1372-46EA";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
};
};
swapDevices = [
{ device = "/dev/disk/by-uuid/34b9e0ab-c579-4293-849c-78f5093cf35a"; }
];
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,70 @@
# SPDX-FileCopyrightText: 2025 Elias Coppens <elias@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
{
pkgs,
lib,
meta,
...
}:
let
keys = (import ../../../keys)._keys;
in
{
config = {
users.users = lib.genAttrs meta.organization.groups.nix-builder (u: {
isNormalUser = true;
openssh.authorizedKeys.keys = keys.${u};
});
security.pam.loginLimits = [
{
domain = "*";
item = "nofile";
type = "-";
value = "20480";
}
];
systemd.services.nix-daemon.serviceConfig = {
MemoryAccounting = true;
MemoryMax = "450G";
MemoryHigh = "440G";
MemorySwapMax = "2G";
ManagedOOMSwap = "kill";
ManagedOOMMemoryPressure = "kill";
MemoryPressureWatch = "on";
};
nix = {
gc = {
automatic = true;
dates = lib.mkForce "*:45";
options = lib.mkForce ''--max-freed "$((128 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | ${pkgs.gawk}/bin/awk '{ print $4 }')))"'';
randomizedDelaySec = "1800";
};
nrBuildUsers = 128;
settings = {
keep-outputs = false;
keep-derivations = false;
use-cgroups = true;
http-connections = 0;
auto-allocate-uids = true;
cores = 0;
max-jobs = 8;
fsync-metadata = true;
experimental-features = [
"auto-allocate-uids"
# "ca-derivations" this feature is really extremely broken.
"cgroups"
"fetch-closure"
"impure-derivations"
];
};
};
};
}

View file

@ -0,0 +1,31 @@
age-encryption.org/v1
-> ssh-ed25519 jIXfPA plGvUUrRbdkfNyD4UGIjjkv3Ktu4iqL4dImFZzWnqWA
asE0N7d6lqnOFJWoU+V1bCLhlD5oFAkjs9HSM+ps6Ak
-> ssh-ed25519 QlRB9Q hagbD6do4gKBuRBN8m8cDL6K0RFmiJwpvJOtAaPKXnA
9727tWz+PhGm/bycXUUQHV3YqeXc0AD/mM1DvTrBLC4
-> ssh-ed25519 r+nK/Q bnu+1g77I2LLnXNHZWMkIrgJpxpwJ1ZYgdAL4HE6hCo
cDLyOiULyjO9s6PACs6Ou6m5h0XcDzbdc7o2P7OAizQ
-> ssh-rsa krWCLQ
X8SpFIBmd7LOnJqI+V3MWlaYB8f4Mron5IKYZGrqRPWzLrrkAkJsr1QdV4K9vepe
zQsHecw8VvCKQesAKFrKTZxF8oXvoJU3GP5q9IVISLuEv8nLxgyhhLqQQqPVWLbC
0nGGtbke2Xw2QXgUpoe6GdZ53Neg2BShUmV6SYoGeTwdxGmuL6nFH7UMzwsKWLW5
95CoXfRyp4oxV7FQscuewPL+tNHXh6DoeW8Qlr3rxxgJkCSNMp+EchZJZOroGmtd
SQb2SgFs712x9han1vNR7Dn3o270xa/AVldmjRBNvDGyNefItb20OP4n3bWSK3b1
ejR3mZyP5SU2+Pr6navc0w
-> ssh-ed25519 /vwQcQ NQSD4lKvM7uWm0deYyc22DC7/IGYve0XB9Zg8yOY5GE
hpDWSKnlW6BtyKlXXS1anB78CvK+mnsm3BOxht7mL4Y
-> ssh-ed25519 0R97PA i4DSi49b4vQpt3hjiHPn0/H9MzyvHz0OEPJXcvn+G1M
C9uEKNTPRK8f4d2AYnPqDwTqDOV0SHmG/x/529l3YLA
-> ssh-ed25519 JGx7Ng 5WgVespkMD/X/67sBoF2RbG+YXu06UuSozHrLJSn2xE
pISCxxw/Hg9GBxh33gW6JO2mLKrdvSUVb6+AHMHwTtE
-> ssh-ed25519 bUjjig 14Ocpj1tCsZ5lZQ32wDHsO9iFkrNi8wZS8NUhQ5HEh0
ZbX31ejXuqmgKD1EcmH/B0zo1CeORzJn+QjrRuWNxh0
-> ssh-ed25519 oRtTqQ dSGSGECezsXdDeyFcOSLIvKT0jdOs2d73/dRAeBuJjc
2O/CXEu0rV5EdAewyvdA5XfLXMQvzEEtl8lPsBqICqk
-> ssh-ed25519 IxxZqA BbHNkDUiEoWcwGjjrkFbOHCXvq2gEd8Rv7tt3p8fXHA
yJsvxku/Kz26jTTEtuoHDLGO/gUotw/QZc+UwxCIwKE
-> Tqc#'yq%-grease b
X3iOhNF2FNp0ImC6uLsqjT1pAbNPBIxUCXLivDKbVIZYoBhtrLpQRJXoWK7GEakA
8TkORCQQUYZIlNqu2Psfbi0
--- 19Nolty0dET6QnYlxtieiluPP9R3HbrhEn5EDuFu/s4
“˜?l÷6r] úfBžo<ŸŒ9lj5M+Ší7íNõϹäô% Ñ.èœELĘâÂÒw§¾snÑáã¬nšN -×Ø̯pñûëËŠÓ

View file

@ -0,0 +1,7 @@
# SPDX-FileCopyrightText: 2025 La Délégation Générale Numérique <contact@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
(import ../../../../keys).mkSecrets [ "build01" ] [
"forgejo_runners-token_file"
]

View file

@ -9,6 +9,7 @@ lib.extra.mkConfig {
# List of modules to enable
"dgn-backups"
"dgn-web"
"dgn-forgejo-runners"
];
enabledServices = [

View file

@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: EUPL-1.2
{ config, pkgs, ... }:
_:
let
url = "https://git.dgnum.eu";
@ -30,22 +30,10 @@ let
};
in
{
services.forgejo-nix-runners = {
enable = true;
inherit url;
storePath = "/data/slow";
tokenFile = config.age.secrets."forgejo_runners-token_file".path;
dependencies = [
pkgs.npins
pkgs.tea
];
containerOptions = [ "--cpus=4" ];
dgn-forgejo-runners = {
nbRunners = 6;
nbCpus = 4;
dataDirectory = "/data/slow";
};
services.gitea-actions-runner.instances = builtins.mapAttrs (_: mkRunner) {
@ -63,23 +51,4 @@ in
labels = [ "debian-latest:docker://node:20-bookworm" ];
};
};
virtualisation = {
podman = {
enable = true;
defaultNetwork.settings = {
dns_enable = true;
ipv6_enabled = true;
};
};
containers.storage.settings = {
storage = {
driver = "overlay";
graphroot = "/data/slow/containers/storage";
runroot = "/run/containers/storage";
};
};
};
}

View file

@ -13,6 +13,25 @@
netbirdIp = null;
};
build01 = {
interfaces = {
enp35s0f0np0 = {
ipv4 = [
{
address = "10.0.254.21";
prefixLength = 24;
}
];
gateways = [ "10.0.254.1" ];
enableDefaultDNS = true;
};
};
hostId = "adb676ce";
netbirdIp = "100.80.31.249";
};
compute01 = {
interfaces = {
eno1 = {

View file

@ -49,6 +49,28 @@
};
};
build01 = {
site = "pot01";
hashedPassword = "$y$j9T$n83qOn1OkQhFwQe50tPM11$jZ1tvgqMTcp4HLGEfJmTMsf0NnRUYQkzco9vibWTpU2";
stateVersion = "24.11";
nix-modules = [
"services/forgejo-nix-runners"
];
nixpkgs = {
version = "24.11";
system = "nixos";
};
admins = [ "ecoppens" ];
deployment = {
targetHost = "build01.dgnum";
};
};
compute01 = {
site = "pav01";

View file

@ -95,6 +95,14 @@
"catvayor"
"ecoppens"
];
nix-builder = [
"catvayor"
"ecoppens"
"mdebray"
"raito"
"thubrecht"
];
};
external = {

View file

@ -21,6 +21,7 @@
"dgn-console"
"dgn-chatops"
"dgn-firewall"
"dgn-forgejo-runners"
"dgn-hardware"
"dgn-netbox-agent"
"dgn-network"
@ -43,6 +44,7 @@
[
"age-secrets"
"services/bupstash"
"services/forgejo-nix-runners"
"services/reaction"
"services/systemd-notify"
]

View file

@ -0,0 +1,91 @@
# SPDX-FileCopyrightText: 2024 Tom Hubrecht <tom.hubrecht@dgnum.eu>
# SPDX-FileContributor: Elias Coppens <elias@dgnum.eu>
#
# SPDX-License-Identifier: EUPL-1.2
{
config,
lib,
pkgs,
name,
...
}:
let
inherit (lib) mkEnableOption mkIf mkOption;
inherit (lib.types) int nullOr str;
cfg = config.dgn-forgejo-runners;
in
{
options.dgn-forgejo-runners = {
enable = mkEnableOption "forgejo-nix-runners for the DGNum forge";
nbRunners = mkOption {
type = int;
description = ''
Number of runners to spawn.
'';
};
nbCpus = mkOption {
type = nullOr int;
default = null;
description = ''
Maximum number of cores available for each runner.
When set to null, there will be no restriction.
'';
};
dataDirectory = mkOption {
type = str;
description = ''
Base directory to store data for runners.
'';
};
};
config = mkIf cfg.enable {
services.forgejo-nix-runners = {
enable = true;
url = "https://git.dgnum.eu";
storePath = cfg.dataDirectory;
tokenFile = config.age.secrets."forgejo_runners-token_file".path;
names = [
"on-${name}"
];
dependencies = [
pkgs.npins
pkgs.tea
];
containerOptions = lib.optional (cfg.nbCpus != null) "--cpus=${builtins.toString cfg.nbCpus}";
inherit (cfg) nbRunners;
};
virtualisation = {
podman = {
enable = true;
defaultNetwork.settings = {
dns_enable = true;
ipv6_enabled = true;
};
};
containers.storage.settings = {
storage = {
driver = "overlay";
graphroot = "${cfg.dataDirectory}/containers/storage";
runroot = "/run/containers/storage";
};
};
};
};
}

View file

@ -1,55 +1,56 @@
age-encryption.org/v1
-> ssh-ed25519 jIXfPA tqrbtRQ1sOAfNdcydUswVCvTPlMOyxJk7KIWuVo0zTo
8NlgzrKyFh4K5NreS0CmBNQ2ZmiLZYpD+fhbqNX/aAQ
-> ssh-ed25519 QlRB9Q 9so2ZMz5fmmbqRpwEtJ0/u7iV+MLLLkDgODMfu6rdyo
mYpFyrEI3p5uIvogAeTTgC+bHNHBx+eR6VGKMx8hIQk
-> ssh-ed25519 r+nK/Q ldIiggaMYAi9twBQpG5w6EA1stvDYgznDytN/zN0IDM
bOqzUc4m/pecyG+6jv8HilAJKJS5ywiagv1IN3DMtEM
-> ssh-ed25519 jIXfPA uwfDbp6deCl1ZuO/9HWEghRdmx6C48WYfrUSprsUhGw
/ram5+hhFm4otCrfe8ikxazml7GlXydSLnV6Gx88eeA
-> ssh-ed25519 QlRB9Q k5ASPvydXiyyIhcviZWBMrKBT5UQeY68Lvs7OSYVH0U
VQD2FHyF76l+OI87JUvgz+4ZIpYZbTmojWr6w+0Ce4M
-> ssh-ed25519 r+nK/Q PKv1jnfLjPoevbENLT+BDrkzhngXmtDiepSDKZPPvXg
Egz1qIKAoYwM9WnRIsxaVcMVnZQ4ejBZB2tWvuqPZto
-> ssh-rsa krWCLQ
OypBhkIZl8NGjojPR0Lg0A3SG9BhkA9oocO1zQqGh+gJdO1X8O3m5cIdxu7Ggw8s
RE+B41TWwEfOV0KfRdOBoVxTLYg027f5/EnlU0G5igGUCDt6vDgyScLsYkdiPUYs
7otyfXpCwM5eKpHV6q1qne91BjGXOiUpIPnlaOKXFvNkvNlihz9D1uw+n9vnsKGS
fb9jYX3fACcInbdnNOKeDSUE6+e6wj/ijOwGT8pL5X4cYmGslhfqk4WLubJIUoGx
6TTD0Qh0tiaWlbHJU6jB/Iv0zQgXDBvOCasN6Nlln+PYQnQ8N0gDRkQ8Eq+eKA2d
19komclluvh6zNZQHXod/g
-> ssh-ed25519 /vwQcQ l8YLbHxqW4Ynk9ElKIws+Z/cVvdYa9E/ELOt1gIkXww
nENmHEF5A73imF1H0m+Zn7Fzf2EFTyRPX8HTkgfWvLk
-> ssh-ed25519 0R97PA FVqDeagt+Q8qXxLNaSU5AttATiVmHyQlZT2mv7ETshs
XG9/OKfvS/Q1yHHHexCeJ3/5HTu/oe8O5lIZJouANv0
-> ssh-ed25519 JGx7Ng xuF0PD3YtE8kqWBH+OnxI+Qw6AQZ9Ib53xpSm9NMrGs
wLVrBPL4KKWf5AKIN7MZfIAzOoaeqnf7XswaSt8UHKQ
-> ssh-ed25519 bUjjig 1Ekic+sPi08+xo5Lx38SsIN78ODOaJJpuMPorgelIn4
icUH+He/zxMhoDsakE8lJ1BCkeuwm3izXVnugQrxoCk
-> ssh-ed25519 DqHxWQ oQ1K9/CaOXBCqckeGC2M8rXtPiOSFFetK51+LU5NLGw
zX2MVGKe7jdoPfJhWHd3M0cJ9uczWyyUqzFOZhP8DCM
-> ssh-ed25519 tDqJRg btCKh9SJuHDiGIQu3FNf3a04p6Qm9EYoTOMaxBFFbCs
xsGNb+7jXb5MJbnNAJBZRwBvd7a0uFk8cZWWz0xPLKE
-> ssh-ed25519 9pVK7Q bjH8hNGrjV1euwfetjy+P7FmmVEqg+D2VsyIbPN6dBM
Ut+81wp4IaHYgR7mjAHiPi3uC5K5l/wLrtUEwxxhVs0
-> ssh-ed25519 /BRpBQ nYOgDzHkeh2T3vcC0c3X+/5GPmn4AOavPaLtluG9/X8
yLeebplBqT7cbo7mgZJvbqVOf1SPFFAs/P8lwVUBjnE
-> ssh-ed25519 t0vvHQ R14ScgZyALLYI9VQXC9ulRiIT6pKeNjsUETqmf39Ajk
8sATMxF2qt2ZquQkL8lUjtYYCE/c6HAV7CzVBXgAlzY
-> ssh-ed25519 E6cGqw 0kdE7TYnCGGB6laGnB67OFIdI5pKo9k/4M2hSZB8dVg
6ZbKr6REXl2e589LDQjTdXAOSxKo+Crzb/qU3UiT7Fo
-> ssh-ed25519 EEPmeQ iKAT49L0Ps0DPUc/jHZ1eYPQvkouTbEaMMT1WgGgNGU
5tO5/612OXfDVgPkC+pObQJP/EqIljq1Sb5/sEQpKOo
-> ssh-ed25519 +MNHsw +XV+vFgYZBjgS+MKcIx1YaZgV34konYI5r2okZWcpE0
xBVIa8Zep/eRgD2gjPooTS5oQuzgjRxw3cvUrVhbFLM
-> ssh-ed25519 rHotTw kpkPh9yUnPayJBCiUihPbSMIGiCMNV3Q9EX/GqrDuEY
9U+MZrgXh8wWMr+YA+OFHzVtVoiNXusQIAKHSIv5dy4
-> ssh-ed25519 NaIdrw P7GGMkwEt5ueKMBok+EpEmuomOQtWMGjqShy2zMcziY
D38Akh4B2IIhiMHm9L4BAlXkqtmRHBFNYnq7MBxuLEw
-> ssh-ed25519 +mFdtQ q0Ry7jtJzq6UfKDbzfovl5KBjdJtOKxlzMBKOBt/wl4
5LE2G25RaXJSNC88AUKZVsec9f6kRMTrRJH0f+rHjiw
-> ssh-ed25519 0IVRbA E9wi9oRwNigFI5Gx6rOzdQRmLsaG7bADK0JwevQnHHk
R3ssmspGUasfQCiak6mbelWszIEfgBhoUSwTmVAZVHo
-> ssh-ed25519 IY5FSQ XecGNqCa7W77aVxHu2PMyGP3kjJaIuMkPu/uxxmcTWM
XBswdNeVgQzf1dHC7epw/R4aR+aPM/D6Ojfemv6h3Zw
-> ssh-ed25519 VQSaNw W9s97+9Zp9HHHLujy3AfY6AmhXG06zubbKmzuHfI32E
6sBZ/SCxyOAYxusVng5xTp2FIWP46svn9jHrGdDoITY
-> QywF>>&-grease
an4MLFRuHd5YzvAuctEATrgtHX6ptlOPxRnGyFsIZEx4CVadG8bEn4+aPF64Bvxy
RXa8
--- fF16JxCEn1JKV0R0onxLmfe1SJViPsfwcW/aNzakOlI
™dØë¦\YjÐÙ\¡:ìlsZV¸¦©ë ñ‹¶÷È"鳉] …wOpì4àŒƒeÔÅ9¨Ï±üB9<42>
JxjsWDFX9cqlYYj8XfEz6WlO9xHM6Kjz/Bdkl0E9vRjP8RohPGvGjMwWTv5rAmYf
n4yMTfau5BNq04WOUoHEz+TJBLwgdGs0yLVrqauLVSSquNxNFaTDN7wIoq3YJ1sP
66bqP7KqKfgYM+wPg07pnhEVm4T6io9IiH5D4utupSQGBGtXBNWeoORW2Q4XgqBg
n5pPM+EIqCAGIH+iotKzQLAtn3JaxXBliY69JYXZ9m6eKonTGOnltLgAnkslEIm9
qwArShZ5YKcEfO9QMioUnbiZU9MV+61ybq16ilWn2MfSUTXS4OBAtJxz6uu093D8
jmGuhxzXKhB48P/frH/hRQ
-> ssh-ed25519 /vwQcQ riG1XuW1BCD0xyVeRSgBNrnVmnzL13eor65GEr6AxgM
N08UbQEOhWsAZyazEN59ztZ7XcXpxSVS2i5m2on1R5k
-> ssh-ed25519 0R97PA abXQZeB5lRIGNdR/a0uh0o6nU62ZgJgP/Ifo2Sa8VkQ
dP2djzaPrNoXAs7Wf9hPQ7cAi2lABLfm/XNW7x3G4XM
-> ssh-ed25519 JGx7Ng bgExR1n+lL4Nth44hAlaPwJyTOJnX0HzzTV13UCvEBg
rEjfzKhpwMUQCAxX8u7duZeZURdwtEwtE9rngMYMA5M
-> ssh-ed25519 bUjjig bAhLFnqdVKEzST6m7NWGeqInuNQyclLYFNzjBJOEmmE
rVRcUfyfMG2EpIucz65bOuC1PVuNjKU285czNjKwJ2k
-> ssh-ed25519 DqHxWQ j0yUDi5WL76b9ywKcBA0TAX6ilQMXApiPWMgDFucxHc
8NynFQxLhhvyMLeHY7jBxvEGkbDeItSN9GxyMvpCmJo
-> ssh-ed25519 IxxZqA 7fkr+YUngEszyOXKf5ba26X08LALDEZh1YdP2lmBD1s
qQhTzEV7K0AIRcNQHrBmGjViBfxMhfTc74ez4oRYz88
-> ssh-ed25519 tDqJRg 3lNl0f4EI5iGfkOEwgsdbuqFH/Ii7aSLC/ZTPXVPejc
0NiYrCEhLaQF2zycyNT358CKVnhPLU5bibKZONWiISs
-> ssh-ed25519 9pVK7Q r7ug0wHYoccWduiMCC8nbPB0zKTUOJHJGuL6Cex0r38
SJZ2al16eRaKR02RIAJeRtlwjqIsGO5kpyaKRq9BsRg
-> ssh-ed25519 /BRpBQ 98rwPrpOBbpjz38FEArCgEv1MqXWsak65tRrfQykrHA
nfzNG899bAb8dltFR9QrJ4Zb/xX5BL+vSQDD5vC/a2A
-> ssh-ed25519 t0vvHQ +XZLiLJdJqMxRf6CZwJoS75uQ5b9BxToBUsscsvjCgs
0IsEB8Q7ZVMzbQMUXVbHdBIC3bcAlhtKHrsjENMvNss
-> ssh-ed25519 E6cGqw wYdLb3oelo2KDUrh9oDfxN26d/zLPZysKHTp8rxMnEY
yJ5I2PL32is3cgrh06XRpITykFL282pmhEvCTLRAhQA
-> ssh-ed25519 EEPmeQ CQLZuD21cKyZOWJZxrEl2N4GnT/3nfkyv5GjK+aveCQ
XMUaUgHw6mnFh9AEHTn/sRRe1VFGcKRjK4Ib1cNyFns
-> ssh-ed25519 +MNHsw Ir6Ev8iz1/jyOJJF6boc5T+yjzCtx+L7VtuPFua8WGA
1sjWSysDuMJ9/hxaYRWF8so6TsdC/ZpLuK1r2AC/st0
-> ssh-ed25519 rHotTw 33l1xN6i1ST04iKhrtEdMNyGZyrEdJKjNma+Qat9p34
FgdTjE9NpeR41h49lEbxNAuMTZyvZSVaYyT9PJEn+mU
-> ssh-ed25519 NaIdrw OO+OV7X39UdIhust47t7/JOpWmRtxS5MeOFGkKoaKmw
gaFE7kl9BQWMMolgkc3Q8HtaD2YlV+vRNyO2Q8FM6fI
-> ssh-ed25519 +mFdtQ YahBCDKX2N+mkYLQAlKPpd2ZypIDSMOqzO0+UcCH6wU
IH0q2uTCo8OtF6IQGynKLe7rh4T12kSROuLr2dteoVM
-> ssh-ed25519 0IVRbA Cvpi2cd3tVS3DL18C1OZsA0wHBxCCV2vWEhAu4L3CiE
kIu/v9xU+0xfZ1ntnDY73GvPM6DfdXOK/nWoYp0d9o4
-> ssh-ed25519 IY5FSQ SAp5chelp2ahomzr9SIkaKLHQUA5BnHSwUzWrqJdpUc
CfEu14yiOq1KvU52zqYme6CTjhdykRNuhQIi2dgqKh0
-> ssh-ed25519 VQSaNw ApDOYnJwe1LC5EKjBmSrsXvr73D1bG/MlTzJXEBQWGA
1DtCyWFGlmrRdv01bqOPfL/jufaYLzrtNF2GGHpGuuY
-> ~s)%%W-grease <vT lar/&
qKU8Y2viz71kG8JlAT6i/UWF
--- 3nsxdyr8AeVlK8l2fhXVZldrw5d0gu4+GWadkNHp9Lc
f-kp;<3B>1QŸªaZ¦¦X<02>º”/M@NCD¶€ª<C2AA>¶Þ 4‡ÔÌÑ°vðÑG¯ó7ý@Sôì)?#

View file

@ -1,55 +1,57 @@
age-encryption.org/v1
-> ssh-ed25519 jIXfPA Fg3/a46Mon39gTFeQkn0wtxbwsTzeBUNyEAaNHd27hQ
A78ImPc4lST6bAeBmWiWxoICV4JVCJVAmKuQJySerHs
-> ssh-ed25519 QlRB9Q P1C+ZzsB4oAWkwIq2zcaqoukMMo+yFwk9g6Al32fCWM
G+M9cYya5pX64/oEbvpvha2qbQg4y8frl1i18ZIG6fY
-> ssh-ed25519 r+nK/Q r4kctDRssAYznMRxHJqu7/GoBHyibP4xWdua6KYnpU0
l5KS9reXjT2P5iUCe0swZmK/m9Vg7VvtrK4L/TaEuAI
-> ssh-ed25519 jIXfPA sb7nmDkbVrutjmrkaUKnEfWlU4lWm7qQmD6OWcb/qHo
GdZ/AyZS75kXiG7XbS2x+sz2LCzrEZYL7PpOPZ8g8qc
-> ssh-ed25519 QlRB9Q yZkNZ2UOSM7LJbBU9qWcloWPceARFVFIQoEIAfEUsUw
F6x/QjToEmfLka6LAZxsuOTrKG93EHmFEiiCBiPBdvk
-> ssh-ed25519 r+nK/Q TSh3AgdlSZP4FOVka4/KTa9Z/nuwRRZl3mGw1uKTUhs
fvtdpPW+zsgBHAQrvkWc7heHE56gPZwMEPOpz+fxbh0
-> ssh-rsa krWCLQ
g+zPwOWXgd06McsOCwo2QjAQF7B7t8oCf5eA5K79Om/X63VAqakts3ilwOt9SgZk
yQYa72TP67nyljLO4tPG7u/aKIBIwitGXIIYs+ZNLq9Q0ciWvzVAhsLsfi9yE7AF
I3tnL03fES2v5sbKes/JulBQl+87065YZr67TNWRY9f7a0XQZtfewP0vOxxfJsSy
RYBpztlzAGkaWXtqk2291x7yGhKsQWXmUhxx4KqyPs+KvFm1d4GglalFjhySzCkG
Rc7Flg1ukru3Bd1/fieOWpr3DyDBQ8pZyS4gIUYLB7xcy2t1JI/U3egTQTPBCSgy
PwoWgyQ7lGLRIarTMRa1JQ
-> ssh-ed25519 /vwQcQ FOpyMB3qDu3HpjqsH2VVpInqlvJlZD35y/XNf8RkSXU
ZUxuGbwH1XtE9Da+L7SjfoYinjq0cAwsHsDaz2u5Lrg
-> ssh-ed25519 0R97PA kphmpWyiMaxGmUAH4rvFUjtf0mvseVkPPBlMqKNE3lA
F1cgXiz2UjCHU0MeS5DryvOBtxW/1DIsjw28uQ1nd3A
-> ssh-ed25519 JGx7Ng ejW0Pf2cwsitmVLY8jJUaHZ/6Qhfxa7fnYWoaWYISWk
awOvJwkkFdXuc/ikZTX6512zG91FCi+0n7KaYrULO3E
-> ssh-ed25519 bUjjig 2Gw2h1bx0TRc6CmRjY8GPgtSHRs5rl/lg394JKiWBlA
yvltWHak7XMXBmBmlelE4pF5y1saRaQJmV5IUxzaPyo
-> ssh-ed25519 DqHxWQ gh/5iRZQbmbvwWGtah4b9MK3DNe4+UNiHoXPYnw0sEQ
z/nbwMWAjsBRAzTMSS/9dPzXe1st8mQWiUlZnVmtcCw
-> ssh-ed25519 tDqJRg 0GBbdUBhJxdCICdp6WtgXW2GXfQskuxanzucrKRoBns
AW0jVC8Y8lbhycDgLzPu40kQtgb7OI7fyycLldXknwc
-> ssh-ed25519 9pVK7Q +aOx8mN/HX4F7SdNdJZjMRWiy6SIhqFkWYIo+I24cTI
IQCd6tA+bUDlnW9JsxVE02EBKj38yYDybBe24PxXr68
-> ssh-ed25519 /BRpBQ 8UN2aIKUhi3JLhnOoOs38+a9qx+UhDnV5tYlWVF8d24
FkScXVvXdhFbDGs2Ks0BYfj9nJpAUVPz6OhX7vkOTmI
-> ssh-ed25519 t0vvHQ wDCpgqimo5goEB9Gj5/QGQ98nTEkKy/qHyxPg3NA6Ss
sielO8aAj9ke+nZL+F/zyMUzUPn1LjtKrSkAoMW6YYE
-> ssh-ed25519 E6cGqw zbwhYf2zKgjdymEjG0sVuqQQ/CgCDnSlT72OrAUFSiw
B70dyGna1SRXvf5SLJCiZGeBiXwS9nf3LPTBkG/3fGs
-> ssh-ed25519 EEPmeQ 06lIugc0LbiXVFwbV/6GKbSnlac0ROIVNmgS2Q9MM2A
KTUmdmSXZT2D4oQQpO1qNsdOn5sH70ameln6i7Itb+A
-> ssh-ed25519 +MNHsw OMAS3ud2K1+JGVytqHp9P/i+r4apcb91Dyc+tTudpQ8
V6T+VPSvRZ21nVtDeRkOsuP62bECSGcIm8vO3JADxVQ
-> ssh-ed25519 rHotTw JAc7ZlrFGL+DXq07YrmqY4lS5Pib31RoRTT6o7zJH04
Y1qLn6nWk7FfkrWIiBBd7BHHp5WXHTZfq734DMUlB74
-> ssh-ed25519 NaIdrw ZWfEZfhiXxkq6P6H2kbiVZiiPxH13Cehk+2ti9fYx08
gMlI5Da2cgP7m2pZnHpwJiA7BVVtZgNyZnPkYqhBYHQ
-> ssh-ed25519 +mFdtQ GZQpMTZySkDwDvzpWou8nfvAtYco/v4xF+YU7LYjAAI
deNceVs+tUxiQy2JHcoOd/w6KLYnxuDwrIPoVWJ66Vo
-> ssh-ed25519 0IVRbA S917NcJZ75oqjwGMMwknUFcHYJ2TCkEt331mpOZ5DxI
khoDidhLjy1wIs+qGAfx/qH+t4ROB71QeiiUmnpZ1s8
-> ssh-ed25519 IY5FSQ 2HjLcN2RK/dtAeHXUTu/Du4LiBH4SxpG0d6f7QCa61Y
ql6B8ZZzEaz+Czb0TRT8pF1KD7dhEv0XE9k9IJ9AgBo
-> ssh-ed25519 VQSaNw aAcXlRKzMgw847XeDTqnh+4XvApVIE183gJ2O42eohE
wndgsI85eDc+i+CBPmo2ym5koIvTMS9mOuWdLvLM3Qs
-> lm-grease -KjCZ 46y2wU x1
1iP6
--- MthoOm+rboJhFyo+SKFlPfwT9V3VeaKl5xQ2gs0W2ns
<>ÓÖ"b/‚éðÙ*ü}ýeÁ½g}âLšq
zGŠ~Q.í_àX{½ËìA ùþó²ëöË
J3PRXa0ojIn7T4bsFYnhERqGH4bLSSRyMm4X85iuGkhjldW/qVIs3EsGUeyLKWwY
prvS1uwGY4qGbNgEaj0MhoZobhn9V3oiTAmlepl2tHgwMFqDi0Dagym4DBKhYaym
ezG4GvOSEQOFAhroGK7FscUeziQilfXMAGX88JrJQVM/wz5c2e4ZJmAc5sBzo1mj
D/ko6/KazOokbCO89wjjUYLzwM82aJKHgGZElNKOx2fcpi23ZIlIERbqcTUgxnVS
ifgfSHcggEP47UldzfuH09Lfz8YTDqpebhufWkVhnvdJRYahrkNC+vPqBFXwqK8F
xCVq7a8AkHK1LfDSfm041g
-> ssh-ed25519 /vwQcQ Lclbvme60sst7vG3OT+SK/BWPBJlMPBuijzX5a41xQY
iqI9+kIOEja/uAHP3YxCXOAH94IbVbArTD/zzpEWATI
-> ssh-ed25519 0R97PA tvNEZpxUdaDrLOhuTnp/tuta75aInxweI6u55lts9Fw
hd0OB8wSMhqyLPyy3dshVLjwXk/iqRhW/CK0v9EkMKs
-> ssh-ed25519 JGx7Ng 11MGDeZVC6uXrb6x7xH1DDaUS9hEkY4cgFd6UqwuVWI
HsLCmr749be0M6o8od+cxqEF6fcsqjZttczwNxzU8ZU
-> ssh-ed25519 bUjjig stqKeXyQYQ4rrPUoFAJ07hfIyNp32BbITxUavwsvFR4
oeDwDiSyXD803qDruxzJhgQ9ckfQoisJjVzq/S1CvUg
-> ssh-ed25519 DqHxWQ zGJoJNznwsrVy1hELu5Zd08xPpnCRPms5JUjnuEFB0A
DS1GEfaNSSz8BD0VqYEpEU5retLzy6EAF0ZEMbcZzys
-> ssh-ed25519 IxxZqA qPdVGKGRIErFLQsV8LH8UFElhV32XdTw8PmT2HdQVTE
rZzFPIx7iO1RT6cHu8AeO6FYLMsZn8UMjpqf2K3R9Ds
-> ssh-ed25519 tDqJRg BfjsSuGW3EteYrTAtpVJNrdoNdpGKuYOxHU0ZNBUYUM
wlMXOu/IVNFyghhyd/HnBud8b+VwgqZ3vG8Ceqx2DV8
-> ssh-ed25519 9pVK7Q pPA/PzPfmC4VNLqcqgb1LwfJ68q7LffBAqaRP3YJGmw
RJBpLt3WzJoNxsbAby/XVB0bWlHqw5ZwSHT47PQeJ2M
-> ssh-ed25519 /BRpBQ 9irIejQQmwv9p1n/N82JPcQlRkMgCPsoeqvrEH24QUs
WV1CGQiitxqJOj+2V/AA3R9NevcNKCohiEV4ssDEKwA
-> ssh-ed25519 t0vvHQ vEuLV5mD3BkRQc0h2wg1l4UVj/ORVC5sz1SSqt6gD2Q
voKXQa3QwUt9yN4OD2Kq58iI/pjNJxRZCHYOWr3mojM
-> ssh-ed25519 E6cGqw wqCRvdwHzeZNFG73mnCxP6dY8HFLnUd0q3QMHxC9lTk
D0bqFDUQSgHgwrfluCnJ0FQ8+Bwtho0jGXdF7Mdepj8
-> ssh-ed25519 EEPmeQ cgyB/xXkZYjS9rqDE5saVVWaZCqWA1KieSwupV8sJ3U
6NSDsrPTVP0AfLf2R7SYCu175u3AvSl6/9KyI5ZZr4Y
-> ssh-ed25519 +MNHsw yQYlre+4ZPx0sfdC6iObUu4AyUT/QFCR9nVMDe93PVw
0fqncmEgXK8UFoWr+S45imxC4zi1rYTmzp5aiPWqcJM
-> ssh-ed25519 rHotTw 4P96tfTWGWu6sNpnhQS2pOncXTJDBY/0LIMJH6MZ9ws
HJ9yHwUv613F3Xj0s1l2e1CY2ca9jqrwKvjjrfr+BRE
-> ssh-ed25519 NaIdrw e+Mk++x9jtnYuH76OXRohKUKELiLRW7DBPmD4Kw0uhE
P84wmJvkSnM68JmMS24xrilAsqJ0PzsqgmvWIDh2TYA
-> ssh-ed25519 +mFdtQ YE1hcu3vCq1QHr38JEhU+pLZy+NuxzjSk8O64CYqakI
SNsqng6gjqR8m+KO+RQqt0gbXeGdfHNjvfVncmKD3DQ
-> ssh-ed25519 0IVRbA Zw0Sq8NnSluum9p9RPO906gKnXLPlOAWwjIDuYt5oSQ
6jUZKI7yu6ThE1behgXMqO5beNj2Gap2rGhlSn8vrA8
-> ssh-ed25519 IY5FSQ qo7pkpJsNQ3vdedlPJIfXpmjHwcEyiuu90TEoay0Xz8
zbqt1vojiiYfLnh3ChxHwG9mn3d5D2HrQlUJTlGRB+M
-> ssh-ed25519 VQSaNw nsL5mErC5CJgd4EZKs4ZPb4BINCZMGAhkFr3Z/5vSk0
vk3vhlydKtsWDCUmO6+fj231tEzNp+5vovLO0Wr7Aqs
-> @=-grease bI=Z 'IEY&[|q $&(!B z'y\s855
yNfimzcHFAcfpv7UmfYWh/CAXuUP8mSMxI9w29AI+W7ykCKwWXv9ixLensYRinoo
vmoBfW/f9aQr
--- M790Aym/OBexvX+HZK7Hom3HRpLr8ACf4LzYJdSsR8c
h8ÖÿƒíÃúÑy`¡Œ;ú™ÊÖ攺±TØ“ÉÚ<áD{mÉ,Xô´Š_®§ÅíF"šþ]£¦”"

View file

@ -42,6 +42,7 @@ let
builtins.fetchGit {
inherit (repository) url;
rev = revision;
allRefs = true;
# hash = hash;
};

View file

@ -237,9 +237,9 @@
"url": "https://git.hubrecht.ovh/hubrecht/nix-modules"
},
"branch": "dgnum",
"revision": "f3bfda88cf5ca652baa8577da491f9427d98fe5e",
"revision": "5cc5d497565cae685bd2eb91606016791c3a9313",
"url": null,
"hash": "1jh8wqlz1bv3b5crfhyvqnh4gjjsyzvs3q0iys6iwq0l337ddgvx"
"hash": "09is2zl9570ql1sw250mhpjj8mz2ggy3jx1kvyn6dh2817mv77dc"
},
"nix-pkgs": {
"type": "Git",