mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 12:29:19 -08:00
feat: kw -> nixfiles, kw.secrets -> secrets
This commit is contained in:
parent
9794026f6c
commit
ece1dbe466
63 changed files with 180 additions and 265 deletions
|
|
@ -46,7 +46,7 @@ pkgs.mkShell {
|
||||||
nf-update
|
nf-update
|
||||||
sumireko-apply
|
sumireko-apply
|
||||||
] ++ config.runners.lazy.nativeBuildInputs
|
] ++ config.runners.lazy.nativeBuildInputs
|
||||||
++ lib.optional (builtins.getEnv "TRUSTED" != "") (pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.network.nodes.all.${builtins.getEnv "HOME_HOSTNAME"}.kw.secrets.repo.bitw.source} "$@"'')
|
++ lib.optional (builtins.getEnv "TRUSTED" != "") (pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.network.nodes.all.${builtins.getEnv "HOME_HOSTNAME"}.secrets.repo.bitw.source} "$@"'')
|
||||||
++ (map
|
++ (map
|
||||||
(node: writeShellScriptBin "${node.networking.hostName}-sd-img" ''
|
(node: writeShellScriptBin "${node.networking.hostName}-sd-img" ''
|
||||||
nix build -f . network.nodes.${node.networking.hostName}.system.build.sdImage --show-trace
|
nix build -f . network.nodes.${node.networking.hostName}.system.build.sdImage --show-trace
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
{ config, tf, meta, kw, pkgs, lib, inputs, ... }: let
|
{ config, tf, meta, nixfiles, pkgs, lib, inputs, ... }: let
|
||||||
oci-root = meta.deploy.targets.oci-root.tf;
|
oci-root = meta.deploy.targets.oci-root.tf;
|
||||||
cfg = config.kw.oci;
|
cfg = config.nixfiles.oci;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.kw.oci = {
|
options.nixfiles.oci = {
|
||||||
base = lib.mkOption {
|
base = lib.mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Canonical Ubuntu provides an EXT4 root filesystem.
|
Canonical Ubuntu provides an EXT4 root filesystem.
|
||||||
|
|
@ -86,19 +86,19 @@ in
|
||||||
interfaces = lib.singleton interface;
|
interfaces = lib.singleton interface;
|
||||||
ipv4 = lib.mkOrder 1000 (tf.resources.${config.networking.hostName}.getAttr "public_ip");
|
ipv4 = lib.mkOrder 1000 (tf.resources.${config.networking.hostName}.getAttr "public_ip");
|
||||||
ipv6 = let
|
ipv6 = let
|
||||||
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_kw_subnet.importAttr "ipv6cidr_block"));
|
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_nixfiles_subnet.importAttr "ipv6cidr_block"));
|
||||||
in assert lib.hasSuffix "::" prefix; prefix + toString config.kw.oci.network.publicV6;
|
in assert lib.hasSuffix "::" prefix; prefix + toString config.nixfiles.oci.network.publicV6;
|
||||||
ip = hostname: class: if hostname != config.networking.hostName then
|
ip = hostname: class: if hostname != config.networking.hostName then
|
||||||
if class == 6 then let
|
if class == 6 then let
|
||||||
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_kw_subnet.importAttr "ipv6cidr_block"));
|
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_nixfiles_subnet.importAttr "ipv6cidr_block"));
|
||||||
in assert lib.hasSuffix "::" prefix; prefix + toString config.kw.oci.network.publicV6
|
in assert lib.hasSuffix "::" prefix; prefix + toString config.nixfiles.oci.network.publicV6
|
||||||
else if class == 4 then
|
else if class == 4 then
|
||||||
tf.resources.${config.networking.hostName}.importAttr "public_ip"
|
tf.resources.${config.networking.hostName}.importAttr "public_ip"
|
||||||
else throw "${config.networking.hostName}: IP for ${hostname} of ${toString class} is invalid."
|
else throw "${config.networking.hostName}: IP for ${hostname} of ${toString class} is invalid."
|
||||||
else
|
else
|
||||||
if class == 6 then let
|
if class == 6 then let
|
||||||
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_kw_subnet.importAttr "ipv6cidr_block"));
|
prefix = lib.head (lib.splitString "/" (oci-root.resources.oci_nixfiles_subnet.importAttr "ipv6cidr_block"));
|
||||||
in assert lib.hasSuffix "::" prefix; prefix + toString config.kw.oci.network.publicV6
|
in assert lib.hasSuffix "::" prefix; prefix + toString config.nixfiles.oci.network.publicV6
|
||||||
else if class == 4 then
|
else if class == 4 then
|
||||||
tf.resources.${config.networking.hostName}.getAttr "public_ip"
|
tf.resources.${config.networking.hostName}.getAttr "public_ip"
|
||||||
else throw "${config.networking.hostName}: IP for ${hostname} of ${toString class} is invalid.";
|
else throw "${config.networking.hostName}: IP for ${hostname} of ${toString class} is invalid.";
|
||||||
|
|
@ -111,7 +111,7 @@ in
|
||||||
|
|
||||||
deploy.tf =
|
deploy.tf =
|
||||||
let
|
let
|
||||||
compartment_id = oci-root.resources.oci_kw_compartment.importAttr "id";
|
compartment_id = oci-root.resources.oci_nixfiles_compartment.importAttr "id";
|
||||||
inherit (tf.lib.tf) terraformExpr;
|
inherit (tf.lib.tf) terraformExpr;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
@ -127,10 +127,10 @@ in
|
||||||
providers.oci = {
|
providers.oci = {
|
||||||
inputs = {
|
inputs = {
|
||||||
tenancy_ocid = oci-root.outputs.oci_tenancy.import;
|
tenancy_ocid = oci-root.outputs.oci_tenancy.import;
|
||||||
user_ocid = oci-root.resources.oci_kw_user.importAttr "id";
|
user_ocid = oci-root.resources.oci_nixfiles_user.importAttr "id";
|
||||||
fingerprint = oci-root.resources.oci_kw_apikey.importAttr "fingerprint";
|
fingerprint = oci-root.resources.oci_nixfiles_apikey.importAttr "fingerprint";
|
||||||
region = oci-root.outputs.oci_region.import;
|
region = oci-root.outputs.oci_region.import;
|
||||||
private_key_path = oci-root.resources.oci_kw_key_file.importAttr "filename";
|
private_key_path = oci-root.resources.oci_nixfiles_key_file.importAttr "filename";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
resources = lib.mkMerge [{
|
resources = lib.mkMerge [{
|
||||||
|
|
@ -183,7 +183,7 @@ in
|
||||||
inputs = {
|
inputs = {
|
||||||
vnic_id = tf.resources."${config.networking.hostName}_vnic".refAttr "vnic_attachments[0].vnic_id";
|
vnic_id = tf.resources."${config.networking.hostName}_vnic".refAttr "vnic_attachments[0].vnic_id";
|
||||||
display_name = config.networking.hostName;
|
display_name = config.networking.hostName;
|
||||||
ip_address = terraformExpr ''cidrhost("${oci-root.resources.oci_kw_subnet.importAttr "ipv6cidr_block"}", ${toString cfg.network.publicV6})'';
|
ip_address = terraformExpr ''cidrhost("${oci-root.resources.oci_nixfiles_subnet.importAttr "ipv6cidr_block"}", ${toString cfg.network.publicV6})'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"${config.networking.hostName}" = {
|
"${config.networking.hostName}" = {
|
||||||
|
|
@ -209,8 +209,8 @@ in
|
||||||
create_vnic_details = [
|
create_vnic_details = [
|
||||||
{
|
{
|
||||||
assign_public_ip = true;
|
assign_public_ip = true;
|
||||||
subnet_id = oci-root.resources.oci_kw_subnet.importAttr "id";
|
subnet_id = oci-root.resources.oci_nixfiles_subnet.importAttr "id";
|
||||||
private_ip = terraformExpr ''cidrhost("${oci-root.resources.oci_kw_subnet.importAttr "cidr_block"}", ${toString cfg.network.privateV4})'';
|
private_ip = terraformExpr ''cidrhost("${oci-root.resources.oci_nixfiles_subnet.importAttr "cidr_block"}", ${toString cfg.network.privateV4})'';
|
||||||
nsg_ids = [
|
nsg_ids = [
|
||||||
(tf.resources.firewall_group.refAttr "id")
|
(tf.resources.firewall_group.refAttr "id")
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
profiles = tree.prev;
|
profiles = tree.prev;
|
||||||
appendedProfiles = with profiles; {
|
appendedProfiles = with profiles; {
|
||||||
ubuntu = { config, ... }: {
|
ubuntu = { config, ... }: {
|
||||||
kw.oci.base = "Canonical Ubuntu";
|
nixfiles.oci.base = "Canonical Ubuntu";
|
||||||
imports = with import (inputs.tf-nix + "/modules"); [
|
imports = with import (inputs.tf-nix + "/modules"); [
|
||||||
nixos.ubuntu-linux
|
nixos.ubuntu-linux
|
||||||
common
|
common
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
oracle = { config, ... }: {
|
oracle = { config, ... }: {
|
||||||
kw.oci.base = "Oracle Linux";
|
nixfiles.oci.base = "Oracle Linux";
|
||||||
imports = with import (inputs.tf-nix + "/modules"); [
|
imports = with import (inputs.tf-nix + "/modules"); [
|
||||||
nixos.oracle-linux
|
nixos.oracle-linux
|
||||||
common
|
common
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ let
|
||||||
inherit (lib.attrsets) mapListToAttrs nameValuePair;
|
inherit (lib.attrsets) mapListToAttrs nameValuePair;
|
||||||
inherit (lib.modules) mkIf;
|
inherit (lib.modules) mkIf;
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables = mapListToAttrs
|
secrets.variables = mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "wireless-${field}" {
|
nameValuePair "wireless-${field}" {
|
||||||
path = "secrets/wifi";
|
path = "secrets/wifi";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.theme.enable = true;
|
nixfiles.theme.enable = true;
|
||||||
|
|
||||||
base16 = {
|
base16 = {
|
||||||
vim.enable = false;
|
vim.enable = false;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, pkgs, nixos, kw, ... }:
|
{ config, lib, pkgs, nixos, nixfiles, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (lib.strings) toLower;
|
inherit (lib.strings) toLower;
|
||||||
|
|
@ -108,7 +108,7 @@ let
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
home.file.".mozilla/tst.css" = { inherit (kw.sassTemplate { name = "tst"; src = ./tst.sass; }) source; };
|
home.file.".mozilla/tst.css" = { inherit (nixfiles.sassTemplate { name = "tst"; src = ./tst.sass; }) source; };
|
||||||
|
|
||||||
programs.zsh.shellAliases = {
|
programs.zsh.shellAliases = {
|
||||||
ff-pm = "firefox --ProfileManager";
|
ff-pm = "firefox --ProfileManager";
|
||||||
|
|
@ -133,7 +133,7 @@ in
|
||||||
id = 0;
|
id = 0;
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
settings = commonSettings;
|
settings = commonSettings;
|
||||||
userChrome = (kw.sassTemplate { name = "userChrome"; src = ./userChrome.sass; }).text;
|
userChrome = (nixfiles.sassTemplate { name = "userChrome"; src = ./userChrome.sass; }).text;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
'';
|
'';
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font.name = config.kw.theme.font.termName;
|
font.name = config.nixfiles.theme.font.termName;
|
||||||
settings = {
|
settings = {
|
||||||
font_size = "10.0";
|
font_size = "10.0";
|
||||||
bold_font = "auto";
|
bold_font = "auto";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, witch, ... }:
|
{ config, pkgs, lib, witch, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (config.kw.theme) base16;
|
inherit (config.nixfiles.theme) base16;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
systemd.user.services = {
|
systemd.user.services = {
|
||||||
|
|
@ -21,7 +21,7 @@ in
|
||||||
|
|
||||||
programs.mako = {
|
programs.mako = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = "${config.kw.theme.font.name} ${toString config.kw.theme.font.size}";
|
font = "${config.nixfiles.theme.font.name} ${toString config.nixfiles.theme.font.size}";
|
||||||
defaultTimeout = 3000;
|
defaultTimeout = 3000;
|
||||||
borderColor = base16.base08;
|
borderColor = base16.base08;
|
||||||
backgroundColor = "${base16.base00}BF";
|
backgroundColor = "${base16.base00}BF";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, nixos, pkgs, tf, ... }:
|
{ config, lib, nixos, pkgs, tf, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
matrix-pass = {
|
matrix-pass = {
|
||||||
path = "social/matrix";
|
path = "social/matrix";
|
||||||
field = "password";
|
field = "password";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, meta, lib, ... }: {
|
{ config, pkgs, meta, lib, ... }: {
|
||||||
programs.rbw = {
|
programs.rbw = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = lib.mkIf (meta.trusted ? secrets) (pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.kw.secrets.repo.bitw.source} "$@"'');
|
package = lib.mkIf (meta.trusted ? secrets) (pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.secrets.repo.bitw.source} "$@"'');
|
||||||
settings = {
|
settings = {
|
||||||
email = "kat@kittywit.ch";
|
email = "kat@kittywit.ch";
|
||||||
base_url = "https://vault.kittywit.ch";
|
base_url = "https://vault.kittywit.ch";
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ let lockCommand = config.programs.swaylock.script; in
|
||||||
|
|
||||||
services.i3gopher = { enable = true; };
|
services.i3gopher = { enable = true; };
|
||||||
|
|
||||||
kw.theme.swaylock = true;
|
nixfiles.theme.swaylock = true;
|
||||||
|
|
||||||
programs.zsh.profileExtra = ''
|
programs.zsh.profileExtra = ''
|
||||||
# If running from tty1 start sway
|
# If running from tty1 start sway
|
||||||
|
|
@ -100,9 +100,9 @@ let lockCommand = config.programs.swaylock.script; in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
fonts = {
|
fonts = {
|
||||||
names = [ config.kw.theme.font.name ];
|
names = [ config.nixfiles.theme.font.name ];
|
||||||
style = "Regular";
|
style = "Regular";
|
||||||
size = config.kw.theme.font.size;
|
size = config.nixfiles.theme.font.size;
|
||||||
};
|
};
|
||||||
terminal = "${pkgs.wezterm}/bin/wezterm";
|
terminal = "${pkgs.wezterm}/bin/wezterm";
|
||||||
menu = "${pkgs.j4-dmenu-desktop}/bin/j4-dmenu-desktop --no-generic --dmenu=\"${dmenu}\" --term='${pkgs.wezterm}/bin/wezterm'";
|
menu = "${pkgs.j4-dmenu-desktop}/bin/j4-dmenu-desktop --no-generic --dmenu=\"${dmenu}\" --term='${pkgs.wezterm}/bin/wezterm'";
|
||||||
|
|
@ -265,7 +265,7 @@ let lockCommand = config.programs.swaylock.script; in
|
||||||
"${cfg.modifier}+Delete" = ''mode "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown"'';
|
"${cfg.modifier}+Delete" = ''mode "System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown"'';
|
||||||
};
|
};
|
||||||
|
|
||||||
colors = let inherit (config.kw.theme) base16; in
|
colors = let inherit (config.nixfiles.theme) base16; in
|
||||||
{
|
{
|
||||||
focused = {
|
focused = {
|
||||||
border = base16.base01;
|
border = base16.base01;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
let
|
let
|
||||||
inherit (lib.modules) mkForce;
|
inherit (lib.modules) mkForce;
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
syncplay-pass = {
|
syncplay-pass = {
|
||||||
path = "services/media/syncplay";
|
path = "services/media/syncplay";
|
||||||
field = "password";
|
field = "password";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, kw, ... }:
|
{ config, lib, pkgs, nixfiles, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.configFile."waybar/style.css" = { inherit (kw.sassTemplate { name = "waybar-style"; src = ./waybar.sass; }) source; };
|
xdg.configFile."waybar/style.css" = { inherit (nixfiles.sassTemplate { name = "waybar-style"; src = ./waybar.sass; }) source; };
|
||||||
|
|
||||||
#systemd.user.services.waybar.Service.Environment = lib.singleton "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
|
#systemd.user.services.waybar.Service.Environment = lib.singleton "NOTMUCH_CONFIG=${config.home.sessionVariables.NOTMUCH_CONFIG}";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@
|
||||||
return {
|
return {
|
||||||
check_for_updates = true,
|
check_for_updates = true,
|
||||||
enable_tab_bar = true,
|
enable_tab_bar = true,
|
||||||
font = wezterm.font "${config.kw.theme.font.termName}",
|
font = wezterm.font "${config.nixfiles.theme.font.termName}",
|
||||||
font_size = ${toString config.kw.theme.font.size},
|
font_size = ${toString config.nixfiles.theme.font.size},
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{ config, kw, ... }:
|
{ config, nixfiles, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
xdg.configFile."wofi/wofi.css" = { inherit (kw.sassTemplate { name = "wofi-style"; src = ./wofi.sass; }) source; };
|
xdg.configFile."wofi/wofi.css" = { inherit (nixfiles.sassTemplate { name = "wofi-style"; src = ./wofi.sass; }) source; };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
6
meta.nix
6
meta.nix
|
|
@ -10,7 +10,7 @@
|
||||||
esphomeNodes = (map
|
esphomeNodes = (map
|
||||||
(node: {
|
(node: {
|
||||||
network.nodes.esphome.${node} = {
|
network.nodes.esphome.${node} = {
|
||||||
imports = config.lib.kw.esphomeImport node;
|
imports = config.lib.nixfiles.esphomeImport node;
|
||||||
esphome = {
|
esphome = {
|
||||||
name = node;
|
name = node;
|
||||||
};
|
};
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
nixosNodes = (map
|
nixosNodes = (map
|
||||||
(node: {
|
(node: {
|
||||||
network.nodes.nixos.${node} = {
|
network.nodes.nixos.${node} = {
|
||||||
imports = config.lib.kw.nixosImport node;
|
imports = config.lib.nixfiles.nixosImport node;
|
||||||
networking = {
|
networking = {
|
||||||
hostName = node;
|
hostName = node;
|
||||||
};
|
};
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
darwinNodes = (map
|
darwinNodes = (map
|
||||||
(node: {
|
(node: {
|
||||||
network.nodes.darwin.${node} = {
|
network.nodes.darwin.${node} = {
|
||||||
imports = config.lib.kw.darwinImport node;
|
imports = config.lib.nixfiles.darwinImport node;
|
||||||
networking = {
|
networking = {
|
||||||
hostName = node;
|
hostName = node;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -102,7 +102,9 @@ in {
|
||||||
field = head (reverseList parts);
|
field = head (reverseList parts);
|
||||||
path = if length parts > 1 then head parts else "password";
|
path = if length parts > 1 then head parts else "password";
|
||||||
in nameValuePair "${config.esphome.name}-secret-${name}" ({
|
in nameValuePair "${config.esphome.name}-secret-${name}" ({
|
||||||
value.shellCommand = "bitw get ${path} -f ${field}";
|
value.shellCommand = let
|
||||||
|
bitw = pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.network.nodes.all.${builtins.getEnv "HOME_HOSTNAME"}.secrets.repo.bitw.source} "$@"'';
|
||||||
|
in "${bitw}/bin/bitw get ${path} -f ${field}";
|
||||||
type = "string";
|
type = "string";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,3 @@
|
||||||
{ config, nixos, lib, ... }:
|
{ config, nixos, ... }: {
|
||||||
|
secrets.repo = nixos.secrets.repo;
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
secretType = types.submodule ({ name, ... }: {
|
|
||||||
options = {
|
|
||||||
path = mkOption { type = types.str; };
|
|
||||||
field = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
repoSecretType = types.submodule ({ name, ... }: {
|
|
||||||
options = {
|
|
||||||
source = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
};
|
|
||||||
text = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
cfg = config.kw.secrets;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.kw = {
|
|
||||||
secrets = {
|
|
||||||
variables = mkOption {
|
|
||||||
type = types.attrsOf secretType;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
repo = mkOption {
|
|
||||||
type = types.attrsOf repoSecretType;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = {
|
|
||||||
kw.secrets.repo = nixos.kw.secrets.repo;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,9 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let cfg = config.kw.theme; in
|
let cfg = config.nixfiles.theme; in
|
||||||
{
|
{
|
||||||
options.kw.theme = {
|
options.nixfiles.theme = {
|
||||||
enable = mkEnableOption "kat's theme module";
|
enable = mkEnableOption "kat's theme module";
|
||||||
sass = {
|
sass = {
|
||||||
variables = mkOption {
|
variables = mkOption {
|
||||||
|
|
@ -55,7 +55,7 @@ let cfg = config.kw.theme; in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = mkIf (cfg.enable) {
|
config = mkIf (cfg.enable) {
|
||||||
kw.theme = {
|
nixfiles.theme = {
|
||||||
base16 = lib.mapAttrs' (k: v: lib.nameValuePair k "#${v.hex}")
|
base16 = lib.mapAttrs' (k: v: lib.nameValuePair k "#${v.hex}")
|
||||||
(lib.filterAttrs (n: _: lib.hasInfix "base" n) config.base16.defaultScheme);
|
(lib.filterAttrs (n: _: lib.hasInfix "base" n) config.base16.defaultScheme);
|
||||||
base16t = lib.mapAttrs' (k: v: lib.nameValuePair "${k}t" "rgba(${toString v.red.byte}, ${toString v.green.byte}, ${toString v.blue.byte}, ${toString cfg.alpha})")
|
base16t = lib.mapAttrs' (k: v: lib.nameValuePair "${k}t" "rgba(${toString v.red.byte}, ${toString v.green.byte}, ${toString v.blue.byte}, ${toString cfg.alpha})")
|
||||||
|
|
@ -132,7 +132,7 @@ let cfg = config.kw.theme; in
|
||||||
Install = { WantedBy = [ "sway-session.target" ]; };
|
Install = { WantedBy = [ "sway-session.target" ]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
lib.kw.sassTemplate = { name, src }:
|
lib.nixfiles.sassTemplate = { name, src }:
|
||||||
let
|
let
|
||||||
variables = pkgs.writeText "base-variables.sass" ''
|
variables = pkgs.writeText "base-variables.sass" ''
|
||||||
${(concatStringsSep "\n" (mapAttrsToList(var: con: "\$${var}: ${con}") cfg.sass.variables))}
|
${(concatStringsSep "\n" (mapAttrsToList(var: con: "\$${var}: ${con}") cfg.sass.variables))}
|
||||||
|
|
@ -153,6 +153,6 @@ let cfg = config.kw.theme; in
|
||||||
inherit source;
|
inherit source;
|
||||||
text = builtins.readFile source;
|
text = builtins.readFile source;
|
||||||
};
|
};
|
||||||
_module.args = { inherit (config.lib) kw; };
|
_module.args = { inherit (config.lib) nixfiles; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ in
|
||||||
tree.impure.modules.tf
|
tree.impure.modules.tf
|
||||||
];
|
];
|
||||||
deploy.gcroot = {
|
deploy.gcroot = {
|
||||||
name = mkDefault "kw-${config.name}";
|
name = mkDefault "nixfiles-${config.name}";
|
||||||
user = mkIf (builtins.getEnv "HOME_USER" != "") (mkDefault (builtins.getEnv "HOME_USER"));
|
user = mkIf (builtins.getEnv "HOME_USER" != "") (mkDefault (builtins.getEnv "HOME_USER"));
|
||||||
};
|
};
|
||||||
providers.local = { };
|
providers.local = { };
|
||||||
|
|
|
||||||
|
|
@ -42,24 +42,24 @@ with lib;
|
||||||
homeImports = [];
|
homeImports = [];
|
||||||
users = mkDefault (singleton "kat");
|
users = mkDefault (singleton "kat");
|
||||||
};
|
};
|
||||||
lib.kw.nixosImport = hostName: lib.nodeImport {
|
lib.nixfiles.nixosImport = hostName: lib.nodeImport {
|
||||||
inherit (config.network.importing) nixosImports homeImports users;
|
inherit (config.network.importing) nixosImports homeImports users;
|
||||||
profiles = meta.nixos;
|
profiles = meta.nixos;
|
||||||
inherit hostName;
|
inherit hostName;
|
||||||
};
|
};
|
||||||
lib.kw.esphomeImport = hostName: lib.nodeImport {
|
lib.nixfiles.esphomeImport = hostName: lib.nodeImport {
|
||||||
nixosImports = config.network.importing.esphomeImports;
|
nixosImports = config.network.importing.esphomeImports;
|
||||||
homeImports = [];
|
homeImports = [];
|
||||||
users = [];
|
users = [];
|
||||||
profiles = { base = { }; };
|
profiles = { base = { }; };
|
||||||
inherit hostName;
|
inherit hostName;
|
||||||
};
|
};
|
||||||
lib.kw.darwinImport = hostName: lib.nodeImport {
|
lib.nixfiles.darwinImport = hostName: lib.nodeImport {
|
||||||
nixosImports = config.network.importing.darwinImports;
|
nixosImports = config.network.importing.darwinImports;
|
||||||
profiles = meta.darwin;
|
profiles = meta.darwin;
|
||||||
inherit (config.network.importing) homeImports users;
|
inherit (config.network.importing) homeImports users;
|
||||||
inherit hostName;
|
inherit hostName;
|
||||||
};
|
};
|
||||||
_module.args = { inherit (config.lib) kw; };
|
_module.args = { inherit (config.lib) nixfiles; };
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,8 +152,8 @@ with lib;
|
||||||
extraModules = [
|
extraModules = [
|
||||||
inputs.home-manager.darwinModules.home-manager
|
inputs.home-manager.darwinModules.home-manager
|
||||||
meta.modules.darwin
|
meta.modules.darwin
|
||||||
meta.modules.system.genesis
|
|
||||||
meta.modules.system
|
meta.modules.system
|
||||||
|
meta.modules.type
|
||||||
meta.system
|
meta.system
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
|
@ -164,9 +164,9 @@ with lib;
|
||||||
nixos = {
|
nixos = {
|
||||||
extraModules = [
|
extraModules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
meta.modules.system.genesis
|
|
||||||
meta.modules.nixos
|
meta.modules.nixos
|
||||||
meta.modules.system
|
meta.modules.system
|
||||||
|
meta.modules.type
|
||||||
meta.nixos.network
|
meta.nixos.network
|
||||||
meta.system
|
meta.system
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ config, pkgs, lib, ... }: with lib; {
|
{ config, pkgs, lib, ... }: with lib; {
|
||||||
options.kw.secrets.command = mkOption {
|
options.secrets.command = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = let
|
default = let
|
||||||
bitw = pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.network.nodes.all.${builtins.getEnv "HOME_HOSTNAME"}.kw.secrets.repo.bitw.source} "$@"'';
|
bitw = pkgs.writeShellScriptBin "bitw" ''${pkgs.rbw-bitw}/bin/bitw -p gpg://${config.network.nodes.all.${builtins.getEnv "HOME_HOSTNAME"}.secrets.repo.bitw.source} "$@"'';
|
||||||
in
|
in
|
||||||
"${bitw}/bin/bitw get";
|
"${bitw}/bin/bitw get";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,13 @@
|
||||||
{ config, lib, meta, ... }:
|
{ config, lib, meta, ... }: with lib; {
|
||||||
|
config = mkIf (config.secrets.variables != { }) {
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
mcfg = meta.kw.secrets;
|
|
||||||
cfg = config.kw.secrets;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
config = mkIf (cfg.variables != { }) {
|
|
||||||
deploy.tf.variables = mapAttrs'
|
deploy.tf.variables = mapAttrs'
|
||||||
(name: content:
|
(name: content:
|
||||||
nameValuePair name ({
|
nameValuePair name ({
|
||||||
value.shellCommand = "${mcfg.command} ${content.path}" + optionalString (content.field != "") " -f ${content.field}";
|
value.shellCommand = "${meta.secrets.command} ${content.path}" + optionalString (content.field != "") " -f ${content.field}";
|
||||||
type = "string";
|
type = "string";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
cfg.variables;
|
config.secrets.variables;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,44 +1,3 @@
|
||||||
{ config, lib, meta, ... }:
|
{ config, lib, meta, ... }: with lib; {
|
||||||
|
secrets.variables = lib.mkMerge (mapAttrsToList (username: user: user.secrets.variables) config.home-manager.users);
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
secretType = types.submodule ({ name, ... }: {
|
|
||||||
options = {
|
|
||||||
path = mkOption { type = types.str; };
|
|
||||||
field = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
repoSecretType = types.submodule ({ name, ... }: {
|
|
||||||
options = {
|
|
||||||
source = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
};
|
|
||||||
text = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
mcfg = meta.kw.secrets;
|
|
||||||
cfg = config.kw.secrets;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.kw = {
|
|
||||||
secrets = {
|
|
||||||
variables = mkOption {
|
|
||||||
type = types.attrsOf secretType;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
repo = mkOption {
|
|
||||||
type = types.attrsOf repoSecretType;
|
|
||||||
default = { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = {
|
|
||||||
kw.secrets.variables = lib.mkMerge (mapAttrsToList (username: user: user.kw.secrets.variables) config.home-manager.users);
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,17 @@
|
||||||
{ config, lib, ... }: with lib; {
|
{ config, lib, ... }: with lib; {
|
||||||
|
|
||||||
variables.katdns-address = {
|
variables.katdns-address = {
|
||||||
value.shellCommand = "${meta.kw.secrets.command} secrets/katdns -f address";
|
value.shellCommand = "${meta.secrets.command} secrets/katdns -f address";
|
||||||
type = "string";
|
type = "string";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
};
|
};
|
||||||
variables.katdns-name = {
|
variables.katdns-name = {
|
||||||
value.shellCommand = "${meta.kw.secrets.command} secrets/katdns -f username";
|
value.shellCommand = "${meta.secrets.command} secrets/katdns -f username";
|
||||||
type = "string";
|
type = "string";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
};
|
};
|
||||||
variables.katdns-key = {
|
variables.katdns-key = {
|
||||||
value.shellCommand = "${meta.kw.secrets.command} secrets/katdns -f password";
|
value.shellCommand = "${meta.secrets.command} secrets/katdns -f password";
|
||||||
type = "string";
|
type = "string";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
];
|
];
|
||||||
shell = pkgs.zsh;
|
shell = pkgs.zsh;
|
||||||
extraGroups = [ "wheel" "video" "systemd-journal" "plugdev" "bird2" "vfio" "input" "uinput" ];
|
extraGroups = [ "wheel" "video" "systemd-journal" "plugdev" "bird2" "vfio" "input" "uinput" ];
|
||||||
hashedPassword = mkIf (meta.trusted ? secrets) (removeSuffix "\n" config.kw.secrets.repo.kat-user.text);
|
hashedPassword = mkIf (meta.trusted ? secrets) (removeSuffix "\n" config.secrets.repo.kat-user.text);
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
|
|
|
||||||
|
|
@ -302,7 +302,7 @@
|
||||||
variables = {
|
variables = {
|
||||||
tailscale-authkey.export = true;
|
tailscale-authkey.export = true;
|
||||||
tailscale-apikey = {
|
tailscale-apikey = {
|
||||||
value.shellCommand = "${meta.kw.secrets.command} secrets/tailscale -f api_key";
|
value.shellCommand = "${meta.secrets.command} secrets/tailscale -f api_key";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
export = true;
|
export = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, inputs, tf, meta, kw, pkgs, lib, ... }: with lib; {
|
{ config, inputs, tf, meta, nixfiles, pkgs, lib, ... }: with lib; {
|
||||||
imports = with meta; [
|
imports = with meta; [
|
||||||
hardware.aarch64-linux
|
hardware.aarch64-linux
|
||||||
hardware.oracle.ubuntu
|
hardware.oracle.ubuntu
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
services.znc
|
services.znc
|
||||||
];
|
];
|
||||||
|
|
||||||
kw.oci = {
|
nixfiles.oci = {
|
||||||
specs = {
|
specs = {
|
||||||
shape = "VM.Standard.A1.Flex";
|
shape = "VM.Standard.A1.Flex";
|
||||||
cores = 4;
|
cores = 4;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, tf, meta, kw, pkgs, lib, ... }: with lib; {
|
{ config, tf, meta, nixfiles, pkgs, lib, ... }: with lib; {
|
||||||
imports = with meta; [
|
imports = with meta; [
|
||||||
hardware.oracle.ubuntu
|
hardware.oracle.ubuntu
|
||||||
nixos.network
|
nixos.network
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
services.knot
|
services.knot
|
||||||
];
|
];
|
||||||
|
|
||||||
kw.oci = {
|
nixfiles.oci = {
|
||||||
specs = {
|
specs = {
|
||||||
shape = "VM.Standard.E2.1.Micro";
|
shape = "VM.Standard.E2.1.Micro";
|
||||||
cores = 1;
|
cores = 1;
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.ha-integration = {
|
secrets.variables.ha-integration = {
|
||||||
path = "secrets/home-assistant";
|
path = "secrets/home-assistant";
|
||||||
field = "notes";
|
field = "notes";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,22 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.z2m-pass = {
|
secrets.variables.z2m-pass = {
|
||||||
path = "secrets/mosquitto";
|
path = "secrets/mosquitto";
|
||||||
field = "z2m";
|
field = "z2m";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.systemd-pass = {
|
secrets.variables.systemd-pass = {
|
||||||
path = "secrets/mosquitto";
|
path = "secrets/mosquitto";
|
||||||
field = "systemd";
|
field = "systemd";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.hass-pass = {
|
secrets.variables.hass-pass = {
|
||||||
path = "secrets/mosquitto";
|
path = "secrets/mosquitto";
|
||||||
field = "hass";
|
field = "hass";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.espresence-pass = {
|
secrets.variables.espresence-pass = {
|
||||||
path = "secrets/mosquitto";
|
path = "secrets/mosquitto";
|
||||||
field = "espresence";
|
field = "espresence";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -62,12 +62,12 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
kw.secrets.variables.gensokyo-id = {
|
secrets.variables.gensokyo-id = {
|
||||||
path = "secrets/id.gensokyo.zone";
|
path = "secrets/id.gensokyo.zone";
|
||||||
field = "client_secret";
|
field = "client_secret";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.gensokyo-jwt = {
|
secrets.variables.gensokyo-jwt = {
|
||||||
path = "secrets/id.gensokyo.zone";
|
path = "secrets/id.gensokyo.zone";
|
||||||
field = "jwt";
|
field = "jwt";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.z2m-mqtt-password = {
|
secrets.variables.z2m-mqtt-password = {
|
||||||
path = "secrets/mosquitto";
|
path = "secrets/mosquitto";
|
||||||
field = "z2m";
|
field = "z2m";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.z2m-network-key = {
|
secrets.variables.z2m-network-key = {
|
||||||
path = "secrets/zigbee2mqtt";
|
path = "secrets/zigbee2mqtt";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables.xbackbone-ldap = {
|
secrets.variables.xbackbone-ldap = {
|
||||||
path = "secrets/xbackbone";
|
path = "secrets/xbackbone";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, pkgs, tf, ... }:
|
{ config, lib, pkgs, tf, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
gitea-mail-pass = {
|
gitea-mail-pass = {
|
||||||
path = "secrets/mail-kittywitch";
|
path = "secrets/mail-kittywitch";
|
||||||
field = "gitea-pass";
|
field = "gitea-pass";
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
systemd.services.home-assistant.reloadTriggers = lib.mkForce [ ];
|
systemd.services.home-assistant.reloadTriggers = lib.mkForce [ ];
|
||||||
|
|
||||||
kw.secrets.variables.z2m-network-key = {
|
secrets.variables.z2m-network-key = {
|
||||||
path = "secrets/zigbee2mqtt";
|
path = "secrets/zigbee2mqtt";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, tf, ... }: with lib;
|
{ config, lib, tf, ... }: with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.secrets.variables = (mapListToAttrs
|
secrets.variables = (mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "hedgedoc-${field}" {
|
nameValuePair "hedgedoc-${field}" {
|
||||||
path = "secrets/hedgedoc";
|
path = "secrets/hedgedoc";
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
kw.secrets.variables.jira-postgres = {
|
secrets.variables.jira-postgres = {
|
||||||
path = "secrets/jira";
|
path = "secrets/jira";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ in {
|
||||||
group = "keycloak";
|
group = "keycloak";
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables.keycloak-postgres = {
|
secrets.variables.keycloak-postgres = {
|
||||||
path = "services/keycloak";
|
path = "services/keycloak";
|
||||||
field = "postgres";
|
field = "postgres";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, tf, pkgs, ... }:
|
{ config, lib, tf, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
katdns-key-config = {
|
katdns-key-config = {
|
||||||
path = "secrets/katdns";
|
path = "secrets/katdns";
|
||||||
field = "notes";
|
field = "notes";
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
domains = [ "dork" "kittywitch" ];
|
domains = [ "dork" "kittywitch" ];
|
||||||
in {
|
in {
|
||||||
|
|
||||||
kw.secrets.variables = listToAttrs (map
|
secrets.variables = listToAttrs (map
|
||||||
(domain:
|
(domain:
|
||||||
nameValuePair "mail-domainkey-${domain}" {
|
nameValuePair "mail-domainkey-${domain}" {
|
||||||
path = "secrets/mail-${domain}";
|
path = "secrets/mail-${domain}";
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@ in
|
||||||
params.dovecot2 = { };
|
params.dovecot2 = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables."dovecot-ldap-password" = {
|
secrets.variables."dovecot-ldap-password" = {
|
||||||
path = "services/dovecot";
|
path = "services/dovecot";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ let
|
||||||
dork.dev REJECT Get lost - you're lying about who you are
|
dork.dev REJECT Get lost - you're lying about who you are
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables."postfix-ldap-password" = {
|
secrets.variables."postfix-ldap-password" = {
|
||||||
path = "services/dovecot";
|
path = "services/dovecot";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{ config, tf, lib, ... }: with lib; {
|
{ config, tf, lib, ... }: with lib; {
|
||||||
kw.secrets.variables.sogo-ldap = {
|
secrets.variables.sogo-ldap = {
|
||||||
path = "secrets/sogo";
|
path = "secrets/sogo";
|
||||||
field = "password";
|
field = "password";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, lib, tf, pkgs, ... }: with lib; let
|
{ config, lib, tf, pkgs, ... }: with lib; let
|
||||||
murmurLdapScript = ./LDAPauth.py;
|
murmurLdapScript = ./LDAPauth.py;
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
murmur-ldap-pass = {
|
murmur-ldap-pass = {
|
||||||
path = "social/mumble";
|
path = "social/mumble";
|
||||||
field = "ldap";
|
field = "ldap";
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ in
|
||||||
udp = singleton 64738;
|
udp = singleton 64738;
|
||||||
};
|
};
|
||||||
|
|
||||||
kw.secrets.variables = {
|
secrets.variables = {
|
||||||
murmur-password = {
|
murmur-password = {
|
||||||
path = "social/mumble";
|
path = "social/mumble";
|
||||||
field = "password";
|
field = "password";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, tf, kw, ... }: with lib; let
|
{ config, pkgs, lib, tf, nixfiles, ... }: with lib; let
|
||||||
cfg = config.services.nextcloud;
|
cfg = config.services.nextcloud;
|
||||||
in {
|
in {
|
||||||
kw.secrets.variables =
|
secrets.variables =
|
||||||
mapListToAttrs
|
mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "nextcloud-${field}" {
|
nameValuePair "nextcloud-${field}" {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, lib, kw, ... }:
|
{ config, lib, nixfiles, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
kw.secrets.variables = mapListToAttrs
|
secrets.variables = mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "openldap-${field}" {
|
nameValuePair "openldap-${field}" {
|
||||||
path = "services/openldap";
|
path = "services/openldap";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, kw, pkgs, lib, ... }: {
|
{ config, nixfiles, pkgs, lib, ... }: {
|
||||||
networks.chitei.tcp = [ 32400 ];
|
networks.chitei.tcp = [ 32400 ];
|
||||||
services = {
|
services = {
|
||||||
plex = {
|
plex = {
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ with lib;
|
||||||
LC_CTYPE = "C";
|
LC_CTYPE = "C";
|
||||||
'';
|
'';
|
||||||
|
|
||||||
kw.secrets.variables = (mapListToAttrs
|
secrets.variables = (mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "mautrix-telegram-${field}" {
|
nameValuePair "mautrix-telegram-${field}" {
|
||||||
path = "secrets/mautrix-telegram";
|
path = "secrets/mautrix-telegram";
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
kw.secrets.variables =
|
secrets.variables =
|
||||||
let
|
let
|
||||||
fieldAdapt = field: if field == "pass" then "password" else field;
|
fieldAdapt = field: if field == "pass" then "password" else field;
|
||||||
in
|
in
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{ config, pkgs, lib, tf, ... }: with lib; {
|
{ config, pkgs, lib, tf, ... }: with lib; {
|
||||||
kw.secrets.variables = mapListToAttrs
|
secrets.variables = mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "ttrss-${field}" {
|
nameValuePair "ttrss-${field}" {
|
||||||
path = "secrets/ttrss";
|
path = "secrets/ttrss";
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, pkgs, lib, kw, ... }:
|
{ config, pkgs, lib, nixfiles, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
hardware.firmware = [ pkgs.libreelec-dvb-firmware ];
|
hardware.firmware = [ pkgs.libreelec-dvb-firmware ];
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ config, pkgs, lib, tf, ... }: with lib;
|
{ config, pkgs, lib, tf, ... }: with lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
kw.secrets.variables = mapListToAttrs (field:
|
secrets.variables = mapListToAttrs (field:
|
||||||
nameValuePair "vaultwarden-${field}" {
|
nameValuePair "vaultwarden-${field}" {
|
||||||
path = "secrets/vaultwarden";
|
path = "secrets/vaultwarden";
|
||||||
inherit field;
|
inherit field;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ let
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
|
||||||
kw.secrets.variables = (mapListToAttrs
|
secrets.variables = (mapListToAttrs
|
||||||
(field:
|
(field:
|
||||||
nameValuePair "vikunja-${field}" {
|
nameValuePair "vikunja-${field}" {
|
||||||
path = "secrets/vikunja";
|
path = "secrets/vikunja";
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ in
|
||||||
# ZNC
|
# ZNC
|
||||||
networks.internet.tcp = singleton 5001;
|
networks.internet.tcp = singleton 5001;
|
||||||
|
|
||||||
kw.secrets.variables =
|
secrets.variables =
|
||||||
let
|
let
|
||||||
fieldAdapt = field: if field == "cert" then "notes" else if field == "pass" then "password" else field;
|
fieldAdapt = field: if field == "cert" then "notes" else if field == "pass" then "password" else field;
|
||||||
in
|
in
|
||||||
|
|
@ -190,7 +190,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
(mkIf (meta.trusted ? secrets) (import config.kw.secrets.repo.znc.source))
|
(mkIf (meta.trusted ? secrets) (import config.secrets.repo.znc.source))
|
||||||
];
|
];
|
||||||
configFile = config.secrets.files.znc-config.path;
|
configFile = config.secrets.files.znc-config.path;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ with lib;
|
||||||
sharedModules = [
|
sharedModules = [
|
||||||
inputs.nix-doom-emacs.hmModule
|
inputs.nix-doom-emacs.hmModule
|
||||||
meta.modules.home
|
meta.modules.home
|
||||||
|
meta.modules.type
|
||||||
];
|
];
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
imports = optional (builtins.pathExists ../services/irlmail.nix) ../services/irlmail.nix;
|
imports = optional (builtins.pathExists ../services/irlmail.nix) ../services/irlmail.nix;
|
||||||
|
|
||||||
variables.tailscale-apikey = {
|
variables.tailscale-apikey = {
|
||||||
value.shellCommand = "${meta.kw.secrets.command} secrets/tailscale -f api_key";
|
value.shellCommand = "${meta.secrets.command} secrets/tailscale -f api_key";
|
||||||
sensitive = true;
|
sensitive = true;
|
||||||
export = true;
|
export = true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -43,43 +43,43 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
resources = {
|
resources = {
|
||||||
oci_kw_compartment = {
|
oci_nixfiles_compartment = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_compartment";
|
type = "identity_compartment";
|
||||||
inputs = {
|
inputs = {
|
||||||
name = "kw";
|
name = "nixfiles";
|
||||||
description = "kw";
|
description = "nixfiles";
|
||||||
compartment_id = var.oci_root_tenancy.ref;
|
compartment_id = var.oci_root_tenancy.ref;
|
||||||
enable_delete = true;
|
enable_delete = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_user = {
|
oci_nixfiles_user = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_user";
|
type = "identity_user";
|
||||||
inputs = {
|
inputs = {
|
||||||
name = "kw";
|
name = "nixfiles";
|
||||||
description = "kw";
|
description = "nixfiles";
|
||||||
compartment_id = var.oci_root_tenancy.ref;
|
compartment_id = var.oci_root_tenancy.ref;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_group = {
|
oci_nixfiles_group = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_group";
|
type = "identity_group";
|
||||||
inputs = {
|
inputs = {
|
||||||
name = "kw";
|
name = "nixfiles";
|
||||||
description = "kw";
|
description = "nixfiles";
|
||||||
compartment_id = var.oci_root_tenancy.ref;
|
compartment_id = var.oci_root_tenancy.ref;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_usergroup = {
|
oci_nixfiles_usergroup = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_user_group_membership";
|
type = "identity_user_group_membership";
|
||||||
inputs = {
|
inputs = {
|
||||||
group_id = res.oci_kw_group.refAttr "id";
|
group_id = res.oci_nixfiles_group.refAttr "id";
|
||||||
user_id = res.oci_kw_user.refAttr "id";
|
user_id = res.oci_nixfiles_user.refAttr "id";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_key = {
|
oci_nixfiles_key = {
|
||||||
provider = "tls";
|
provider = "tls";
|
||||||
type = "private_key";
|
type = "private_key";
|
||||||
inputs = {
|
inputs = {
|
||||||
|
|
@ -87,35 +87,35 @@
|
||||||
rsa_bits = 2048;
|
rsa_bits = 2048;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_key_file = {
|
oci_nixfiles_key_file = {
|
||||||
provider = "local";
|
provider = "local";
|
||||||
type = "file";
|
type = "file";
|
||||||
inputs = {
|
inputs = {
|
||||||
sensitive_content = res.oci_kw_key.refAttr "private_key_pem";
|
sensitive_content = res.oci_nixfiles_key.refAttr "private_key_pem";
|
||||||
filename = toString (config.terraform.dataDir + "/oci_kw_key");
|
filename = toString (config.terraform.dataDir + "/oci_nixfiles_key");
|
||||||
file_permission = "0600";
|
file_permission = "0600";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_apikey = {
|
oci_nixfiles_apikey = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_api_key";
|
type = "identity_api_key";
|
||||||
inputs = {
|
inputs = {
|
||||||
key_value = res.oci_kw_key.refAttr "public_key_pem";
|
key_value = res.oci_nixfiles_key.refAttr "public_key_pem";
|
||||||
user_id = res.oci_kw_user.refAttr "id";
|
user_id = res.oci_nixfiles_user.refAttr "id";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_policy = {
|
oci_nixfiles_policy = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "identity_policy";
|
type = "identity_policy";
|
||||||
inputs = {
|
inputs = {
|
||||||
name = "kw-admin";
|
name = "nixfiles-admin";
|
||||||
description = "kw admin";
|
description = "nixfiles admin";
|
||||||
compartment_id = var.oci_root_tenancy.ref;
|
compartment_id = var.oci_root_tenancy.ref;
|
||||||
statements = [
|
statements = [
|
||||||
"Allow group ${res.oci_kw_group.refAttr "name"} to manage all-resources in compartment id ${res.oci_kw_compartment.refAttr "id"}"
|
"Allow group ${res.oci_nixfiles_group.refAttr "name"} to manage all-resources in compartment id ${res.oci_nixfiles_compartment.refAttr "id"}"
|
||||||
"Allow group ${res.oci_kw_group.refAttr "name"} to read virtual-network-family in compartment id ${var.oci_root_tenancy.ref}"
|
"Allow group ${res.oci_nixfiles_group.refAttr "name"} to read virtual-network-family in compartment id ${var.oci_root_tenancy.ref}"
|
||||||
''
|
''
|
||||||
Allow group ${res.oci_kw_group.refAttr "name"} to manage vcns in compartment id ${var.oci_root_tenancy.ref} where ALL {
|
Allow group ${res.oci_nixfiles_group.refAttr "name"} to manage vcns in compartment id ${var.oci_root_tenancy.ref} where ALL {
|
||||||
ANY { request.operation = 'CreateNetworkSecurityGroup', request.operation = 'DeleteNetworkSecurityGroup' }
|
ANY { request.operation = 'CreateNetworkSecurityGroup', request.operation = 'DeleteNetworkSecurityGroup' }
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
|
|
@ -166,14 +166,14 @@
|
||||||
vcn_id = res.oci_vcn.refAttr "id";
|
vcn_id = res.oci_vcn.refAttr "id";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci_kw_subnet = {
|
oci_nixfiles_subnet = {
|
||||||
provider = "oci.oci-root";
|
provider = "oci.oci-root";
|
||||||
type = "core_subnet";
|
type = "core_subnet";
|
||||||
inputs = {
|
inputs = {
|
||||||
display_name = "kw";
|
display_name = "nixfiles";
|
||||||
cidr_block = terraformExpr "cidrsubnet(${res.oci_vcn.namedRef}.cidr_blocks[0], 8, 8)"; # /24
|
cidr_block = terraformExpr "cidrsubnet(${res.oci_vcn.namedRef}.cidr_blocks[0], 8, 8)"; # /24
|
||||||
ipv6cidr_block = terraformExpr "cidrsubnet(${res.oci_vcn.namedRef}.ipv6cidr_blocks[0], 8, 0)"; # from a /56 block to /64
|
ipv6cidr_block = terraformExpr "cidrsubnet(${res.oci_vcn.namedRef}.ipv6cidr_blocks[0], 8, 0)"; # from a /56 block to /64
|
||||||
compartment_id = res.oci_kw_compartment.refAttr "id";
|
compartment_id = res.oci_nixfiles_compartment.refAttr "id";
|
||||||
vcn_id = res.oci_vcn.refAttr "id";
|
vcn_id = res.oci_vcn.refAttr "id";
|
||||||
route_table_id = res.oci_routes.refAttr "id";
|
route_table_id = res.oci_routes.refAttr "id";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
74
trusted/flake.lock
generated
74
trusted/flake.lock
generated
|
|
@ -3,11 +3,11 @@
|
||||||
"arcexprs": {
|
"arcexprs": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664324035,
|
"lastModified": 1664737885,
|
||||||
"narHash": "sha256-X/aULANyF9pHR+OejllcIG1vSs4H0sis5212dt6i/Xo=",
|
"narHash": "sha256-ppcK2iEo949aGMVVXoqYs3H0K0jhPTDdUj+Dt1abIW0=",
|
||||||
"owner": "arcnmx",
|
"owner": "arcnmx",
|
||||||
"repo": "nixexprs",
|
"repo": "nixexprs",
|
||||||
"rev": "6b308153ddc58f1ed5e3223cb242ac4867ef5712",
|
"rev": "4e09592dade1388d900ab3524bc240ce75b14abb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -20,11 +20,11 @@
|
||||||
"ci": {
|
"ci": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1658370007,
|
"lastModified": 1664566287,
|
||||||
"narHash": "sha256-gKxTtjSPwTNp1Lcqynw8HYDSq/wtF7EmF4NvS0dyeb8=",
|
"narHash": "sha256-DysbqsNrLAGI4VU9HlP3qXe1b0P3N9mGGttmr3xUCHU=",
|
||||||
"owner": "arcnmx",
|
"owner": "arcnmx",
|
||||||
"repo": "ci",
|
"repo": "ci",
|
||||||
"rev": "5cec82ebd5614fdeaaf442c4390451e2f483fdc4",
|
"rev": "3f5f6df67088485d422b97d3a41fe259e2bdc53e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -92,11 +92,11 @@
|
||||||
"emacs-overlay": {
|
"emacs-overlay": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1662654452,
|
"lastModified": 1664478431,
|
||||||
"narHash": "sha256-mrr161UOnVNx2pzR9ePmhVlxapzQ57ZDSLb9BRgW0bo=",
|
"narHash": "sha256-XTPklm/+e2UfIitB0+s/fKTheMJSw3G1p+t0SsBCuo4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "emacs-overlay",
|
"repo": "emacs-overlay",
|
||||||
"rev": "70e241d5b189982dabc1fe55829475c5c483c89d",
|
"rev": "6c78924bc5b6daaf98c0dbe63bdfcf80e6433f4b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -348,11 +348,11 @@
|
||||||
"ws-butler": "ws-butler"
|
"ws-butler": "ws-butler"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1662839665,
|
"lastModified": 1664622347,
|
||||||
"narHash": "sha256-TGSRXMmRTn4eza3q0XvqpuPoeCnkktPeD0TaM/V1pZ0=",
|
"narHash": "sha256-pJTnEG68PhrXjpkfz/784BlcxaHgV06b1cUVGRxhMdw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nix-doom-emacs",
|
"repo": "nix-doom-emacs",
|
||||||
"rev": "acbf1b70335d4fd6a6c05bc417d7f3ca44739437",
|
"rev": "b65e204ce9d20b376acc38ec205d08007eccdaef",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -395,11 +395,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664474132,
|
"lastModified": 1664742955,
|
||||||
"narHash": "sha256-leeynikJOn2sxA03UvIzKiyctFeSLCGuh5tf0Uh6/1M=",
|
"narHash": "sha256-jiD8gHTERZLzIFwnaXzXDDSjR44Fs1JhRujcNq3jNnA=",
|
||||||
"owner": "kittywitch",
|
"owner": "kittywitch",
|
||||||
"repo": "nixfiles",
|
"repo": "nixfiles",
|
||||||
"rev": "a0f9d0ab488632eb163885f0e817d83ca5d663ab",
|
"rev": "9794026f6c22b49518c285b4452ea4c8dd9ae7bf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -410,11 +410,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664281702,
|
"lastModified": 1664538465,
|
||||||
"narHash": "sha256-haixZ4TJLu1Dciow54wrHrHvlGDVr5sW6MTeAV/ZLuI=",
|
"narHash": "sha256-EnlC7dDKX7X1wlnXkB1gmn9rBZQ0J9+biVTZHw//8us=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7e52b35fe98481a279d89f9c145f8076d049d2b9",
|
"rev": "10ecda252ce1b3b1d6403caeadbcc8f30d5ab796",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -442,11 +442,11 @@
|
||||||
},
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1664382743,
|
"lastModified": 1664718272,
|
||||||
"narHash": "sha256-rtDxdzj5IBvO114QP9gyfjVt9N7tZWd0e2/RQxrDtw4=",
|
"narHash": "sha256-BNnUks1BKzBr8HzoKBFQ8a7/avQhDkKCu0DSgW1ulcY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "8ca43145e3b31861d807c8df3ce53f559c3b5762",
|
"rev": "392b26288ad1cdebd03eac17adb70491f9f392d3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -475,11 +475,11 @@
|
||||||
"org": {
|
"org": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1662614940,
|
"lastModified": 1664493874,
|
||||||
"narHash": "sha256-9eAqhKXpTfZQH3bn19ien3HIzF100h8z97iHqs/QUgY=",
|
"narHash": "sha256-8zLosjfQX0aR5HprtCeiSqN1pfB+GEUF9AULk6WRcR4=",
|
||||||
"owner": "emacs-straight",
|
"owner": "emacs-straight",
|
||||||
"repo": "org-mode",
|
"repo": "org-mode",
|
||||||
"rev": "eb5ef0ae1424a725f933ef3929e5396a2ab727ab",
|
"rev": "fe1f4f2ccf040deff9c57288d987f17cc2da321f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -491,11 +491,11 @@
|
||||||
"org-contrib": {
|
"org-contrib": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1661026052,
|
"lastModified": 1664301003,
|
||||||
"narHash": "sha256-rE7aioQxeVjo+TVI4DIppKkmf/c7tRNzK6hQJAmUnVE=",
|
"narHash": "sha256-8CAq/EB52RMQHNLZM0uc/1N5gKTfxGhf7WFt9sMKoD8=",
|
||||||
"owner": "emacsmirror",
|
"owner": "emacsmirror",
|
||||||
"repo": "org-contrib",
|
"repo": "org-contrib",
|
||||||
"rev": "0740bd3fe69c4b327420185d931dcf0a9900a80e",
|
"rev": "aa104c0bbc3113f6d3d167b20bd8d6bf6a285f0f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -539,11 +539,11 @@
|
||||||
"revealjs": {
|
"revealjs": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1662369032,
|
"lastModified": 1664012352,
|
||||||
"narHash": "sha256-1BZWA3W77YbNZUj+7vJbkTeWY8O4jjPg7t5PvlEVDYA=",
|
"narHash": "sha256-Pu5p6HqIO2wvWiTEhsQyIuwlWEIa1GjO3EDXosznyYE=",
|
||||||
"owner": "hakimel",
|
"owner": "hakimel",
|
||||||
"repo": "reveal.js",
|
"repo": "reveal.js",
|
||||||
"rev": "8a97ad58b04045fe5a9c964aa31659bd27e665c5",
|
"rev": "468132320d6e072abd1297d7cc24766a2b7a832d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -610,11 +610,11 @@
|
||||||
"trusted": {
|
"trusted": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1657482041,
|
"lastModified": 1664745519,
|
||||||
"narHash": "sha256-AEC0DO586Xq5NcYwyEBAosFj5VRSwLSPZCH5v5ri11s=",
|
"narHash": "sha256-tUNmmEjJ6KOOPkHCkJytv4KemXf4idM8erPQgOr7SWc=",
|
||||||
"ref": "main",
|
"ref": "main",
|
||||||
"rev": "76779729b344d8427f05d9e78c76a19daa7cc2a8",
|
"rev": "f89074f4500dddb1962d49f3f542ce41d7beee87",
|
||||||
"revCount": 92,
|
"revCount": 93,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://git@github.com/kittywitch/nixfiles-trusted"
|
"url": "ssh://git@github.com/kittywitch/nixfiles-trusted"
|
||||||
},
|
},
|
||||||
|
|
@ -627,11 +627,11 @@
|
||||||
"ts-fold": {
|
"ts-fold": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1662386895,
|
"lastModified": 1663136308,
|
||||||
"narHash": "sha256-pYW2hcHgkr9KYdRvX2EkpOt/OL8yl+mkZ21JbMKWc8Q=",
|
"narHash": "sha256-FI25RLoHqhcjA2qel75LVmQH4rTkKiAUR2w9QODT1XM=",
|
||||||
"owner": "jcs-elpa",
|
"owner": "jcs-elpa",
|
||||||
"repo": "ts-fold",
|
"repo": "ts-fold",
|
||||||
"rev": "017402713bd2f1fd7a691aa48afb4330f5397432",
|
"rev": "c3da5520b988720f7f6e9e5e11b60746598112e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue