fix: restore local-session HM routing and update shared sops key path
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,3 +2,5 @@
|
|||||||
.claude/
|
.claude/
|
||||||
.codex/
|
.codex/
|
||||||
.opencode/
|
.opencode/
|
||||||
|
|
||||||
|
result/
|
||||||
|
|||||||
@@ -24,6 +24,21 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
lux.bundles._.local-session-user = {
|
||||||
|
includes = with lux; [
|
||||||
|
nix
|
||||||
|
niri
|
||||||
|
clipboard
|
||||||
|
local-apps
|
||||||
|
pinentry
|
||||||
|
qbittorrent-client
|
||||||
|
vicinae
|
||||||
|
xdg
|
||||||
|
theme
|
||||||
|
noctalia
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
lux.bundles._.development = {
|
lux.bundles._.development = {
|
||||||
includes = with lux; [
|
includes = with lux; [
|
||||||
git
|
git
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
provides.kiri = {
|
provides.kiri = {
|
||||||
includes = with lux; [
|
includes = with lux; [
|
||||||
|
bundles._.local-session-user
|
||||||
bitwarden
|
bitwarden
|
||||||
email
|
email
|
||||||
pim
|
pim
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
provides.kiri = {
|
provides.kiri = {
|
||||||
includes = with lux; [
|
includes = with lux; [
|
||||||
|
bundles._.local-session-user
|
||||||
bitwarden
|
bitwarden
|
||||||
email
|
email
|
||||||
pim
|
pim
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
let
|
let
|
||||||
serviceDomain = "jelles.net";
|
serviceDomain = "jelles.net";
|
||||||
adminKeyPath = "/var/lib/sops-nix/admin-key.txt";
|
adminKeyPath = "/var/lib/sops/keys.txt";
|
||||||
|
|
||||||
sharedIdentity = {
|
sharedIdentity = {
|
||||||
realName = "Jelle Spreeuwenberg";
|
realName = "Jelle Spreeuwenberg";
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ in
|
|||||||
{ host, ... }:
|
{ host, ... }:
|
||||||
let
|
let
|
||||||
missingAdminUsers = lib.filter (userName: !(builtins.hasAttr userName host.users)) host.sopsAdminKeyUsers;
|
missingAdminUsers = lib.filter (userName: !(builtins.hasAttr userName host.users)) host.sopsAdminKeyUsers;
|
||||||
|
hasSharedAdminKey = host.sopsAdminKeyPath != null && host.sopsAdminKeyUsers != [ ];
|
||||||
adminKeyDir = if host.sopsAdminKeyPath == null then null else builtins.dirOf host.sopsAdminKeyPath;
|
adminKeyDir = if host.sopsAdminKeyPath == null then null else builtins.dirOf host.sopsAdminKeyPath;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -27,7 +28,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups = lib.optionalAttrs (host.sopsAdminKeyUsers != [ ]) {
|
users.groups = lib.optionalAttrs hasSharedAdminKey {
|
||||||
${sopsReadersGroup} = { };
|
${sopsReadersGroup} = { };
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -35,8 +36,9 @@ in
|
|||||||
extraGroups = [ sopsReadersGroup ];
|
extraGroups = [ sopsReadersGroup ];
|
||||||
});
|
});
|
||||||
|
|
||||||
systemd.tmpfiles.rules = lib.optionals (adminKeyDir != null) [
|
systemd.tmpfiles.rules = lib.optionals hasSharedAdminKey [
|
||||||
"d ${adminKeyDir} 0750 root ${sopsReadersGroup} -"
|
"d ${adminKeyDir} 0750 root ${sopsReadersGroup} -"
|
||||||
|
"z ${host.sopsAdminKeyPath} 0640 root ${sopsReadersGroup} -"
|
||||||
];
|
];
|
||||||
|
|
||||||
assertions = [
|
assertions = [
|
||||||
|
|||||||
Reference in New Issue
Block a user