mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
feat(bbuddy): evdev barcode scanner client
This commit is contained in:
parent
c3cd9b0564
commit
90901a302c
24 changed files with 847 additions and 253 deletions
|
|
@ -14,6 +14,7 @@ keys:
|
||||||
- &litterbox_osh age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
- &litterbox_osh age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
||||||
- &keycloak_osh age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
- &keycloak_osh age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
||||||
- &kasen_osh age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
- &kasen_osh age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
||||||
|
- &logistics_osh age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
- &kuwubernetes_osh age1q2yjpxlqkfhsfxumtmax6zsyt669vlr9ffjks3dpkjf3cqdakcwqt2nt66
|
- &kuwubernetes_osh age1q2yjpxlqkfhsfxumtmax6zsyt669vlr9ffjks3dpkjf3cqdakcwqt2nt66
|
||||||
- &kuwubernetes_cluster age1nmdv4q8hcyj3s6qevrmc9w2vhd4a8tsj5j5e0cry5utex7vqeprslyjvxz
|
- &kuwubernetes_cluster age1nmdv4q8hcyj3s6qevrmc9w2vhd4a8tsj5j5e0cry5utex7vqeprslyjvxz
|
||||||
creation_rules:
|
creation_rules:
|
||||||
|
|
@ -33,6 +34,7 @@ creation_rules:
|
||||||
- *litterbox_osh
|
- *litterbox_osh
|
||||||
- *keycloak_osh
|
- *keycloak_osh
|
||||||
- *kasen_osh
|
- *kasen_osh
|
||||||
|
- *logistics_osh
|
||||||
- path_regex: 'modules/extern/secrets/.+\.yaml$'
|
- path_regex: 'modules/extern/secrets/.+\.yaml$'
|
||||||
shamir_threshold: 1
|
shamir_threshold: 1
|
||||||
key_groups:
|
key_groups:
|
||||||
|
|
@ -109,6 +111,12 @@ creation_rules:
|
||||||
- pgp: *pgp_common
|
- pgp: *pgp_common
|
||||||
age:
|
age:
|
||||||
- *kasen_osh
|
- *kasen_osh
|
||||||
|
- path_regex: 'systems/logistics/secrets\.yaml$'
|
||||||
|
shamir_threshold: 1
|
||||||
|
key_groups:
|
||||||
|
- pgp: *pgp_common
|
||||||
|
age:
|
||||||
|
- *logistics_osh
|
||||||
- path_regex: 'systems/[^/]+/secrets\.yaml$'
|
- path_regex: 'systems/[^/]+/secrets\.yaml$'
|
||||||
shamir_threshold: 1
|
shamir_threshold: 1
|
||||||
key_groups:
|
key_groups:
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,11 @@ in {
|
||||||
];
|
];
|
||||||
|
|
||||||
# build+cache packages customized or added via overlay
|
# build+cache packages customized or added via overlay
|
||||||
barcodebuddy.inputs = packages.x86_64-linux.barcodebuddy;
|
barcodebuddy.inputs = with packages.x86_64-linux; [
|
||||||
|
barcodebuddy
|
||||||
|
barcodebuddy-scanner
|
||||||
|
barcodebuddy-scanner-python
|
||||||
|
];
|
||||||
samba.inputs = with packages.x86_64-linux; [
|
samba.inputs = with packages.x86_64-linux; [
|
||||||
legacyPackages.x86_64-linux.pkgs.samba
|
legacyPackages.x86_64-linux.pkgs.samba
|
||||||
samba-ldap
|
samba-ldap
|
||||||
|
|
|
||||||
|
|
@ -191,6 +191,20 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"logistics": {
|
||||||
|
"network": {
|
||||||
|
"hostName": "logistics",
|
||||||
|
"networks": {
|
||||||
|
"int": null,
|
||||||
|
"local": {
|
||||||
|
"address4": "10.1.1.63",
|
||||||
|
"address6": "fd0a::40c3:23df:e82a:b214",
|
||||||
|
"macAddress": null
|
||||||
|
},
|
||||||
|
"tail": null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"mediabox": {
|
"mediabox": {
|
||||||
"network": {
|
"network": {
|
||||||
"hostName": "mediabox",
|
"hostName": "mediabox",
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ keycloak:: `10.1.1.48`
|
||||||
kasen:: `10.1.1.49`
|
kasen:: `10.1.1.49`
|
||||||
|
|
||||||
nue:: `10.1.1.62`
|
nue:: `10.1.1.62`
|
||||||
koishi:: `10.1.1.63`
|
logistics:: `10.1.1.63`
|
||||||
satorin:: `10.1.1.64`
|
satorin:: `10.1.1.64`
|
||||||
fire10:: `10.1.1.65`
|
fire10:: `10.1.1.65`
|
||||||
chromecast:: `10.1.1.66`
|
chromecast:: `10.1.1.66`
|
||||||
|
|
|
||||||
158
modules/nixos/barcodebuddy-scanner.nix
Normal file
158
modules/nixos/barcodebuddy-scanner.nix
Normal file
|
|
@ -0,0 +1,158 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
utils,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (utils) escapeSystemdPath;
|
||||||
|
inherit (lib.options) mkOption mkEnableOption mkPackageOption;
|
||||||
|
inherit (lib.modules) mkIf mkMerge mkOptionDefault mkDefault;
|
||||||
|
inherit (lib.attrsets) mapAttrs' nameValuePair;
|
||||||
|
inherit (lib.lists) optional isList imap0;
|
||||||
|
inherit (lib.strings) optionalString concatStringsSep;
|
||||||
|
inherit (lib.meta) getExe;
|
||||||
|
cfg = config.services.barcodebuddy-scanner;
|
||||||
|
toEnvName = key: "BBUDDY_" + key;
|
||||||
|
toEnvValue = value:
|
||||||
|
if value == true
|
||||||
|
then "true"
|
||||||
|
else if value == false
|
||||||
|
then "false"
|
||||||
|
else if isList value
|
||||||
|
then concatStringsSep ";" (imap0 (i: v: "${toString i}=${toEnvValue v}") value)
|
||||||
|
else toString value;
|
||||||
|
toEnvPair = key: value: nameValuePair (toEnvName key) (toEnvValue value);
|
||||||
|
in {
|
||||||
|
options.services.barcodebuddy-scanner = with lib.types; {
|
||||||
|
enable = mkEnableOption "Barcode Buddy scanner";
|
||||||
|
package = mkPackageOption pkgs "barcodebuddy-scanner" {
|
||||||
|
example = "pkgs.barcodebuddy-scanner-python";
|
||||||
|
};
|
||||||
|
inputDevice = mkOption {
|
||||||
|
type = nullOr path;
|
||||||
|
default = null;
|
||||||
|
example = "/dev/input/event6";
|
||||||
|
};
|
||||||
|
serverAddress = mkOption {
|
||||||
|
type = nullOr str;
|
||||||
|
example = "https://your.bbuddy.url/api/";
|
||||||
|
};
|
||||||
|
apiKeyPath = mkOption {
|
||||||
|
type = nullOr path;
|
||||||
|
};
|
||||||
|
user = mkOption {
|
||||||
|
type = str;
|
||||||
|
};
|
||||||
|
scanCommand = mkOption {
|
||||||
|
type = nullOr path;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
|
udevMatchRules = mkOption {
|
||||||
|
type = nullOr (listOf str);
|
||||||
|
default = null;
|
||||||
|
example = [
|
||||||
|
''ATTRS{idVendor}=="1abc"''
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = let
|
||||||
|
scannerConfig.services.barcodebuddy-scanner = {
|
||||||
|
inputDevice = mkIf (cfg.udevMatchRules != null) (
|
||||||
|
mkDefault "/dev/barcodebuddy-scanner"
|
||||||
|
);
|
||||||
|
apiKeyPath = mkIf (cfg.serverAddress == null) (
|
||||||
|
mkOptionDefault null
|
||||||
|
);
|
||||||
|
};
|
||||||
|
localBbuddyConfig = {
|
||||||
|
services.barcodebuddy-scanner = {
|
||||||
|
serverAddress = mkOptionDefault null;
|
||||||
|
user = mkOptionDefault "barcodebuddy";
|
||||||
|
};
|
||||||
|
systemd.services.barcodebuddy-scanner = let
|
||||||
|
inherit (config.services) barcodebuddy;
|
||||||
|
services =
|
||||||
|
["phpfpm-barcodebuddy.service"]
|
||||||
|
++ optional barcodebuddy.screen.enable "barcodebuddy-websocket.service";
|
||||||
|
in
|
||||||
|
mkIf cfg.enable {
|
||||||
|
wantedBy = services;
|
||||||
|
bindsTo = services;
|
||||||
|
after = services;
|
||||||
|
environment = mapAttrs' toEnvPair barcodebuddy.settings;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# https://github.com/Forceu/barcodebuddy/blob/master/example/bbuddy-grabInput.conf
|
||||||
|
conf.systemd.services.barcodebuddy-scanner = let
|
||||||
|
RuntimeDirectory = "barcodebuddy-scanner";
|
||||||
|
apiKeyFile = "apikey.env";
|
||||||
|
prepKeyEnvironment = pkgs.writeShellScript "barcodebuddy-scanner-apikey.sh" ''
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
printf "API_KEY=$(cat $API_KEY_PATH)\\n" > $RUNTIME_DIRECTORY/${apiKeyFile}
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
wantedBy = [
|
||||||
|
"multi-user.target"
|
||||||
|
];
|
||||||
|
environment = mkMerge [
|
||||||
|
(mkIf (cfg.serverAddress != null) {
|
||||||
|
SERVER_ADDRESS = cfg.serverAddress;
|
||||||
|
})
|
||||||
|
(mkIf (cfg.scanCommand != null) {
|
||||||
|
BARCODE_COMMAND = cfg.scanCommand;
|
||||||
|
})
|
||||||
|
(mkIf (cfg.apiKeyPath != null) {
|
||||||
|
API_KEY_PATH = cfg.apiKeyPath;
|
||||||
|
})
|
||||||
|
];
|
||||||
|
unitConfig = {
|
||||||
|
Description = "Grab barcode scans for barcode buddy";
|
||||||
|
ConditionPathExists = mkIf (cfg.inputDevice != null) [
|
||||||
|
cfg.inputDevice
|
||||||
|
];
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
inherit RuntimeDirectory;
|
||||||
|
Type = "exec";
|
||||||
|
ExecStart = [
|
||||||
|
(getExe cfg.package + optionalString (cfg.inputDevice != null) " ${cfg.inputDevice}")
|
||||||
|
];
|
||||||
|
ExecStartPre = mkIf (cfg.apiKeyPath != null) [
|
||||||
|
"${prepKeyEnvironment}"
|
||||||
|
];
|
||||||
|
EnvironmentFile = mkIf (cfg.apiKeyPath != null) [
|
||||||
|
"-/run/${RuntimeDirectory}/${apiKeyFile}"
|
||||||
|
];
|
||||||
|
Restart = "on-failure";
|
||||||
|
User = cfg.user;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
conf.services.udev.extraRules = let
|
||||||
|
rules =
|
||||||
|
[
|
||||||
|
''SUBSYSTEM=="input"''
|
||||||
|
''ACTION=="add"''
|
||||||
|
''KERNEL=="event*"''
|
||||||
|
]
|
||||||
|
++ cfg.udevMatchRules
|
||||||
|
++ [
|
||||||
|
''SYMLINK+="barcodebuddy-scanner"''
|
||||||
|
''OWNER="${cfg.user}"''
|
||||||
|
''MODE="0600"''
|
||||||
|
''TAG+="systemd"''
|
||||||
|
''ENV{SYSTEMD_WANTS}="barcodebuddy-scanner.service"''
|
||||||
|
];
|
||||||
|
rulesLine = concatStringsSep ", " rules;
|
||||||
|
in
|
||||||
|
mkIf (cfg.udevMatchRules != null) rulesLine;
|
||||||
|
in
|
||||||
|
mkMerge [
|
||||||
|
scannerConfig
|
||||||
|
(mkIf config.services.barcodebuddy.enable or false localBbuddyConfig)
|
||||||
|
(mkIf cfg.enable conf)
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@
|
||||||
inherit (lib.attrsets) mapAttrs' nameValuePair;
|
inherit (lib.attrsets) mapAttrs' nameValuePair;
|
||||||
inherit (lib.lists) isList imap0;
|
inherit (lib.lists) isList imap0;
|
||||||
inherit (lib.strings) concatStringsSep;
|
inherit (lib.strings) concatStringsSep;
|
||||||
|
inherit (lib.meta) getExe;
|
||||||
cfg = config.services.barcodebuddy;
|
cfg = config.services.barcodebuddy;
|
||||||
toEnvName = key: "BBUDDY_" + key;
|
toEnvName = key: "BBUDDY_" + key;
|
||||||
toEnvValue = value:
|
toEnvValue = value:
|
||||||
|
|
@ -166,7 +167,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
conf.systemd.tmpfiles.rules = [
|
conf.systemd.tmpfiles.rules = [
|
||||||
"d ${cfg.dataDir} - barcodebuddy nginx - -"
|
"d ${cfg.dataDir} - barcodebuddy ${config.services.nginx.group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
conf.services.phpfpm.pools.barcodebuddy = {
|
conf.services.phpfpm.pools.barcodebuddy = {
|
||||||
|
|
@ -219,19 +220,26 @@ in {
|
||||||
extraConfig = cfg.nginxConfig;
|
extraConfig = cfg.nginxConfig;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
conf.systemd.services.bbuddy-websocket = mkIf cfg.screen.enable {
|
conf.systemd.services.barcodebuddy-websocket = let
|
||||||
wantedBy = ["multi-user.target"];
|
phpService = "phpfpm-barcodebuddy.service";
|
||||||
environment = mapAttrs' toEnvPair cfg.settings;
|
in
|
||||||
unitConfig = {
|
mkIf cfg.screen.enable {
|
||||||
Description = "Run websocket server for barcodebuddy screen feature";
|
wantedBy = [phpService];
|
||||||
|
bindsTo = [phpService];
|
||||||
|
after = [phpService];
|
||||||
|
environment = mapAttrs' toEnvPair cfg.settings;
|
||||||
|
unitConfig = {
|
||||||
|
Description = "Run websocket server for barcodebuddy screen feature";
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "exec";
|
||||||
|
ExecStart = [
|
||||||
|
"${getExe config.services.phpfpm.pools.barcodebuddy.phpPackage} ${cfg.package}/wsserver.php"
|
||||||
|
];
|
||||||
|
Restart = "on-failure";
|
||||||
|
User = "barcodebuddy";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${config.services.phpfpm.pools.barcodebuddy.phpPackage}/bin/php ${cfg.package}/wsserver.php";
|
|
||||||
Restart = "on-failure";
|
|
||||||
StandardOutput = "null";
|
|
||||||
User = "barcodebuddy";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
mkMerge [bbuddyConfig (mkIf cfg.enable conf)];
|
mkMerge [bbuddyConfig (mkIf cfg.enable conf)];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
27
modules/system/exports/barcodebuddy.nix
Normal file
27
modules/system/exports/barcodebuddy.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
gensokyo-zone,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (gensokyo-zone.lib) mapAlmostOptionDefaults mkAlmostOptionDefault;
|
||||||
|
inherit (lib.modules) mkIf;
|
||||||
|
in {
|
||||||
|
config.exports.services.barcodebuddy = {config, ...}: {
|
||||||
|
nixos = {
|
||||||
|
serviceAttr = "barcodebuddy";
|
||||||
|
assertions = mkIf config.enable [
|
||||||
|
(nixosConfig: let
|
||||||
|
cfg = nixosConfig.services.barcodebuddy;
|
||||||
|
in {
|
||||||
|
assertion = config.ports.screen.port == cfg.screen.websocketPort;
|
||||||
|
message = "screen.websocketPort mismatch";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
};
|
||||||
|
defaults.port.listen = mkAlmostOptionDefault "lan";
|
||||||
|
ports.screen = mapAlmostOptionDefaults {
|
||||||
|
port = 47631;
|
||||||
|
transport = "tcp";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -3,10 +3,20 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.modules) mkIf mkDefault;
|
inherit (lib.modules) mkIf mkMerge mkDefault;
|
||||||
inherit (config.services) barcodebuddy nginx;
|
inherit (config.services) barcodebuddy nginx;
|
||||||
name.shortServer = mkDefault "bbuddy";
|
name.shortServer = mkDefault "bbuddy";
|
||||||
serverName = "@bbuddy_internal";
|
serverName = "@bbuddy_internal";
|
||||||
|
websocketPath = "/incl/sse/";
|
||||||
|
websocketLocation = {
|
||||||
|
proxy = {
|
||||||
|
enable = true;
|
||||||
|
websocket.enable = true;
|
||||||
|
};
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_read_timeout 1d;
|
||||||
|
'';
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
config.services.nginx = {
|
config.services.nginx = {
|
||||||
vouch.enable = true;
|
vouch.enable = true;
|
||||||
|
|
@ -39,6 +49,12 @@ in {
|
||||||
proxy.enable = true;
|
proxy.enable = true;
|
||||||
vouch.requireAuth = true;
|
vouch.requireAuth = true;
|
||||||
};
|
};
|
||||||
|
${websocketPath} = mkMerge [
|
||||||
|
websocketLocation
|
||||||
|
{
|
||||||
|
vouch.requireAuth = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
barcodebuddy'local = {
|
barcodebuddy'local = {
|
||||||
|
|
@ -49,15 +65,17 @@ in {
|
||||||
upstream = mkDefault nginx.virtualHosts.barcodebuddy.proxy.upstream;
|
upstream = mkDefault nginx.virtualHosts.barcodebuddy.proxy.upstream;
|
||||||
host = mkDefault nginx.virtualHosts.barcodebuddy.proxy.host;
|
host = mkDefault nginx.virtualHosts.barcodebuddy.proxy.host;
|
||||||
};
|
};
|
||||||
locations."/" = {config, ...}: {
|
locations = {
|
||||||
proxy = {
|
"/" = {config, ...}: {
|
||||||
headers.enableRecommended = true;
|
proxy = {
|
||||||
redirect = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
fromHost = config.proxy.host;
|
redirect = {
|
||||||
|
enable = true;
|
||||||
|
fromHost = config.proxy.host;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
proxyPass = mkDefault nginx.virtualHosts.barcodebuddy.locations."/".proxyPass;
|
${websocketPath} = websocketLocation;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
94
nixos/barcodebuddy-scanner.nix
Normal file
94
nixos/barcodebuddy-scanner.nix
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.modules) mkIf mkDefault;
|
||||||
|
inherit (lib.strings) optionalString makeBinPath;
|
||||||
|
inherit (lib.meta) getExe;
|
||||||
|
cfg = config.services.barcodebuddy-scanner;
|
||||||
|
user = "barcodebuddy-scanner";
|
||||||
|
notifyEnv = ''
|
||||||
|
export PATH="$PATH:${makeBinPath [pkgs.libnotify pkgs.dbus pkgs.jq]}"
|
||||||
|
export DISPLAY=''${DISPLAY-:0}
|
||||||
|
export XDG_RUNTIME_DIR=/run/user/${toString config.users.users.${cfg.user}.uid}
|
||||||
|
export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
|
||||||
|
'';
|
||||||
|
notify-send = ''
|
||||||
|
timeout 1 notify-send "$@" 2>/dev/null || true
|
||||||
|
'';
|
||||||
|
scanCommand = pkgs.writeShellScriptBin "barcodebuddy-scanner-cmd" ''
|
||||||
|
set -eu
|
||||||
|
BARCODE=$1
|
||||||
|
SUBMIT_URL="''${SERVER_ADDRESS}action/scan?apikey=''${API_KEY}&add=$BARCODE"
|
||||||
|
${optionalString config.services.xserver.enable notifyEnv}
|
||||||
|
|
||||||
|
notify-send() {
|
||||||
|
${optionalString config.services.xserver.enable notify-send}
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Scanned barcode: $BARCODE" >&2
|
||||||
|
NOTIF_ID=$(notify-send \
|
||||||
|
-p \
|
||||||
|
--expire-time $((10*1000)) \
|
||||||
|
"Scanning barcode..." \
|
||||||
|
"$BARCODE"
|
||||||
|
)
|
||||||
|
|
||||||
|
CURL_DATA=$(${getExe pkgs.curl} -fSsL "$SUBMIT_URL") && CURL_RESULT=0 || CURL_RESULT=$?
|
||||||
|
printf '%s\n' "$CURL_DATA" >&2
|
||||||
|
|
||||||
|
if [[ $CURL_RESULT -ne 0 ]]; then
|
||||||
|
notify-send \
|
||||||
|
-r "$NOTIF_ID" \
|
||||||
|
--expire-time $((60*1000)) \
|
||||||
|
"Barcode submission failed" \
|
||||||
|
"$(${config.systemd.package}/bin/journalctl -e -o cat -n 8 -u barcodebuddy-scanner.service)"
|
||||||
|
elif [[ -n $CURL_DATA ]]; then
|
||||||
|
if RESPONSE_RESULT=$(jq -er .data.result 2>/dev/null <<<"$CURL_DATA"); then
|
||||||
|
notify-send \
|
||||||
|
-r "$NOTIF_ID" \
|
||||||
|
--expire-time $((30*1000)) \
|
||||||
|
"Scanned Barcode: $BARCODE" \
|
||||||
|
"$RESPONSE_RESULT"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
notify-send \
|
||||||
|
-r "$NOTIF_ID" \
|
||||||
|
--expire-time $((30*1000)) \
|
||||||
|
"Scanned Barcode" \
|
||||||
|
"$BARCODE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit $CURL_RESULT
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
config.services.barcodebuddy-scanner = {
|
||||||
|
enable = mkDefault true;
|
||||||
|
# TODO: use access and possibly int for the URL?
|
||||||
|
serverAddress = mkDefault "https://bbuddy.local.${config.networking.domain}/api/";
|
||||||
|
apiKeyPath = mkDefault config.sops.secrets.barcodebuddy-scanner-apikey.path;
|
||||||
|
user = mkDefault user;
|
||||||
|
udevMatchRules = [
|
||||||
|
''ATTRS{idVendor}=="1a86"''
|
||||||
|
''ATTRS{idProduct}=="5456"''
|
||||||
|
];
|
||||||
|
scanCommand = mkDefault "${getExe scanCommand}";
|
||||||
|
};
|
||||||
|
config.users = mkIf cfg.enable {
|
||||||
|
users.${user} = {
|
||||||
|
isSystemUser = true;
|
||||||
|
group = user;
|
||||||
|
uid = 914;
|
||||||
|
};
|
||||||
|
groups.${user} = {
|
||||||
|
gid = config.users.users.${user}.uid;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config.sops.secrets.barcodebuddy-scanner-apikey = mkIf cfg.enable {
|
||||||
|
sopsFile = mkDefault ./secrets/barcodebuddy.yaml;
|
||||||
|
owner = mkDefault cfg.user;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -11,6 +11,7 @@ in {
|
||||||
config.services.barcodebuddy = {
|
config.services.barcodebuddy = {
|
||||||
enable = mkDefault true;
|
enable = mkDefault true;
|
||||||
hostName = mkDefault "barcodebuddy'php";
|
hostName = mkDefault "barcodebuddy'php";
|
||||||
|
screen.enable = mkDefault true;
|
||||||
reverseProxy = {
|
reverseProxy = {
|
||||||
enable = mkDefault nginx.virtualHosts.${cfg.hostName}.proxied.enable;
|
enable = mkDefault nginx.virtualHosts.${cfg.hostName}.proxied.enable;
|
||||||
trustedAddresses = access.cidrForNetwork.allLan.all;
|
trustedAddresses = access.cidrForNetwork.allLan.all;
|
||||||
|
|
@ -38,7 +39,7 @@ in {
|
||||||
phpfpm-barcodebuddy = {
|
phpfpm-barcodebuddy = {
|
||||||
inherit gensokyo-zone;
|
inherit gensokyo-zone;
|
||||||
};
|
};
|
||||||
bbuddy-websocket = mkIf cfg.screen.enable {
|
barcodebuddy-websocket = mkIf cfg.screen.enable {
|
||||||
inherit gensokyo-zone;
|
inherit gensokyo-zone;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -46,4 +47,9 @@ in {
|
||||||
sopsFile = mkDefault ./secrets/barcodebuddy.yaml;
|
sopsFile = mkDefault ./secrets/barcodebuddy.yaml;
|
||||||
owner = mkDefault nginx.user;
|
owner = mkDefault nginx.user;
|
||||||
};
|
};
|
||||||
|
config.networking.firewall = mkIf cfg.enable {
|
||||||
|
interfaces.lan.allowedTCPPorts = mkIf cfg.screen.enable [
|
||||||
|
cfg.screen.websocketPort
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,120 +9,129 @@ sops:
|
||||||
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJYkVhMFBvL295L1YzVTFH
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOeHdUUXF0bFRBMitCNlZP
|
||||||
THJET1dUUmdoK2J1cnhtU0dNQ2FoYmhKcUZvCnAzMXlYVXVqbHFUSzNZbXNwWFBE
|
MnpwOEl6MXoxa1hOK2lUNTN4WlhmOE9oeDIwCmE1aWFNR3l5ZVJtdnE5SXJwdStT
|
||||||
Y1dJSHI3Zm4rQlkxd1cwTVc0NC9VU00KLS0tIGJDekc0aTMvNXR6WTlORmhnSy9G
|
SmVic3Q0NytuOUVnenlTU2NONm4xSm8KLS0tIFk1V080VmZQc0xKbzMzOXhVdS8z
|
||||||
d3JiSlZ4M0JvcENMS2p0MXNjSzFNOHMKu3Gycd8du0uf8mjVGN/coZT48YZMfz0U
|
aHdwajZIdVNaWFVsTXVmdENaVEg0ajgK5kcDNpT9/PkUBRF7F3pmB2N1cdxLa5L7
|
||||||
Vqh57J9/w6mBX/3tukA06WcrUoghNLCIyBLRrCqKNjFD5jjbkVnaqg==
|
m6W5mgasL3qTAE58AjunZTxPCXt162/Qh/zHuWCb7NJtXfm6Kaur0w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWazNTUGZpYjk5K0RvU2Qv
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuaGJFUVN0RW1zWlZoZzNm
|
||||||
S1NwY1JxcVNFSW1Cc1dZVWhrMkpSODBWbFRJCjIwcFRwSkU1dExDKzVEd3NFc0hk
|
VVFaOWRDd2tDY0t0TVowQmZXbGpKdTRYaGxrCnhySW8vOWNMY0QzK0w1MC9pbWF3
|
||||||
Ri9jbGNIeWlMOHFFOG1ROXpUNC9MZ0kKLS0tIHVkMVkrSytwSlcyZTZnM01NcFVj
|
NFY3UDVFYTBsczRwRDM0bE40enZpOW8KLS0tIFYyWWYzU3RNOEowMjJoR2FEYnBz
|
||||||
M3ZQZ2hNc3ZvM1Q5UitHTkV6bVlEYVEKfSOP04BRzkLx+2AurZhyxWNLfYYSiAl5
|
cllUS3hVcTJLbmxWSFp6T2licmxWcEUKZWBQvHoXq3yYrUzNeUNj4RYmWHVHtCfT
|
||||||
2b3PDltHFQPIBkEebZOuGHfAk2vR+J+Cmt+GeTqnUBSiqsZ+Dflg9g==
|
BZYEceCVd4UD9OChzNvzb9+6RUHnyNppyPDJU59JQkF+2GQ83PTm9w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMRGJTdmdxVWg5UG9zVFZP
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCQnA0bDBVV2Z2eWswMDBX
|
||||||
cnRkUGRITXlmL3Z3ZHVwMmlCci9BNVAyM1ZBCnp3dHRyd0lKdUQ1eHFsdUNRK3BB
|
K1JuTllXS0JYRjErVmlXTi9MZHJqL1lNMERRClMzempwMThHbjIrbnJCZlRjUFpO
|
||||||
ZDUvNzV0Z3VBRy82YnhMaE5pRmlNbzQKLS0tIHJlSEgyTUpYRVcrZWpYdSs3Wkdm
|
TXJETGhLY1VsVUxFUFQ2VHVPTkJkRnMKLS0tIHhhY0VLK3hPY0w0aFVtMzE5NlJl
|
||||||
citpcm9IblFRdWdhVkhIVGlQR2VFWkUKEXg6hX4wuaUAsjuVO6IachtJtSZDzE0+
|
MmhteWhvNjZUOXlheWFPSEU4aDJHMVUKesm1vP+d7BeWFlzwmo3amN+mchvsMSZ7
|
||||||
03k189xkLnJPfr6LHhEtiJzOyUtn5/vqx0W1Lkt0klmK7B1KrKqUQw==
|
LIlImbqoVG/5d41TZcSA5YQL5m5NKX+bB7AWlWgcs1pffDR5L2+AQA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxOUMyMGpiNmV6Y0Rwb1RL
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQblE3U21FcVFNUy94S2pi
|
||||||
WU15bE9mQkFEaWxwQUVqeHg3VmpzWWFUdzM4ClFQTVpicWVSVURCLzFMR01ieUJu
|
S2VqWlZhRkZrKzI0SnB3d3hSRU1CNHc5cFdRClZHbnVDMnZneW5SSDdjNzNJNlRJ
|
||||||
S3FDQTlWTWZZdnRUZERqSm5BV25UYUkKLS0tIHIxWWpudVhLVE5YUGtHY2d2ZzJV
|
cEVsdjJUNEtXSjE3NXY5UmltY0djak0KLS0tIFNEQXZZRTdKWXQ4TysxdTRNU2ZQ
|
||||||
QXIzR20wMFB6OWQ3WEtIRUVlTlNheUEKInMjMoPI80gdp8kf3Wc5Qdz3DtDPKinu
|
cGczbWJRZzlybkdudDBXQm5kb3BvcU0KncP4sZInviyjOZQtW6049SAsdpfqljws
|
||||||
KNQk1gJUxr2NtORSB7ZkkzH0EUqcNnwQja0ecolBo/btGj3I6UeRFw==
|
+2B5sfFq8Pp3WF+G6CLyLnAyGfB6lwLji2ISD6+bNuQnHQ3ur1TT3g==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0S1pWcSsvS0x2aEs4R2lC
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmUDBlYlRqd05MREtxd0tE
|
||||||
YXN0dGZuMmkvZzVCQXVyYUlsK0c0UTBtTFZNCkk2VUsyazEvblJtb0dGdzZwTjhu
|
M2U2bFFzWE1zRk9HQldvM3NRVzgyNndtV3lJCkp4UzVsMi9QUklqSldjOG1qNkFw
|
||||||
V2RDaDdpTVFEMzlRQkl3REV0ekZha1kKLS0tIFpEeDdJSFJSS2lNYVo2Rm5nQWJD
|
Qnk4U2pSUERiZDk2WFpLZW80ckRtNVEKLS0tIEVGOUNYRjhGeXJmUmY5ZytJOFpB
|
||||||
S3o1WXh3ODZkN0pqRW50eUdMbWk2UDAKJL92IRFWli5UuVW9kvmO+vtnXiLGbPHr
|
UXNrYjFyREZIbmFzT21CekVmcXM0Zk0KowJTfkwIHUt8JO3a4p8fMKrypGOFK1BX
|
||||||
pO8Z19/8ugOo/BDlIirVDhSedYjrkEQQNZIbLTshaogxh9eynmAbpw==
|
MCIBcxy7dOjYJsQh/NACcorNizatzKLiTHp1BpyI+twu7xPvPXqZmw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKRTVhTlNManBnTjllRW83
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCQ1JFNUh5WC9NQysvUk1z
|
||||||
WVZSWHY2NVpYNXFxN1dPUkdnZW5mY0RCVEdVClBBZ2txd3VKTTFraVBqNEJFbysw
|
ei9FeVNnYkIvMG5mQVk1YlBuVEtPTWhJNmlZClFxZmpTUjJPL01ZMGJyNDc5TnF0
|
||||||
V1FFK1VhQ0YvMm5qS3hOaFZjMzBSWVEKLS0tIGhGWVM5QzBRTmxuSEdTNUxFRTh3
|
R1pNQXU2VFY2bmREeUJnSU8zeVpTR2MKLS0tIFlhUnVYVzY4NTMwdGV1Smt2NFBL
|
||||||
Y0xsZmo0RW5QVUJkKy9tUDRoMWJMQjgKr9jxjvTI71kvJ7Eexhhq8Fdu0fDwUqDb
|
SEd5SmxGbmp5Z21La3JTMVErZlBTVjAKxZWxpX/yMqCouGfKchQkTEZ21+UjsuZ1
|
||||||
TRcVTP1xgUeMYnEgq/w4GVZcZY+aLMiPdph5FKikoGo3EGmwJjIMyA==
|
9LIywgZEwVTUtNwt/gNnG5cKofCgZCoTxdbcnihc394RPFZCQ5XGNQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0NHAyT2tJcTJpaDMrRFJJ
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMFdBRGh2VmU1ZzlOQkN5
|
||||||
bmJHcHhLQWRNQ2JXWldqTWxvdHdlL2dmWTMwCnMrUHMwZUNzM1Q5a0FGTTM5UHB1
|
U0tpUVEzWlQyZzJqNEhkZmIzU2FpSlFOZTJjCkdTUnRZSE9oOVF0dnNma0ZJUnJU
|
||||||
dDNpVEhlMzUyd3VGdHpnQS9GQUpvUUEKLS0tIHh2MmRROGpyY05zdlNSamh1MjlR
|
NHFIWDVyNGNNTHh2cWdGK3U0U3VuQlEKLS0tIEUvV1puWUIwOTNwQjQ0Z2xHa1pP
|
||||||
cWZrb20xQkY3ck5aQ3kvaFM2ZTdEWGsK7XB0Nkx0PRT32J2wWlCBG0Ms0yD+x578
|
NlBXTXdtZjVrcW1tZkcvNzVFTUM5eFEKkEPbMLQ7LlzztCHIHnRti29EZObV4iK8
|
||||||
rJ62h7s/diH/Al+I1+VqOdtEIrW/2R8XzRzXy6vaXAWiRKYFVjOw0A==
|
mzM1B/boga9QbNV6yvZBsdlCbvew7oDwO2IP2QmRAgxk3wr6mfvkOQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0eVgyOFRVODJWTUQ2N0RI
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCUTJVKzFSUml2aWYyTHkz
|
||||||
ZklrSGdPNmljQkJPc3lIUitSNWxDWkNxc21NCnpWMmY1S1lHR1loVWQ5dGFMMlJS
|
YzhSSEppY1BVbGYwTlhxbCtmbitZd0g3aTAwCm5zMmdHajFVaml1ZjA0bWlaRnAv
|
||||||
cW9IVkE2Mk9vRDhPOThSekF4VnJ1dUUKLS0tIFd0TkNSYWxBZ2RaNE14UnlBOWtK
|
WTBaK0lqNi80TDEvbUFrcWR3TjJJdTAKLS0tIGxhVWlJamtOVTZKZ1d6WWlVcmNs
|
||||||
WFlwemFRK2NYQm5IczdaY3UzMUxLUk0KBGPbsH3ufRLCFIXUsFrRuVCIC5C/HJ3v
|
NGZNRTBMS0ZiQmdUNHR5UWNid1FRQjAKlMS9gsktS6iJsuVtzQ0ahH3x4pJhQoUg
|
||||||
xWfpI4GnRBAl25RR0K99AvlNl3XneEQvVcyLVyPsxVLIoUQzEBEH4g==
|
xrZbsvAqze8CVeflijuRpjKEaCMX4dcJBtb/WXG4uZ9BRbqwh4CAjQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnYko2dXNxN3R1bUhnRkZ5
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXR1plZHZGSnFsVmgzUmox
|
||||||
eWx5dmtCd3BJdVN3WWxhUGpEdEdaY1VyMm1nCkI0K3hmQk9qVVlrWWRVNXpoVnNq
|
K2YyZGt1MHpNeWY3ejcxVXVkRjNGQUp4TFVzCmJQWExWTlhVYTZaTm1UallnZmN6
|
||||||
ZHo4dnRzS29aRDJrdUs0a0VwV0NrMXMKLS0tIEdkWUdpdnRjUjVTVEJlcGozVmpi
|
YXFTQVIwRUE0dFovU29UL0xtdVpHY00KLS0tIDBBb3Q3QTdzdmdpek1KNTR3VC8r
|
||||||
eGx5YUpDMUxWVVlPdk1RRm9oaHNDbGMKXodkdcuKNpQrSvQ/2kkiEGWidmRtp+3/
|
d3l2R1pUQmNWY1pSZVo5M3o3STY4aVEKb1dpYgaDEF2zKWj45YSQH3z3PKbEHeQG
|
||||||
bDnyhWgRTq/bGVRmuK6VAdkN/mL1GBKvz/RMMFVdK4hDcFET7u5dug==
|
y9ncAS9i8IuDr9BvkrsyRKebcYnDMpmAC6NofIrO1eheLAM6WFj85w==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJRCtRWGNmWG9VNVJlNXZy
|
||||||
|
UkRWaTdLd0xuVGVZOHZBZDFYTlZGaE84VGowCm8ySXdZdnhIUW1HUHhxOEE4Q0Mx
|
||||||
|
QmhUenQ4MW9HR3lkVk5kZm90dTQvZUUKLS0tIHBpbUxDK2NhckZOblRkSStGd3pq
|
||||||
|
UmF0NmJvZVhHWG9Ia0VnVFh4Z0d6YjgKsJ1N6frQwEtzFMaks6p67uqWkqjAik8X
|
||||||
|
xHUAjVLSWK+xvcvJG0bRTSdyzzu79BXMytsa+U3H7hixiAvaC7047w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-05-01T16:50:29Z"
|
lastmodified: "2024-05-01T16:50:29Z"
|
||||||
mac: ENC[AES256_GCM,data:humfCS9LaB0pcAObLZH+8huTED1/eW6ZtR7PVZ33JPrTJhc9ttorbsfsVPGjsd52I0RT4cNNk9iRDGSqNvgCP+BdvOyILDRA0kxKvF3XLX76Iw0v5jWlPBUts0Hi5ch9Mzn5abN/w3E/5D7z1OMQN11kroJtVpnQMdPDza/qK4g=,iv:UNHN2BYkC0AShqtB7gRLIBYqYwASqVbYhA2RC1dSWYE=,tag:Qo/1LczVrlTHFvWkCG3GIw==,type:str]
|
mac: ENC[AES256_GCM,data:humfCS9LaB0pcAObLZH+8huTED1/eW6ZtR7PVZ33JPrTJhc9ttorbsfsVPGjsd52I0RT4cNNk9iRDGSqNvgCP+BdvOyILDRA0kxKvF3XLX76Iw0v5jWlPBUts0Hi5ch9Mzn5abN/w3E/5D7z1OMQN11kroJtVpnQMdPDza/qK4g=,iv:UNHN2BYkC0AShqtB7gRLIBYqYwASqVbYhA2RC1dSWYE=,tag:Qo/1LczVrlTHFvWkCG3GIw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-05-13T20:30:26Z"
|
- created_at: "2024-05-17T23:51:12Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA82M54yws73UAQ//SLtt3YZ5qSrcqiT5zalPS3UXskojlZlc0vlJmKN/m3Ht
|
hQIMA82M54yws73UAQ/+P7O9U0ST8CQWff1LrD6ChJA9c1F5z3/2TYCNvxy2PZrs
|
||||||
iLPt2rxNqNkKE4EWUc1AT5s08aushPDEPhILcLMoKO9EzruLS2+KlRRfYRgVEa+N
|
62r9/pS7oH7i9cTFiEiEB7trv5xcoTSV4wkdiOQEA503rWfhePsSj437sQ3Y3GY6
|
||||||
Iu7xjyvOvtpb1Wg8srgfQbgH4GcKueiQjMOiQD8hcfvm3gml6iFYMqGEl93dcJDR
|
ofvEgSpBmOiJXyEHqSGbm9zQM0OOmRZwesKVNbttzWfpDTfAkDUvno8F+nexdwai
|
||||||
15EOL93nG0nEs/StZr4ZR8jSuF3h2MwsYjJvHBuvyMgn9a4wSB5PCBXHmph9RhjK
|
OcyBR+woVvlCpG/JmM/DL0fvsTYsaa9CGSlX6v5Gl3miIyAEwZuSVrXH/yCjHUXo
|
||||||
V89q2L6VROdoDXKtTbPveqktEcTBExRO4twnvAnDp4Y16KamPV+sf0RPi1lKDP3Z
|
qH7BZbO9PX4XRiTsDrxvAa2lnigfbXGFaCugJYAraBOANF0tDYdqvuoDdnHzPXAj
|
||||||
n0SFg3yhJjlIYPoOzCulDNTZjEHDNaYNMw60juPW5tLxDkZYRiZACvLYvNGhm2ke
|
cgOWzXLKZg54LyIyIpB3BtPqgku6Eiv1qrqCscR1UhwhzooJlQxBccejBsdI3lgj
|
||||||
l00MiK4YRX8pQeVk/TiAvLh32jW99X/znbGrL+JEfjEJlUikWVgyfGEccqocsG9P
|
wL4/Ox5Qze22EiTfB7den1F7fcKzg4YV5EvN6KYMjJ0BsKBR3BWceK8VAs/KYOL9
|
||||||
cPTx/ErxDUa74tgCQXxBnU+tFTRYDSXcvqalfD81/1KQtiafu25oAb7qu7CUtFaQ
|
amg8jVr7GevfEnE7UiHzn5poIoOumV+dNgWAHK7aaEvLfp5wGMpCp6F5wpFK7RvC
|
||||||
bMw7KsjND6A8zyJfClZMho4rzc551rQF6/xMBEAnyqs5gSkctJ/v01lAKzztHZCe
|
JHfn2ACyN7XpDkCrKyg6dRRDpa/TvOdayydVCBeZN14oVdhgArm3zeDx79+WD1kD
|
||||||
M2+5acWSUKCx2YnKAiQG+3jtRx6LFKS/lmvP3uyALndc6lJnmvE484RrY1lHDfdE
|
bSdBzd04iYQ09P1Xm8N5q7KAh3pl7f9HRe+sYalkUVpUOD3nGGVEm8R/ePi35Kee
|
||||||
xpJcHK5X9cTwip8kK5+GrHbZz+zv/CiqnmiwQpNG7wlZ/WsG6HB6aCHHuezWsmfS
|
kQ04PgshsUyuMiaA1PaaiDYPyMzBkZmqbLH94eQ0AJWJuqFFve3lsvSFnGC9tyfS
|
||||||
XAHPTUROKnRoJz3W9q8RI0N/+H24vrIIPydMBw0JQn5Yws2TmYhCloBM622XQ/OI
|
XAFX6O+T+XAzlxwPwngvkeb73cT+Xh79kc+qvSsXStPE10ZmGGA8av3TKw7bG9nF
|
||||||
G61pUiglAcPbs62ftar282z4aqFHrV29xgrLNN6D303u08QdwGkacWDZCVP6
|
B2Vlv6VXxqPNwV5a7NbnlQF0rDa5knZUWN0BSp/OvfThf1uXOCWEsu1XNFxE
|
||||||
=4xiQ
|
=gnsY
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: CD8CE78CB0B3BDD4
|
fp: CD8CE78CB0B3BDD4
|
||||||
- created_at: "2024-05-13T20:30:26Z"
|
- created_at: "2024-05-17T23:51:12Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQEMA2W9MER3HLb7AQgAlSL/7pQDNiT95e8VWs6LimiQVULZkVY7uN8uIuNmBk9U
|
hQEMA2W9MER3HLb7AQf+KemMaAwgglqOOKqiGVU479l8Ilw3TJdLDMBqigbKGW7I
|
||||||
9+wMLQooqjSB06OCaaBSCVVPJZgwCnwV5xaBqIRmSaXZdY0zkBhR6RFc/iLyXQbl
|
X0w37IELtw1LTvgo8cjWjkPM2gN7Fc61/2hrLwaqq+2uaG9ClDWNBcCf+QAN2Wty
|
||||||
kd/AmS+9aTl4vAtCm08L2Un0zx0MBGVZ9Qw2ouOpFizRrX6TvaYxws0D+ycAvX4M
|
01Gv96BQJkwRzAUIxZUWp2qHJn4E/TOxpcVeR8laxvfEnLl/QzcGhaqydyESSXdX
|
||||||
b21hS2pCjbSIOLbGS3HlSLCqujlRxI7hcGbOIfCqHt4nWt69JOU3sQBSXEltBop4
|
EsI4aKIv1NgtWEzt9ZFFWI9TanVUahicq5Igi/gXZDrWxElHLurmH2DdqKeED7cd
|
||||||
CjED2cY/bjvLQ58CGSrthOu95pql0dl4uOT49j6AROWiumm6bIsTmrYHukb1QsVO
|
k4lizTCIrPYJmc9T8qK7CCdSOIIZcR7j6oZl+tC0O83TEpij/cy0Dalg0bffE2NZ
|
||||||
GadTjeiCXUKsDhNRtscgrVVIZB5yWrhOX9R/KhyR2tJcAVND6vtnZ9GX4LM7Dh39
|
ygmiVgTUpa7zHr4rD0FUGIrUL9qC2vxHVd7UUFqkINJcAVce2Kne8watFEQOW5lq
|
||||||
kcnZsJz2DvjmAp92zbDTx0nSD7+X4wAjoXxlkZ/kCQASQ1kKdiRc/3Loq2lGJzSM
|
DrhY377M4Hu85SCufT7f8CimXYGRpb5/rnaVYCIXKq/7Cj068Ylmwf40OtlI7Btf
|
||||||
XbO3wVy2whtczRa7Ya9axnM+yuChlAoEfWtnzHQ=
|
uY8JrTuxcYcszvIbbu6vaPhH6b7Jixn6/9Q6Zho=
|
||||||
=IlrG
|
=awWo
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 65BD3044771CB6FB
|
fp: 65BD3044771CB6FB
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
barcodebuddy-fastcgi-params: ENC[AES256_GCM,data:82HrXLAfR/vH7QtqaKOq/1B5/h0Qd0PRTK7W+DBtBLmaXMkGkV41vyohqnPblNJiIZHzkWPcmhdqcf2hhAKRxf3fn8LfMMk2FLKSVOqqQBlyFU/ZjNQymlTrr0ltmFDGskW5gsTMJUIAp6oILCfcIYKSYVDqjab6Gd7IG/mf95Pj9Moj5seft8wSoTd0lOajHn4dJ3Y4ZzcVZzaFrumxhxvLZpN7Rr0X7fnWtlpyTTnhPZ58fRvLlV+md5oQRz2h5KJ3HSlibWCm4yiDhUERNQ==,iv:vJ/afsq1FesiLdBDCe+nDvt4MjJ2ZofnV/+FeurNnrM=,tag:4DwuLh8CrPo8CK5zxsA2gA==,type:str]
|
barcodebuddy-fastcgi-params: ENC[AES256_GCM,data:82HrXLAfR/vH7QtqaKOq/1B5/h0Qd0PRTK7W+DBtBLmaXMkGkV41vyohqnPblNJiIZHzkWPcmhdqcf2hhAKRxf3fn8LfMMk2FLKSVOqqQBlyFU/ZjNQymlTrr0ltmFDGskW5gsTMJUIAp6oILCfcIYKSYVDqjab6Gd7IG/mf95Pj9Moj5seft8wSoTd0lOajHn4dJ3Y4ZzcVZzaFrumxhxvLZpN7Rr0X7fnWtlpyTTnhPZ58fRvLlV+md5oQRz2h5KJ3HSlibWCm4yiDhUERNQ==,iv:vJ/afsq1FesiLdBDCe+nDvt4MjJ2ZofnV/+FeurNnrM=,tag:4DwuLh8CrPo8CK5zxsA2gA==,type:str]
|
||||||
|
barcodebuddy-scanner-apikey: ENC[AES256_GCM,data:/zgkkyPGRHBh6NxxZ2B1Qc9kVkmJPAqOjtxO4GJlxg==,iv:2sOLX4e0zl/WPE1fuJq+ZR6EkuMLv9AeuslQ93hBlGI=,tag:jdxenevtwuzgH9Gq1Xpo8g==,type:str]
|
||||||
sops:
|
sops:
|
||||||
shamir_threshold: 1
|
shamir_threshold: 1
|
||||||
kms: []
|
kms: []
|
||||||
|
|
@ -9,111 +10,129 @@ sops:
|
||||||
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvYVJGSFBRRnNnN0VFY3hj
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5NW1DbXAwV2txOGtPTm9v
|
||||||
elBraEpLWjhBZnhNWFpSU2w2bWo0YUpFQ0RvCkJNSUVucHRQYnViQnlyQi85c2NN
|
YlExWDlodzl2T01uQVcxWFg4Uy8yenFzY3c4CnNPcGU3TlhsWWZyL2JIQnRsenAv
|
||||||
MEIyTjRCV2lFOFU5UmRPT1BZeUtNeGMKLS0tIDBVRVV0K1hOeVZOZWZxNzZGeVZ2
|
ODJ0RXFuUDV2Y0EvdFBHV2dLY3k5WGcKLS0tIDFBMkNkdVVFRGRIalV6c1AxTHlk
|
||||||
b1NZMDNvNnBkU012NERxODRGWUhGeEEKYU1FtcFfOEVAyHd4kPJQTHSjIrghZJRx
|
U1pZSkdLVFJYLzd6UkU2djVsK2pmUmMKi34ebbrv8oEP6LpP9bQ5j11cFagm8WqE
|
||||||
Y56m4F4ZLUjHTdW67t0B6n8HMxkd9FkPMNcdevXjo1EJje7OkTFPbQ==
|
Uqi0uDzrXdregLAa+FqnP23deGssz+hXssJ5sQR1OmZWGe7k0lCJ8w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPeDJsSDBJSU5QeDZzWGRG
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQWW5TcTVLTHVaMThodnVY
|
||||||
VjVsSW9xNU1NSVRLYzlqMWdrYllMeTV1eVY0ClBVOUt0VzkvYVFHY2pvYjNLOWRU
|
WExMSzZaWG9qMjZWQ1FaYVZhVUJYNlhGQ2dZClh5NURNejRjSWhNazk5QUdQWW9z
|
||||||
bXIySGtvckRlbzZ0dWFIYWpsUlpsYXcKLS0tIGk3bTFYYm4veHU5WVM3RmlHSlZG
|
S3FRT2Rab1FsUkVHQldWMFp6Ni9LbzQKLS0tIERJVmhXanZZQm1pTDFYaDVDKzFj
|
||||||
SU5ZSklscGp4VTBBSnFMMWp4Q2RoSG8KZs+4ZqdkbxljhlqXShO3hazTBYyMZpR6
|
V2hLQ3ZkUzVyZ1c3N2cwRWlhbVpFeWMK/I1PM2a9DkDKY97W/EBj5aU/ZX+EzM3q
|
||||||
7kFuV3SA/NawP+1rRunB68PG2OgZAsOdEMghQcDjvXUCDPnolVWElg==
|
a9I34OffXwKf8SKW88DEImQtvb8d4Vc1mp9QqvP+0c7/OGmGdvEgKQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjTHFDcHpBcFEvUDg5TEg4
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwT2J3OHJrZFZWUzVmQnAr
|
||||||
QVdCNG9xeUViQ3AyOGxyYWJudVNzZFNxWmpJCjVsa0FzSzNyTmsrRXRESXhpMi9v
|
RlVCam53VHI4RDVwbWJZUzZoWEpoZEdYT2w4CnNPSUZUeEprUDNuS3NXSEszckdW
|
||||||
WHZ2RERMQUNoc0h1R0hFRkRkK29yRUkKLS0tIDdKdHlZUGVXM0ZQNnZ0Sk11clZ1
|
STd5NHBMRGtEelpRVWczQWFkZGNkZVkKLS0tIGNMRGVqbGliZDFRVW4zRVY3Q3Qw
|
||||||
ajRGNWRvZ2FjV215dUcxZjM1Y3U1L2MK2F3SM/aDXAxBYMySZcBxTstYEQ6fU9lg
|
MTRITm52R2J4d3Jhc1A0RGVlNEx4M2sKj8TWJVFW4R7q6YvaOP+RrnkA1bSQoFEO
|
||||||
SSsH2QX6XkHsC8LExGzEW/OPSAf7tfxKmGiMM/YHmKo0XkthjMdw5Q==
|
nkboZkxSdy8SPrdExyL76AYAjTvzkLnBl7iwmJNLh58L9X8/FtzEgg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKSnBMSGJtWHZyNHZEVzdo
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4VzNQSSsxbmFyZW8vSzBW
|
||||||
M1VtNU9lcWViZnFjT0FFMHltMFdEL0R0Mm5VCnBZb0ljcHNpSVY5em5sN3lJc0dx
|
SzJNTGlNZTVQZnlUbHl6UHkrRWdaTjhrMG1JCmdKRkNUU3hwMStJdHV2dHk1WG03
|
||||||
QXZuM3BONzVzcUtOb3hVbGF5MFJlT00KLS0tIGp2YmZ4MUVWc01ESjhsSll1UWFo
|
b2hMS2JDdy82WmJmaVE1eW80QlRRN28KLS0tIHNnaE1Kd3k3TGFRL3B4U2pXR0Ev
|
||||||
eVU2TGs3QzhOcU00UjhQWjBZU1VDeUkK/E/ff/ZTOmMmxhwAbAA1K/HOXGx9bhdE
|
RFFROHpKTmpzMFJFbG10eXpMbVFUSlEKXuWw8svYK2JFxWTufpBnUBbEdXQcgska
|
||||||
HD079kH0nAD4+lBA2lzDz8CDKVOU0QNratxZwOJd4yZUm917We4kQA==
|
nmnTVgf1yAZJmERIWX73NBmmqaG9bf39mpSOeyPJU6YazjIHBK/RzQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3M2FydGVtVFlQdVFWd25C
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXL1FnL0hyYTZFemoyd1RJ
|
||||||
NHE4emhCU2pxRmYreG9HQU8vUmFSSXZEZEdZCnRzQnhGZjllUGZFdmhuRHNxWXJz
|
Z2FIT3RqZ3dpQWNqSm9JWk5KdmpIb21idjBRCkI2em1zVkoyV2xmdTFremVHdFN4
|
||||||
Sk9saDVrRjAyanpuZ21oZlNWeGNMZncKLS0tIEx3M21tTjR6UXhlcHE4VG56NllH
|
ekxuSjRVNDVrYnRqNlRFcWFuYzdtY3MKLS0tIGNrazdYUVNLczZoQWNsK1pRT1hX
|
||||||
WG5uOVA4bmhjaWFpTmtLRXpRSTN5YjAKHb1ztknE6la54ffLnRGM4ellP5vmvSI+
|
cXNLS29lRkFNaVVQd1Q2QThOaFloeDgKUGpYIXAU2BCGwMMJwYJJj8D214abO8VI
|
||||||
SkaXCjzArtbvIDFHL3bp8mpMN6qLpLUgPsI2a2KsED+pX3dcyBNqzA==
|
aWrOlWu8YwUV/5hhu/9+IGa4sa2DhSewILAT8pqE5GRiIQKucRiuyQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1dUpWOGZub0JtMjhNd2Uv
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbjIvcExEMW1adEJOMWxq
|
||||||
WkJRaEhsaVlpMDM1alFHT1JZakVKakozcWo0ClV0NmgydWZyazE2WFBEU05HUlpq
|
VDRyenNKZ09yM29QZHltSXlYSVhlcUI3MVI0CmdZZkpFdjJUdWp4dG8vTjk4RFVn
|
||||||
amJiMXpnZG0rNkNjSllrZkZ2cE95bXMKLS0tIEw4cnI2bWNyTncwT3RRQ3JTVTN3
|
TjVkL3hOb3dtazYxeGNmNzhSUXFaTncKLS0tIE1iT3NMcXkvWWw2bGNUazVldlBo
|
||||||
NzMxS2lHcUJHUE51WmNWNlRSQ2hoaE0KMrBo1vqsWBK0j90+xqGKUktfaxzFnfQe
|
U2VwbkZXMFJtVGZ2WnpaWVF0RTRkQkUK1paX9AlIzO32N3bOVN39FIiTfvE3hi0N
|
||||||
mUzZZGJBr+wQlPiv2WzlD0eYu4KLy+JxibY6bSIj0bFynO9Z5VsSNQ==
|
vfcWR8OL5re3klFcF2+vKyZgNwP0NoBG28kvdqaKRoquIapG/XV47w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYc0lORWVBQ29NUnJwWWtp
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDM0M1ZEErMnNZOHF3aTMx
|
||||||
RXo2ejZubFJhL0JES0QrZzZMR05GVGpPWXhFCnh0SUdveWYwTmdQcGNhZnE4anNi
|
TmZ4N3BKTWlpZ2pnaEZrRGt6SGRiNXZoVndvCnB0bm5ZYjlWQnBGbGYrYVRVZ0FO
|
||||||
VXM0OWhtSEl6Vm1VYW9Pd0c5SHV3VHcKLS0tIFdNNjc3Vk9qS3FVd0tFaWxvSjFL
|
TUl0WWgzM3o4NlJzb0pEZzNUOWhCN3cKLS0tIE1vOXVjN0dGOUJVak14RjAwUjZT
|
||||||
U2tCd2U0MWd5L0pIM21GRi9zM1NZWkkKRxMlIlsx6B5ygAVPqawyRG5vfnz/kuPJ
|
b1JSYkJQblczTUlpaTVXL3c4Q0p5ZncKi59UQvPAVLszjNjG7zya6+yuzKFtJ008
|
||||||
YxNkh3aUkvaIagnMZ/bzjNYV7y6cnBl4M3rzrvHncR0zp9/6QH4jbA==
|
GDQ3bA2XFIZXQ3inrlpWwNFKJ6UHrr5eSzJNmN98/OHsyTtVlMW44w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUUpVbm40THgwS0IyeE14
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2cWV4ZmI3MGs3NkpHZHkw
|
||||||
RjV3aDAyZk9tSjF0Rk4vUzdhMnBnUmxsaUFzCkZKOGxWdGcrYmlPTmI2dVBIOVhG
|
c0tnQnNiS0lBUkJqYUdUS3hvOE00dlZ4dkNZCitlV3ZuMFhqYjdCbFY3WnhmUFRT
|
||||||
RXBzMlF5WTlsZlhCQmo1cHdYRmJ5OFkKLS0tIDl1bzRLWnk0aUdHM2hQSUVqNmMw
|
VEMwT3J1eFRXY1M2VktlVytFQSs2ek0KLS0tIGEzV0lDOWFoaG14czJpS0RHaW95
|
||||||
YVp2UnlUeVVuMjE1L0VsdEJQdmtlQWcKwuFHmj4KpUk/LGxKu2sHOmN8QsuiZat+
|
bDN5WWlZUTF0ZFB6N0JzRzNIN1kvZ2sKsEx7BU6IU4E1pmVCfz9UIdCZHWnP6LMC
|
||||||
p4FswX4i4PDPmZAHYLt69MJIKUDlm3iN/A5Hfa6mX6R4NZjryNdD2w==
|
V+pxBy9jHbpxgXQ1i+fURNhzbU9DAuQ7zn5EIzwcC7dBl3dFGR/kVg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-03-23T19:16:11Z"
|
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
||||||
mac: ENC[AES256_GCM,data:Jtbmq/04a6ar1D07UIb+xEbRmbBKCEY9G2UEmE3JX/xjnpFj10qFRHB1DX+sVtltjYDhWdtyVx/rWNg/QDcsC7aBelyUH2GamHSIHXFfQ+C5C0KySv+Fqur/px86wIn9jIzyohzQa0Vd4wiODrCtMpwnFx1PCaRk3/BSnrvkoOE=,iv:WAKYsjRuhpSK8ZdI60bU4mDjn80CMynnR/81Z5iILuI=,tag:wn4RMpLnKj0funHp//GGQg==,type:str]
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXVmhDbnRqRUtZNDMrdHRQ
|
||||||
|
WU5sSit4OXR0Y3JZM1NPdXp2WUFCVm9ZU0RnCmhiVWxzZ2srNVBIR01mRjJJQVJZ
|
||||||
|
WlQxMVEwMnFHYVNDeUdGZ1pWREQyclUKLS0tIEJaeVZTZkxpRHBXM01uMzlnMGk4
|
||||||
|
V3JCYW1teENRc3pSazhjK3ZQVitrU0UKhTiULx5S1blAJ/VRZEf8wXD0ighbutcR
|
||||||
|
XwZ2XSa/3zD9dQVlYt5WrzJzm/bL9fwfR5UfsUWnG8Gte7N7VaJLTg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdzM4OXVtTHFpSll2YkFL
|
||||||
|
QTdqUzBvY29RWlhSYjBlRTNCVjAxeE9tY1RzCm1FVXAxWDBWZHEveGNKY05pVjZF
|
||||||
|
M0tjOGtrTEx5c0haSk1yK05jTGlGeUkKLS0tIG8wQ2l2VjNoQmFING9xWGFKUEJ1
|
||||||
|
N2U5WC9QUndPcHZuNFdCZU0xaTRPREkKuJ9q2dMlE0U5aMu2ISe+GKN03pH56NWA
|
||||||
|
MALb90dsH1Y5R4SY1DjKtvwijGMACwAlV+48hNmRN2O20uPP1XlPMw==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-05-17T23:12:11Z"
|
||||||
|
mac: ENC[AES256_GCM,data:lWD0qcuzMjb0hnoNkKTzrEjJUgOSLuVmTLMa0Dy3Pp79nAFF3wfDlLeTcRaaIdzOF4gZMi671xsoAHGfgStnV3SGqIfXlIAp/JMykNlfpILlbitG9Pkc7C45JR/wvr2qo1Fxn8tNqxeJYtHsKTfpw39bgr98S0LU676sDlzLxME=,iv:cMOxjJqrOQor38VdK73st7A4+OG7cNFT9hoBNwf9640=,tag:nl9DSdq52E7CO60gbnsGIg==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-03-22T14:22:11Z"
|
- created_at: "2024-05-17T23:52:18Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA82M54yws73UARAAqF6X9la78YtUjZntDu6j/s/A7+uNO5vIGRwUBathX4K4
|
hQIMA82M54yws73UAQ//ZRL8I8zZEEbQiMv6l8oC5ST/M+DOCpb/39L3adXphxV+
|
||||||
BQR9JRHMLiloAQCwGMjYUQBcGBlkTYZDh5ToN15YgaU7OLkcPKqWWkNHrmuhhbha
|
2JHTew4P71U/GCDYpVn2OIpag1s2iYxLk2XSJgw3fJ6xKbIQt+Srke22TEG4GHmB
|
||||||
HoUVrznU3iqsN4ZyQ7d8Z2WcgulkRO07hiEks8F21Vzdu6r+pU4F4+A+SqnlyfRQ
|
01O6X/5yWsU2kF5XcTzYj8LJTSYmDOa3/VQ6XxDd3MQeQ+GxQIK1mMi/8pWPsycm
|
||||||
jGiOO1OBmxeYUGbthOcW1wxFByYd+uUKnY+59U/eJxWIXgKhIPbdPPcPdMGF+P46
|
Jjr+b6Lv3ac0DZ8LAek3WrA9zbvtq5FFSPxyDlNs9oBVPoEpBZ1nn8LqjrNfuQ24
|
||||||
OuLdK8fHMY50lzfn/fa8IlKAM95bsvwxH8PfGKShQCQde1va3xcB+N9uoJvTFZ9t
|
/lg6OEOJYqgfquJuA/GbyR7Q6lfe9HhwIXU7d0nLnvqtM+VovChpFgSKcOMedIXe
|
||||||
PkmDd7iFKlbN2SGmxI4pBlHanvJ94eB8afGH96aTIQj700vMH95oTvKKnSJWZvUz
|
qg4IbP1iBlVPR/bmkf9SEuTHW82xfrtYUnNqFskWJCNnrOtGGwJ+SGndHhHA0jgh
|
||||||
U1a3pRsnxSqgQ+Dont8VxrhlRyHw3z7GCOE0+Jhau7xY6hN8KpT16gSGAZ5FZ8zs
|
X0S9DTEiqihRP3F7V3FmZLxdmZBIiAvpPSXDhCbdoK0sNmSo7o89WlgCK6Gp6KwB
|
||||||
sXkeZcAf5vJPpLsrxIU9XEHY7+zzMyAYOw2MfuMOQhJR9UDlV+gjetIy3CcW6qAR
|
lOvhtQK94HHNdsFH820JwVlTyXMSXpOKi+Rf60S03LMyRGSDw8Y86aNAsTrUD+nA
|
||||||
rBg05xJ2Nt6MUNuWdjcMkemME8uJN9a4rn6GkG80h4K4OBnr2+YYWH76bleTkAGx
|
xpFc6gCji7v6r1rzLta2Bs6dWvDQhRrCm2M0+Hfm0ufJt+t9WylK6mCvBLDRcXqP
|
||||||
aie2XzURPE/xhDBFAXXUGycgd2h1vLt6cDqgDvmLVUssVCdbZszX31vGabA+/dlX
|
sVl0NLGQ0oOHAP5JGjSJYTXKOMjTp0LoxRefgoHALy2dM79OzNK8xtDpHEoAii4v
|
||||||
eTdNRsseQC4j9HaTECIFDDvQzWGl3vpFD0EGgvQt8U6Q3xCgXfEOrxP2th/ogE3S
|
kgFd9rAY68sSr2uK0Iw68cYMtOn9i7VOpi+4OotCMeaWhPN2ErSkB65YNNfnZWfS
|
||||||
XgHz/dGQpfMgvNdYoQ2uYBB6i4k14z7u6sQOPsc6hYTUqaQfx7VH+ji7Pgx9OG0G
|
XgExtmG6TbihX17bwHz1hUwZFqScZIrl39FG2QTjapuq2qZ2n2e8N2QlRG08O15f
|
||||||
UlkEpWG8brPffzkz+OcrgH8lm+9+E51z/dzdEDSUa1zMyvD1iXr1eXUUDt8sUbA=
|
QJd4J1pVpcCO0KFJM/Bv57fA0X+zdmYEOkTAU3NPJ6cNrdQVwZPAOMZWOTc2W2o=
|
||||||
=TG+W
|
=B3YX
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: CD8CE78CB0B3BDD4
|
fp: CD8CE78CB0B3BDD4
|
||||||
- created_at: "2024-03-22T14:22:11Z"
|
- created_at: "2024-05-17T23:52:18Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQEMA2W9MER3HLb7AQf+NBCAbsV4DtDVLUAzlb2Z49Fi4tZlEBbcf/vg8fvoS2Y7
|
hQEMA2W9MER3HLb7AQf/SOAgJJUiwX0QVpsTnKp6vBEBjMNdc+zxnQ4knEP1zyHp
|
||||||
uGjlkp/t5fc2YoZuZ8gWbzAg2Y4mIs0NgeLcZffAzcZAOOZ24qRYdnIwHNnqR0Ca
|
RASJUDx0yciRyDkEzjFwInA8DwPyZadN3wK3sQL6+lHHCvXSNwTDVawCVNlWH5vt
|
||||||
dSqbYbcXO3yGMDDsSFjcL7l9O/YqR+WntwJBPuhfjVuJ0lNXXYg6r0hVyfVQmAv5
|
Iv3Qhat+xBacSHfNvTDtl5T9uI0gwbx/q8D175IIxIQoTF9+grOVdwjtuGo6F0lI
|
||||||
x0xLuYttTxCSy4iDfStpTpeiQTFTrqFccBVZZJiIG9TyqQZNRXnrCKXvwZ49nxVE
|
XiBGEbgMYWXgx6AnOBllXnN2/E9Hck8ljVLT77svTevrClaZYHI99iZPWH9SVn9l
|
||||||
vGMyf6bVPXhqEDjwJ534HvV3AGovwPt8t8OE4ohnau5VVwpqF0U+Jn8tvmvFti5B
|
O4RMOrepOmyRdw0WSsO2CmdZTc2MzzG9ZP92znztYVq89yq3DALsbhI5uRer8lqo
|
||||||
T6BMtPBkDvSEk+rk7qv4Ak/GwooJ4PgCwVuVVXGXCNJeAUuK5g38Q14p3lBFOt7W
|
ADfFyVSwHJiyLWzurnTgzLzcIYnHL5rhbChWVQaP6tJeAZpDJ+UWHHHkTHNPXEUO
|
||||||
u9xhH7c/FsPTAHz221OUi5AXfIZIFsgQVcu2JyzlzgzIC66tzOf2mUrhWRmVD+NY
|
DfYH12xeQjLurKvPIvpx7WfRubPyiOSpOWJtePfF0R5ubwKQdJ5g6fngeV8KLK4y
|
||||||
CyfrZcE3N4C7392MTqFnemJtbYDOJ+YRW7pCMzEoBQ==
|
qry29SRYHm3C3ResTOYNxbJtIiWJCTseT3BjE8losg==
|
||||||
=z+BG
|
=y5+f
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 65BD3044771CB6FB
|
fp: 65BD3044771CB6FB
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
|
|
|
||||||
|
|
@ -9,120 +9,129 @@ sops:
|
||||||
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
- recipient: age12ze362pu5mza6ef9akrptr7hfe4auaqul4rkta7kyy2tnrstqensgmujeq
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4QkpqSTQ5YnRVRElnUUpw
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSdC9LTG5rSzlMTjl6eEtH
|
||||||
Njk4SlRwT2srSEFGeFZwRUtkWE5SNWpMMTJNCkNBSU1yd2RmUlpFRzFtZThWSDYz
|
cUZGSzdiZjJaOFZ6ZHNHZzI2NWNQRW0yVkE0CjVBTUFsbHM2WDhBMkxtS1ZGNVVY
|
||||||
OHZ6SWdsY2J4aStoZHBMUGhzelYyOWcKLS0tIDNadTB3WEpldVBzZHFhS0ZVeVNP
|
VEdvUGlJcG5mZkNPTEdEcmtsSXltSWcKLS0tIG9HRlVCczJaVEhSbkUycTQ0VEx3
|
||||||
cXBrUFlFQVgzNFNoWS81c2x2YXpoZU0KTfLd64jGWDtptsMbrXnpEb1MpYCYO8xN
|
V2VZMzE5WXZJelNTcHVOejNCY1JZUjQKFnmZcdkHGoOQz/gQY1pIf+vZhtUx1IYU
|
||||||
ihaQxLimPZhYwU6HitjZBLWDoYtZ6RX8qQAsJLiH+qzxepQavfqptw==
|
yoiJ9mxyISK3DLZjqxl1+wr4BrqXd9smu3oCAFKTVc15/d1weIy2GA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
- recipient: age176uyyyk7veqnzmm8xzwfhf0u23m6hm02cldlfkldunqe6std0gcq6lg057
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2NWYwYUN6Y1NSOWI1UUtP
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAya01EQllVZDh3QUJhZjF5
|
||||||
L2FRY1JoT0lFdkpGTzFweGlOMjBsWUdjdmtJCmFmMW5ISm9NbGdYRXdTY1p0eVFZ
|
WEVlT3RWb29qTnRsQU9wakgwZ0F1TGtsM2prCjJFQ1R0dzZqdzhpVEVVSmRmZUZr
|
||||||
dUQ1V1pQK2IzOWlKaHlaM1dCR1ZwdVkKLS0tIDB3RUNOanI0QnNRNGo2cDJqdzBq
|
cWt6VkdYK1pjYjRYMkM4OVNNcUo4WmcKLS0tIDZqRVNRVTNWbXRJZ09COUdVODlL
|
||||||
d1JtbUFJRHdLZDc2S3VQcCtHYlQ1SGsKFsJSSr3nyxwPnrb4RH0fctsl9C5V3cf6
|
Y1dzYUV1MkJuT3c2SzV3emFRSFh4ZWsKV9bWXhxB44JJnTpoK1lQ4aU9Pp1kzpYO
|
||||||
9lxh5qtDEa2JWrSx4QDRGXRPPG/BiB4aYmE/KgyM9mSQPG4VX9M7/w==
|
/ks233leKMbZcjcS7MduaBrxoGFPp6rPQIpT3y3buzbqyViwEAQxyw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
- recipient: age15hmlkd9p5rladsjzpmvrh6u34xvggu9mzdsdxdj3ms43tltxeuhq4g7g9k
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNEdwamRsK0JsMmpsSjlF
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrSmRtYmtNK3N0QjNEMzg2
|
||||||
L3Z5ODh5am10QVgrclVjMExockUrczVrT1d3CnhaVTdsOEhmWm5tMUxCN21NRE5I
|
UlBPcVMxZGJaUTFzbTNmb055d1JoRjZQSFFnCmEzS1JzbXA5aXNFKzZUQ3AxQ3dU
|
||||||
ZkxkTW1UK2Q1MlBxRFBaVUxsa0JKUTQKLS0tIHYwOGFXNmQrUzk4ZHpzNFlmcGU0
|
VUZtQ1hlTExHY3c2aUU4eFpBR0JUY2cKLS0tIDJPZUwveDF5aWI2ZzFDSktNd1hi
|
||||||
aExEMVpoZ2F0K1d1MkpMNDFaMXNUV2MKYu5Dif3BfpMPD4w8log8bBEtxS09f7T7
|
bUdHSlhudlFIYmVmMWNxeGJjZW01R3MK0cIIaIU+egJCw3IHgNcaiQMxXOMhFfKd
|
||||||
bXH/sS6QWBS8F+syHZzUN4KHlBUHwZ5fKrj05sasLcLOojEULRdPvQ==
|
aTDYHCNdeURXicwW5EgncDeAWv5YNsm3DSPGqjLsEt90e5Dn01EHlQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
- recipient: age10t6kc5069cyky929vvxk8aznqyxpkx3k5h5rmlyz83xtjmr22ahqe8mzes
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCQWh1MHBoK2hBeUdmLzh4
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Q2hJc0dEVTVLUFcyTHFo
|
||||||
RythV2xud3FldXo3aWlWSGJ0cnRaTGRacmgwClk1cTZUZThtU01IZWtEdGlqbWRj
|
STQxaEJXWVIxOHlaQUJsN2N2ZjhVZjc2WFNBCitWT1drZEhPQlJSZDlRVjEvTHo0
|
||||||
NVhDNjRldlVEMlYyMDhsZWNsc2dLb0kKLS0tIGpyTU54RHBMU0FBM0NIOVhtK0RJ
|
MFZ0ZWlKWU1EWHRBeE1FdHhXWkhDcjAKLS0tIHd0bXNHeXBvZE5Ka0FlQitOVGt0
|
||||||
S05MM0VjVVpudE9DTnJLWGs3NnVkNTgKGB85U/EWrFXGwPM/x8GWFYCh2vPK4chS
|
OVQxTFdjNWg2UkZJWVRuOGovcFBId1UKYBqlh4HxPH8nUp70WICdhqzNOUBwEdzR
|
||||||
UFRp2JH2v9W9dQHk8dhmxxQPCglsm+u9KeDTCgYp1HLtzTXy9G7qWA==
|
u7zcoAlLvASgt5LGbK6UIVDpq/rJo+B8WExkJzVZOgysko0lOVPB3w==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
- recipient: age1a2quf2ekkj94ygu7wgvhrvh44fwn32c0l2cwvgvjh23wst90s54szdsvgr
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJN0RST3VZRndtMGNzbDZ2
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTM3I5b3U2TWFaS0JLc1or
|
||||||
encxOTB0Wk5QZy9xZHZPYkMvZlVaeHZ6MG5rCnpENWZoRm5KSU1VTHhOWTcrY1BU
|
Wm5CdlFKWmM3T1V0OVA4anZWSzZ6cUlsM0NVCkZKbHc3OFBWNnJ5Mm9vS25VL0RU
|
||||||
VDlKc2wwU284aTJZYnluR3F5V1pMMXMKLS0tIEM5bmZjbzhLbGhRajVVRUlrZ3BJ
|
VXN1OVBxMURicnJmYzNrSVBtZTJTQTQKLS0tIEd1eFd5OEM0OTN6VURwVExVdUdC
|
||||||
Y0tWQUduTWg0VEVtZ3JQQ2tqd280NG8KMbnuJdgzBnkPSye5tOW82nR7KlRrW1rM
|
T2lHNDBXMWYreHgranFTQ3VteWkvbTQKomNdn+nzcLLHtbXquhYpL6Sbc4CCRQ8V
|
||||||
s7S3iU2PcW0uFCbHX+HOoL8p8yifTCPd/FHct5fuKepZoCtYwf0ItA==
|
/sc9jypEORwLyOIU4E/S2fQl59WH8IqPpno4kEQuqDWdXY0qDyH3rg==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
- recipient: age16klpkaut5759dut8mdm3jn0rnp8w6kxyvs9n6ntqrdsayjtd7upqlvw489
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOejFLY1hKd3F4bnpDSEQ3
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ejFNekRhWWlnckV2TWJy
|
||||||
Y1hKcGNZRUtVOVNnVmZNUFN3WncvTUtkc3lJCkRSWElDVHpEdmRkU09pSy9lUzBz
|
M01UR1p5NzhGbVcxdnZ3dVJDckIvMmZCUFhJCmkvNEVGTFRkYXY1WUUvQXl3RFJ0
|
||||||
VFYwSHRsMTBqc21nbVY5OVRiL3FidjgKLS0tIGpOeEpDbVQyRlF1Zyt1U0h0SmIw
|
WklwNHJsb0RqUklpY05hM3EwVUtlZVkKLS0tIHQzeGtKRnlCSU9EOXk4dDQyWmNO
|
||||||
V01XVWg2MzdkRnUyZno1dk04OHM5alUKrghJcr7M4JRLat314LWfJ1weiSfIVYeI
|
TlNIVUE3NWhnNkxnMi8vM0Zka2t0U1UKy+NyDUQAoYtOu38GLFFQfkaJnDlKQeDb
|
||||||
ZtUCyrbqnuxnviS4ouTZhU6mCcwLITkVg3CKfFmUs4mJL9w2kuRWnA==
|
ouGcne7EcGLQZlFf8xJ/Zhc6ETHo0xxJqQwcHIM+oiEhzU9vJobzHQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
- recipient: age13qgddr326g5je0fpq2r3k940vsr3fh9nlvl9xtcxk3xg2x0k3vsq7pvzaj
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTXVuc2dTdnVpM1owMHg5
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRRFRpSXVOUmtwTys5aGhG
|
||||||
cVoxR0NKVHE1RmNpZEpvMmdvRXI2TDVQdTBrClFKMmZ1cW9tcHRQV3F1ekNBYWtj
|
QnVuUHVOdkhzcHZ0WlUxOWYyVHNSRnlFZ2w0CnVaeGVsUFBIVDlSY01pejNaZ1VD
|
||||||
TjJWdE1DWWZZVmhDM00vclFDd2xlaDQKLS0tICs1K3ZkbXZ6UVZ0VlZQdGJuN1JO
|
b09TTU1XQW1sazNJUUNEem84d1gvL1UKLS0tIFNZRllyZW5oNHZlc1VNWFk4WTlB
|
||||||
WFh4RFl4N2Y4R0ZYNXZlMG9HaTI3ZG8KrcNtQvEBSKCQbRxarrVhXgbISr+JHdmy
|
RWJOUUh2QVp5UFpnRFVtT0tHcTV2MDQK8k5JNTZqyMkcql0eFYqeYBUpqplXs2Tj
|
||||||
W5S5aF9qXx501Tj3zJgrCWaP+7Po8XG83LFZ9cj/KnMqkikS+ydcwg==
|
fZJH9m2AvOMTJmsHqckM7fggUEN4xp/y+giAyu/apTuMI9iVzolYEw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
- recipient: age1ktmx2szedfnpe5xumnzs8vkk0ffqgga6ved3drtksg9pye6ndsnsnqq488
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCK0d2ZE1ZQ0xiTmtoRXhN
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoR0MyWFpXdXQvNE8vYTlj
|
||||||
dk1TMGltcjlxUVdBbkpKU05Zd1FrRHg0cndvCjIyalRxcWhNeFQ0UGJVSUpuR2lN
|
OEl6UkxZNEV6bjRlR2czdlpWckFkWTliRlRZCmI5b1BTdE0xcWtEMmdEcTRhdWVp
|
||||||
clVqMDdkUHAxdEtPc1RTVndKVDdRRzAKLS0tIHVmdlBhUjRSRDVoRUF6bnFNdFlP
|
eGxOMitMZzlkS0svUWhsL2paNUlxNkkKLS0tIEVJZUk4VWxyV2JhYVZrWCtoUHZD
|
||||||
ZVI1Ny9jenZWVW9GMkdOMU1XTmtpN28KfTFGcLkGvvqDFyIVX5dIN0l0SCSjlt+i
|
cVJML2VmRnJ1ZzdObjJIenJVOURDelkKbpN5imF6oARePpn2tWpUA2CoKnDUf6RU
|
||||||
A2G+UJnGTGZm32gLVVWhfh2iK4y3QXPwvxxgifQ+ZoguSzuGz2rRqg==
|
tHfX/5XvAXxClyhWNg5Y7j3VOGpNJW6IKTiwYdE4SFLQVkqrWPM/Kw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
- recipient: age1fjcafp0j45sz03zq5srnxyq2mujndmn25vceg3wj2cgzymqm73ssmhdgku
|
||||||
enc: |
|
enc: |
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxRmRnbkQvMGZWL2FkbEFy
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2UHhVTlhMTXFnQlJaNXNl
|
||||||
dEN5dFY2R080ZHRlakUySGhaY00yMVFIRVhVCmIzOGQ1bUpLNXlvU1Z4ZHpucjEr
|
cHlGeWNaRHY0VjVJbldaZW5Ma1VqOXRSWDFjClo3NTUwWUpMRE05RkJOTnFLWnky
|
||||||
ei80YnhqSzhXT0w3M0tpb0U4UldTWlkKLS0tIG1iWVJYbmNxMEJGZjlKR2R0NFp6
|
RDlqU0czY01BU3QxR1Q2aGdKQ1I4QVkKLS0tIFZ2aWtZaTRDNUJkb3I0UWQ4dHFw
|
||||||
dFJBUXY1eTFpQk1uMG9PUnVHN3NtZGcKYgtAHBFc8cUjP/qJa8X4amEC76NffW2e
|
SzBkalJiekJZUUdZQ250bE0wcXVtOWcKvxfSG1On0ZgFL5rQd8w0mccvyDgcXFQ/
|
||||||
xHwa6sbFMSS0Sw0Z5SDCBdv6F48k6Yfb7ALHlbX9GzJxCTTbY/FsVQ==
|
ni/55aM1icWb8AlaYIA7bI1pVMI+l/IYfCJ8ofIzx3wRu04+IYCeJg==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQSGYwWHdZRFZCV2NiMVQ0
|
||||||
|
cThiWUxkeW03c1ZSeW9pOUdzSytqRkd1QWpFCk1uRk80TmRkYjh5UFJUSkRaQmIr
|
||||||
|
WU5Ud3lUTm1Ya2E2aE9NbVR4YTl6c2MKLS0tIE8vUHk5eGcwWk40ZDNjS1NuOFdQ
|
||||||
|
RDNYcGswSFVHOGVTbmFzOUMvNlF6dkkKoFSsWGmqm+f//8O0BVwqWUsP+rktTfie
|
||||||
|
/x1ZLcMHHIuSvWdhL1FVOAf6Hcyh+ZAHpY9lKKwC2vWvyfwGdHIrvA==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2024-03-14T03:48:48Z"
|
lastmodified: "2024-03-14T03:48:48Z"
|
||||||
mac: ENC[AES256_GCM,data:u7G4YsCFxUkgOsKLRurxlEl358aLdBdFOrOtO9TUu0JUHRx8QjPcYgfHgHFXqNTfJs+0kVvcbAzNJxNAIMWRQrVDy3+i3YFlyTcDAh6CufkIXRM6fxnX1YHzZGEtC7bpBASTpSgGJzVt7XqGrqE7v8H+q63MugjHYsKtmIG7lO0=,iv:0Zrw4+Cmfv6bjn3lYoinkYdj/TinALpyOFP7Nd8w9MA=,tag:8gi04GcF6JCBwfmVEulSmA==,type:str]
|
mac: ENC[AES256_GCM,data:u7G4YsCFxUkgOsKLRurxlEl358aLdBdFOrOtO9TUu0JUHRx8QjPcYgfHgHFXqNTfJs+0kVvcbAzNJxNAIMWRQrVDy3+i3YFlyTcDAh6CufkIXRM6fxnX1YHzZGEtC7bpBASTpSgGJzVt7XqGrqE7v8H+q63MugjHYsKtmIG7lO0=,iv:0Zrw4+Cmfv6bjn3lYoinkYdj/TinALpyOFP7Nd8w9MA=,tag:8gi04GcF6JCBwfmVEulSmA==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-05-13T20:31:41Z"
|
- created_at: "2024-05-17T23:51:15Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQIMA82M54yws73UAQ/+NDXHPt8JBAf/m/nxLpF/j0aqWkyvwy30brq6ByFf3/Py
|
hQIMA82M54yws73UARAAhnJObbYMSHgfmH57+fDXIbJu2e9xSiRlRVlMi6qyVm1d
|
||||||
qE37Q3yFYdnxwNa8r5uwow+CQfBfrV1FfwCoLikFVtPfO9zSdpP+61gwuW6FNPnm
|
LMwzX/zu+gNdOzhoo1EmKcMJXyD5usCjeiuuO+YvU5s+Z6cRfQJEJN7wiZ9cDGc0
|
||||||
hmjkAk3NFQriFs7DaXPtiwMbiPF3PsWb6yfXzUzousqpSQWr/9QyJLfqRidx1cFN
|
noNt97pDuixA1TDu3Adw3MQh4jDh9ZViQIn4T9QcskiET75Q1AlyWiQ4nVB7hQ04
|
||||||
QcZsHj3N0YnOXuiIdSy9kQ5Kog9uhgP85kUB881wQ/Me2DWq2UxcgBspIK8T53u/
|
/scAJ6TEQYThxuNcw58q6mKnGpZnvs7/mmShI+3O4CKC6Lny2EwVhWbHVGnzbQzO
|
||||||
NM+odhNY150ISQUHiu4UMKClMo7Z9wduWylWgBLe/zvTh9hXd0qnMbiYFTHcF/do
|
n5Ms2JbNPJvUbfyq0AVdqd5c0/NzIVtkG3FU4YkvqjMfDtHGHQ8ysLPpyqphqHXW
|
||||||
PfdYeYyvCjLW8QncLfsnm3CuKk+T2Wv0VVQk/QAvt4LAcxhoDNEzVp+csZIapgHO
|
AfXSIrM5bEPe8JTR9AeV1a08XI97yQ/iHL+C1NFXVrQuq80CTFj+Qg9uDXIf9uXr
|
||||||
1KH4Kp2NhEVMr0ssaZJdDosKM9jAWO+AWc7eHPSkujq+Xp9nYo/gUEJQ8qLxu9ZJ
|
s4hDR+EMj6Ai4YQmqWW2Hsf9EQhKtscjyhvAlGxU4hiBFdLe/plu6t7woYxY7iAO
|
||||||
J/1Nm3q7CdaoXuGjk8OlxbOaym5eHOODGRbdQt9CdHP+uDg9BLQOgsVNAC14b+O2
|
5JuZ/guBycVZ6B6ntdS4tZVnNDBRdT2vF2S0EgnzHZLl1TWDdARhU81vyldrgX6w
|
||||||
MhTKDu6u0A5cAlwxOCDLS7+sZRNE+W/ovkdFJFeYp4TbKLQVw/7qjXTGS7YSW2lJ
|
nqyF0HaOr9cCPzh2PTSEu75AHtNTuo9zPBb+1V44Ozi8b/pgqezw8HdP+AFM8zW4
|
||||||
iutXyGIY/JZ9PoLRNl74I3mtBO5x6gna2d9JV3karaQG7df5TfafbT8VSWoF0YGp
|
Ai9/tSChsY5W5WO4jf3/S4r7jeJP/w66lUK/FN/YCNcJuxGpkCH9W6/d63ixeQyQ
|
||||||
xFWQgGOKsHSZng5XjepgYj0HaJAeNjxUb9l++h4xXjLDEJEyn2jT+Y5jRIhhMVfS
|
oPMXYw8NE8tw3UDVXbbf9jjWgKiyIlW+MM0Tg46bYP1CczTpUq9zfppMiGW2IQPS
|
||||||
XgF7Ha4RcsFvooCef6evXTtpwfOUzryT6bUP3ZpVbo5yDJ+0IDqD1Tu9dkHeM1Pg
|
XgGZYywe3YTZVP+uIcK+SQPEsmX7Qih2oUDy4XL1DJT3w9RxpAs9aZQbt6ZC2rLM
|
||||||
omLTazYIoorZW11YfA1bVZVaCu+8wPZV6Vi9uqds6QEpCbGXzKmJn6JIj80i/aU=
|
o8jaW036OEjuJDa5qcaiGZyCZVrJxjDaWyW63a4EjO6wJFDnv0AWBeI6hNPo2lU=
|
||||||
=BTfV
|
=r5Pt
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: CD8CE78CB0B3BDD4
|
fp: CD8CE78CB0B3BDD4
|
||||||
- created_at: "2024-05-13T20:31:41Z"
|
- created_at: "2024-05-17T23:51:15Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
hQEMA2W9MER3HLb7AQgAw8VwWKfJckGHp5wzvUdkIq4AFhGH2Sc04mi4eVLYsiZU
|
hQEMA2W9MER3HLb7AQgAscM0vJUROfr8FwnKR1qgsVvQieYeB6KYjRMEy8gepu9D
|
||||||
wy+tOmNU3/rB/Y0WuyfCd68EQTa0UKKid2PC3viDsoNpqYBvbwjOTZkEgIWUUHtu
|
6KqOs1CVX6PrRr/6+dtpYANt4KEi2l6L0jQmhe41fteUaFucJ+aa44UEimw2O2V1
|
||||||
08jFmrOIitOA3CniFioDLT04DnenMD6K16yqCprz8JwFv0DD9Y0BlkHXjzsKXeBV
|
djnkRfE2PkDBeN33Gn2BEn+ACXdGrsek/L8CgltTy3y0hBQJJVOCcYYEITryZDdw
|
||||||
YA4etbSSksgb/71JvNx369+iAgFc6gdAvlCPMbctbrHemeORe1069PHXm9EA7aVy
|
EJTyxVV+pCpnNqLtLiszSww2t0Ub+hD0H/efX/TS/55gy+DYDkgtfXaXlrw59vjA
|
||||||
nrancnGyjq40EItpHeP9Uuj8tWV9c04zhC3mA7lCyCfytYWaPIOGMnzywhsoA18M
|
XWk/YlMB5JhJhIE1ETqbGs18FwFYMUc6vljSFFooSc96ILrcrMlnK6e7yoR7OHgg
|
||||||
O2gbletY8io6TkhUxxyOBxqhvI8ceGqkskMxSUBaHtJeAWpPZT4t96L/uH8PBPGs
|
Y1UFvp5u6bfSMnHoBgtenjrry5hCiVV1MWA2TxMnDdJeAfKpafPO9d7t3fpOteBv
|
||||||
eg2iXE7hWcibcUiDDvB6mKywtQLtR3hvezYw+bQj5SEYfSvQnCM3oyRbsQKmqYbl
|
gxbUHAxqqxTupXznsQQFS5j8dgV+ucyArhrfWVAkjsFS1g824VRAv1Lms5SmIX+B
|
||||||
5uJ0sdyIg8JxiyahGAep7036fQYmr7pvGRk8Y0M6NA==
|
IVcadrjjF9npKfiKbMw0u7Rn5ZeLdtCAReBQoOMXSQ==
|
||||||
=6YPL
|
=bMWY
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
fp: 65BD3044771CB6FB
|
fp: 65BD3044771CB6FB
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
|
|
|
||||||
18
outputs.nix
18
outputs.nix
|
|
@ -62,7 +62,23 @@ in {
|
||||||
inherit (outputs) devShells legacyPackages packages checks;
|
inherit (outputs) devShells legacyPackages packages checks;
|
||||||
inherit (systems) deploy nixosConfigurations;
|
inherit (systems) deploy nixosConfigurations;
|
||||||
inherit (tree.impure) overlays;
|
inherit (tree.impure) overlays;
|
||||||
nixosModules = treeToModulesOutput tree.impure.modules.extern.nixos;
|
nixosModules = with tree.impure.modules;
|
||||||
|
treeToModulesOutput extern.nixos
|
||||||
|
// {
|
||||||
|
inherit (nixos) barcodebuddy barcodebuddy-scanner minecraft-bedrock vouch;
|
||||||
|
network = {
|
||||||
|
__functor = network: _: {
|
||||||
|
imports = [network.netgroups network.namespace network.resolve];
|
||||||
|
};
|
||||||
|
inherit (nixos.network) netgroups namespace resolve;
|
||||||
|
};
|
||||||
|
sssd = {
|
||||||
|
__functor = sssd: _: {
|
||||||
|
imports = [sssd.sssd sssd.pam];
|
||||||
|
};
|
||||||
|
inherit (nixos.sssd) sssd pam genso;
|
||||||
|
};
|
||||||
|
};
|
||||||
homeModules = treeToModulesOutput tree.impure.modules.extern.home;
|
homeModules = treeToModulesOutput tree.impure.modules.extern.home;
|
||||||
miscModules = treeToModulesOutput tree.impure.modules.extern.misc;
|
miscModules = treeToModulesOutput tree.impure.modules.extern.misc;
|
||||||
lib = import ./lib.nix {
|
lib = import ./lib.nix {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
final: prev: let
|
final: prev: let
|
||||||
in {
|
in {
|
||||||
barcodebuddy = final.callPackage ../packages/barcodebuddy.nix {};
|
barcodebuddy = final.callPackage ../packages/barcodebuddy {};
|
||||||
|
barcodebuddy-scanner = final.callPackage ../packages/barcodebuddy/scanner.nix {
|
||||||
|
php = final.php83;
|
||||||
|
};
|
||||||
|
barcodebuddy-scanner-python = final.callPackage ../packages/barcodebuddy/scanner-python.nix {
|
||||||
|
php = final.php83;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,18 @@
|
||||||
}: let
|
}: let
|
||||||
inherit (lib.strings) removePrefix;
|
inherit (lib.strings) removePrefix;
|
||||||
inherit (lib.trivial) importJSON;
|
inherit (lib.trivial) importJSON;
|
||||||
lock = importJSON ../flake.lock;
|
lock = importJSON ../../flake.lock;
|
||||||
inherit (lock.nodes) barcodebuddy;
|
inherit (lock.nodes) barcodebuddy;
|
||||||
in
|
in
|
||||||
stdenvNoCC.mkDerivation {
|
stdenvNoCC.mkDerivation {
|
||||||
pname = "barcodebuddy";
|
pname = "barcodebuddy";
|
||||||
version = removePrefix "v" barcodebuddy.original.ref;
|
version = removePrefix "v" barcodebuddy.original.ref;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
inherit (barcodebuddy.locked) repo owner rev;
|
inherit (barcodebuddy.locked) repo owner rev;
|
||||||
sha256 = barcodebuddy.locked.narHash;
|
sha256 = barcodebuddy.locked.narHash;
|
||||||
};
|
};
|
||||||
|
|
||||||
skipConfigure = true;
|
skipConfigure = true;
|
||||||
skipBuild = true;
|
skipBuild = true;
|
||||||
|
|
||||||
|
|
@ -27,4 +29,9 @@ in
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/Forceu/barcodebuddy";
|
||||||
|
license = lib.licenses.agpl3Plus;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
47
packages/barcodebuddy/scanner-python.nix
Normal file
47
packages/barcodebuddy/scanner-python.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
stdenvNoCC,
|
||||||
|
makeWrapper,
|
||||||
|
barcodebuddy,
|
||||||
|
barcodebuddy-scanner,
|
||||||
|
screen,
|
||||||
|
lib,
|
||||||
|
enableRequests ? true,
|
||||||
|
enablePhp ? false,
|
||||||
|
php,
|
||||||
|
python3,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.lists) optional optionals;
|
||||||
|
inherit (lib.strings) makeBinPath;
|
||||||
|
python = python3.withPackages (
|
||||||
|
p:
|
||||||
|
[p.evdev]
|
||||||
|
++ optional enableRequests p.requests
|
||||||
|
);
|
||||||
|
in
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "barcodebuddy-scanner.py";
|
||||||
|
inherit (barcodebuddy) version src;
|
||||||
|
inherit (barcodebuddy-scanner) patches meta;
|
||||||
|
|
||||||
|
skipConfigure = true;
|
||||||
|
skipBuild = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [python];
|
||||||
|
|
||||||
|
scannerPath = makeBinPath (
|
||||||
|
optionals enablePhp [screen php]
|
||||||
|
);
|
||||||
|
${
|
||||||
|
if enablePhp
|
||||||
|
then "barcodebuddyScript"
|
||||||
|
else null
|
||||||
|
} = "${barcodebuddy}/index.php";
|
||||||
|
|
||||||
|
scannerSource = "example/grabInput.py";
|
||||||
|
inherit (barcodebuddy-scanner) installPhase postInstall;
|
||||||
|
}
|
||||||
63
packages/barcodebuddy/scanner.nix
Normal file
63
packages/barcodebuddy/scanner.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
{
|
||||||
|
stdenvNoCC,
|
||||||
|
fetchpatch,
|
||||||
|
makeWrapper,
|
||||||
|
barcodebuddy,
|
||||||
|
curl,
|
||||||
|
evtest,
|
||||||
|
screen,
|
||||||
|
lib,
|
||||||
|
enableCurl ? true,
|
||||||
|
enablePhp ? false,
|
||||||
|
php,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib.lists) optional optionals;
|
||||||
|
inherit (lib.strings) makeBinPath;
|
||||||
|
in
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "barcodebuddy-scanner";
|
||||||
|
inherit (barcodebuddy) version src;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "barcodebuddy-grab-input.patch";
|
||||||
|
url = "https://github.com/gensokyo-zone/barcodebuddy/commit/9497d88b7971f2b47c9dcc32183721e059cd6d1d.patch";
|
||||||
|
sha256 = "sha256-1HV5VMlXR4VoMo01KhlZ3bTdVLMJ08qzFqhqK4hBHdg=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
skipConfigure = true;
|
||||||
|
skipBuild = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
scannerSource = "example/grabInput.sh";
|
||||||
|
scannerPath = makeBinPath (
|
||||||
|
[evtest]
|
||||||
|
++ optional enableCurl curl
|
||||||
|
++ optionals enablePhp [screen php]
|
||||||
|
);
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
install -Dm 0755 $scannerSource $out/bin/barcodebuddy-grab-input
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/barcodebuddy-grab-input \
|
||||||
|
--set-default SCRIPT_LOCATION "''${barcodebuddyScript-/var/www/html/barcodebuddy/index.php}" \
|
||||||
|
--prefix PATH : "$scannerPath"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta =
|
||||||
|
barcodebuddy.meta
|
||||||
|
// {
|
||||||
|
mainProgram = "barcodebuddy-grab-input";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -50,6 +50,8 @@
|
||||||
krb5-ldap
|
krb5-ldap
|
||||||
nfs-utils-ldap
|
nfs-utils-ldap
|
||||||
barcodebuddy
|
barcodebuddy
|
||||||
|
barcodebuddy-scanner
|
||||||
|
barcodebuddy-scanner-python
|
||||||
openwebrxplus
|
openwebrxplus
|
||||||
systemd2mqtt
|
systemd2mqtt
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -4,10 +4,15 @@ _: {
|
||||||
modules = [
|
modules = [
|
||||||
./nixos.nix
|
./nixos.nix
|
||||||
];
|
];
|
||||||
deploy.hostname = "10.1.1.63";
|
|
||||||
exports = {
|
exports = {
|
||||||
services = {
|
services = {
|
||||||
sshd.enable = true;
|
sshd.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
network.networks = {
|
||||||
|
local = {
|
||||||
|
slaac.postfix = "40c3:23df:e82a:b214";
|
||||||
|
address4 = "10.1.1.63";
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,25 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the nixos.nix(5) man page
|
# your system. Help is available in the nixos.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
config,
|
||||||
[ # Include the results of the hardware scan.
|
pkgs,
|
||||||
./hardware-configuration.nix
|
meta,
|
||||||
];
|
...
|
||||||
|
}: {
|
||||||
|
imports = let
|
||||||
|
inherit (meta) nixos;
|
||||||
|
in [
|
||||||
|
nixos.sops
|
||||||
|
nixos.base
|
||||||
|
nixos.barcodebuddy-scanner
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
networking.hostName = "nixos"; # Define your hostname.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
# Configure network proxy if necessary
|
||||||
|
|
@ -24,12 +29,6 @@
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Vancouver";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
i18n.defaultLocale = "en_CA.UTF-8";
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
|
|
||||||
|
|
@ -39,8 +38,10 @@
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
layout = "us";
|
xkb = {
|
||||||
xkbVariant = "";
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
|
|
@ -68,11 +69,13 @@
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
users.users.logistics = {
|
users.users.logistics = {
|
||||||
|
uid = 1000;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "Logistics";
|
description = "Logistics";
|
||||||
extraGroups = [ "networkmanager" "wheel" ];
|
extraGroups = ["networkmanager" "wheel"];
|
||||||
|
hashedPasswordFile = config.sops.secrets.logistics-user-password.path;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
# thunderbird
|
# thunderbird
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -99,6 +102,8 @@
|
||||||
|
|
||||||
# List services that you want to enable:
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
services.barcodebuddy-scanner.user = "logistics";
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
|
|
||||||
|
|
@ -108,6 +113,11 @@
|
||||||
# Or disable the firewall altogether.
|
# Or disable the firewall altogether.
|
||||||
# networking.firewall.enable = false;
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
secrets.logistics-user-password = {};
|
||||||
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
|
@ -115,5 +125,4 @@
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man nixos.nix or on https://nixos.org/nixos/options.html).
|
# (e.g. man nixos.nix or on https://nixos.org/nixos/options.html).
|
||||||
system.stateVersion = "23.11"; # Did you read the comment?
|
system.stateVersion = "23.11"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
57
systems/logistics/secrets.yaml
Normal file
57
systems/logistics/secrets.yaml
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
logistics-user-password: ENC[AES256_GCM,data:2n7OFQT4ZTrjzwVuuejP2sJxenP0dXzooWfr3Y+g6u5fM5tkGm5+Oa76VfLrFZtjwJUj3Q9BP1L1/ISPVZxnujxDwJW7mDtvKg==,iv:Q/UAxMQypP2Y6CzQxboI5dN6l95KECuJa2pB+Dcivvs=,tag:B1ahOzNzR8mU30qECWZtqA==,type:str]
|
||||||
|
sops:
|
||||||
|
shamir_threshold: 1
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1tkkau8vk5h9dh3kemash4eghn7lk84j0hhpmvvf7j6phgcsm9vmsphv0py
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjYk9IbTZjTFVsU28rN0Rh
|
||||||
|
ZE1wbzlrbjJkNFpXM2VnRytGb2V4QlVUaFcwCnNRaUtLTDFjbGF4TURhcW9LNXUw
|
||||||
|
aFAyeWRtU1NSaFI5UzMva1N2NTFsME0KLS0tIHhUNS9jK2hPamgrR0RjZ2xGajFG
|
||||||
|
dFVET2hqU0NTTmtKc0dKSGFSdnhMTGcKreJqNeHczADUmMgHOHhy+pa7S5hZvTUt
|
||||||
|
TXycS6WHfBjiG221yoxyr/L/wPCHKTatVMmcxHhTPBKyzOBYZL3dzQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-05-18T00:10:16Z"
|
||||||
|
mac: ENC[AES256_GCM,data:XmvgNXygTjC3ra13KvluZNUZt8XTGN75OVsnNX+pK/ZXbK/+qt9/Q/1thSOhkg8pLzfLYm9KXqRlVYHTrK+Wr2jko/mVdr9i8IgkVS5pJfvmvIjG7tW5nN88XjfFWAs5fnuvtSvJ2eJKzC5/kgWRwOMXdEfnodiZllqcqznvDAo=,iv:VbJvo8TgU78SOWAvlQ/bH4XY/w1ISaQG7X1UzNZ6InU=,tag:LRrfSssmIgDxuagy0gfbpg==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2024-05-18T00:09:19Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQIMA82M54yws73UAQ/8C2v2raqvfKJAkTBOY2hFj8n3TeC6y6GdnHubFSlHiEHH
|
||||||
|
uuVnlRnRVBOXytMiVq5WdY4ryW2lj1L5RR3xVkMsKgykQjotSodjdv0gYXw3ymp8
|
||||||
|
z7IVbWYY7u2xO7oscqSHOY5kgQmQOnNSy5RppcD+WOu3osWInsEa3BMvWmfa1JWx
|
||||||
|
qkkUIOVG0E/mxc6z/FUCuKMV5vKAMATPUpxFxNo7U4nseX1Wz6W5s/P6O7W7Mx94
|
||||||
|
DA68s8z3pLRj7jOjM/jZGj2Hg4wBqYdQ6xb0N6GaYDll4zH1nDJdB5eeyd0rO1V1
|
||||||
|
UdEwqcuWZQ34PVFu9sqEgVY3V5ugK6oQp7jIEOYBL5pawmxnDxDVUhE+CvfOBQdN
|
||||||
|
zEhzsV5SshGwRQMzc2+mU1b/6niKWRQIN03jKv1cZ1r+FEGdt6bTeOx4D4+dJo1h
|
||||||
|
WFESDAsuE12gbzc3tOgDX9yMQU9spa7vcLVLEkn8wnFhHJNkdvmTzKNT4vvShAcq
|
||||||
|
mbpOe3EE03watP9Eg1vyczkQd5wHDCMiU+a6ewlxFbYCyvEOa31n9mUV6k/NMlhF
|
||||||
|
FFk/U3WAJ8EXHMmWSSNf91vqT5R3UBdZ5nOfJ+W6u6GO9yDs/1LcsJMyxhVf6Jpz
|
||||||
|
CB1n9BlSLjfF3Yu/gZ+75E2WqHCDDAKwxIU3y+q3bKYXBGd5AnYvH0Xuv6oa3gTS
|
||||||
|
XgErI7vjtfKztf77RnXOrSXn0uaP4HjSqmNCl0WLFiICRB17ZrlSgDtI/nF82+hj
|
||||||
|
OELdclxPfpZjWbF9mHW5bJPnAkcRsgVqwIjU8YY5x/CXDLc5BWBwKp2oMSLzIfg=
|
||||||
|
=NSbc
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: CD8CE78CB0B3BDD4
|
||||||
|
- created_at: "2024-05-18T00:09:19Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQEMA2W9MER3HLb7AQf/UKlYZ3sPQA0GIQahBvPxYaHZqAElGN5PgQhV1AZMm6ev
|
||||||
|
ZlXR6z2t4qbV/4rEGNJlBh2d/xwn7BENnJuDf/XiQlzMxpqOVp06V8EToS0xp9Uk
|
||||||
|
cAglQm5EwTMSEfcNP6f2wKn6S17exbmodk2zhmXzB2f0mxF9scbLfUjC7t4sGfhe
|
||||||
|
A4M3e4ZZ+mSIEk1XD8AAQKEwbnxdineqgVTrIzTtejryaVXPdeJv0M7cgOXJhglv
|
||||||
|
rQjNInN/ITrKCWjzYvhVFAleozAku1yzw5GiVAsSl0wQQ9nMIBX9zK17S5d8UK9I
|
||||||
|
IXNSfK2RVHLenlffI00a0yxgqEWfgJafB8Ov4glym9JeAR6wUPdxr34ZA/AkX0hF
|
||||||
|
NJABFE5PFqtYDn8hV6+zOSuPIpAPtvrCLb2G4z9mEn9ItmLscJfsaRJKFfpWKHTt
|
||||||
|
TSuFNluSvvUWW6OvbGvZbgZlp2yu/PHjOT3i6DXKxw==
|
||||||
|
=E1Vw
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: 65BD3044771CB6FB
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.8.1
|
||||||
|
|
@ -17,6 +17,7 @@ _: {
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
home-assistant.enable = true;
|
home-assistant.enable = true;
|
||||||
zigbee2mqtt.enable = true;
|
zigbee2mqtt.enable = true;
|
||||||
|
barcodebuddy.enable = true;
|
||||||
postgresql.enable = true;
|
postgresql.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -108,6 +108,13 @@ module "kasen_system_records" {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module "logistics_system_records" {
|
||||||
|
source = "./system/records"
|
||||||
|
zone_id = cloudflare_zone.gensokyo-zone_zone.id
|
||||||
|
zone_zone = cloudflare_zone.gensokyo-zone_zone.zone
|
||||||
|
net_data = local.systems.logistics.network
|
||||||
|
}
|
||||||
|
|
||||||
module "litterbox_system_records" {
|
module "litterbox_system_records" {
|
||||||
source = "./system/records"
|
source = "./system/records"
|
||||||
zone_id = cloudflare_zone.gensokyo-zone_zone.id
|
zone_id = cloudflare_zone.gensokyo-zone_zone.id
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue