forked from Fediversity/Fediversity
Keys in separate files in own directory
This commit is contained in:
parent
36b5351f0a
commit
7908affaab
|
@ -15,6 +15,9 @@ details as to what they are for. As an overview:
|
||||||
- [`infra/`](./infra) contains the configurations for the various VMs that are
|
- [`infra/`](./infra) contains the configurations for the various VMs that are
|
||||||
in production for the project, for instance the Git instances or the Wiki.
|
in production for the project, for instance the Git instances or the Wiki.
|
||||||
|
|
||||||
|
- [`keys/`](./keys) contains the public keys of the contributors to this project
|
||||||
|
as well as the systems that we administrate.
|
||||||
|
|
||||||
- [`matrix/`](./matrix) contains everything having to do with setting up a
|
- [`matrix/`](./matrix) contains everything having to do with setting up a
|
||||||
fully-featured Matrix server.
|
fully-featured Matrix server.
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
optin = [
|
optin = [
|
||||||
"deployment"
|
"deployment"
|
||||||
"infra"
|
"infra"
|
||||||
|
"keys"
|
||||||
"secrets"
|
"secrets"
|
||||||
"services"
|
"services"
|
||||||
];
|
];
|
||||||
|
|
1
keys/contributors/niols
Normal file
1
keys/contributors/niols
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEElREJN0AC7lbp+5X204pQ5r030IbgCllsIxyU3iiKY niols@wallace
|
16
keys/default.nix
Normal file
16
keys/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
let
|
||||||
|
inherit (builtins)
|
||||||
|
elemAt
|
||||||
|
mapAttrs
|
||||||
|
match
|
||||||
|
readDir
|
||||||
|
readFile
|
||||||
|
;
|
||||||
|
removeTrailingWhitespace = s: elemAt (match "(.*[^[:space:]])[[:space:]]*" s) 0;
|
||||||
|
collectKeys =
|
||||||
|
dir: mapAttrs (name: _: removeTrailingWhitespace (readFile (dir + "/${name}"))) (readDir dir);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
contributors = collectKeys ./contributors;
|
||||||
|
systems = collectKeys ./systems;
|
||||||
|
}
|
1
keys/systems/vm02116
Normal file
1
keys/systems/vm02116
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILriawl1za2jbxzelkL5v8KPmcvuj7xVBgwFxuM/zhYr
|
1
keys/systems/vm02179
Normal file
1
keys/systems/vm02179
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAsOCOsJ0vNL9fGj0XC25ir8B+k2NlVJzsiVUx+0eWM
|
1
keys/systems/vm02186
Normal file
1
keys/systems/vm02186
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII6mnBgEeyYE4tzHeFNHVNBV6KR+hAqh3PYSqlh0QViW
|
|
@ -1,46 +1,32 @@
|
||||||
let
|
let
|
||||||
pkgs = import <nixpkgs> { system = builtins.currentSystem; };
|
pkgs = import <nixpkgs> { system = builtins.currentSystem; };
|
||||||
|
inherit (builtins) attrValues;
|
||||||
inherit (pkgs.lib.attrsets) concatMapAttrs;
|
inherit (pkgs.lib.attrsets) concatMapAttrs;
|
||||||
|
|
||||||
##############################################################################
|
keys = import ../keys;
|
||||||
## Contributor personal keys
|
contributors = attrValues keys.contributors;
|
||||||
##
|
|
||||||
## All the contributors in this list WILL be able to decrypt ALL the encrypted
|
|
||||||
## `.age` files.
|
|
||||||
|
|
||||||
contributors = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEElREJN0AC7lbp+5X204pQ5r030IbgCllsIxyU3iiKY niols@wallace"
|
|
||||||
];
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
## System host keys
|
|
||||||
##
|
|
||||||
## Machines in this list MAY be mentioned later on as able to decrypt some of
|
|
||||||
## the encrypted `.age` files.
|
|
||||||
|
|
||||||
vm02116 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILriawl1za2jbxzelkL5v8KPmcvuj7xVBgwFxuM/zhYr";
|
|
||||||
vm02179 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAsOCOsJ0vNL9fGj0XC25ir8B+k2NlVJzsiVUx+0eWM";
|
|
||||||
vm02186 = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII6mnBgEeyYE4tzHeFNHVNBV6KR+hAqh3PYSqlh0QViW";
|
|
||||||
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
concatMapAttrs
|
concatMapAttrs
|
||||||
(name: keys: {
|
(name: systems: {
|
||||||
"${name}.age".publicKeys = contributors ++ keys;
|
"${name}.age".publicKeys = contributors ++ systems;
|
||||||
})
|
})
|
||||||
|
|
||||||
##############################################################################
|
(
|
||||||
## File name <-> system host keys mapping
|
with keys.systems;
|
||||||
##
|
|
||||||
## This attribute set defines precisely which secrets exist and which systems
|
|
||||||
## are able to decrypt them.
|
|
||||||
|
|
||||||
{
|
##############################################################################
|
||||||
forgejo-database-password = [ vm02116 ];
|
## File name <-> system host keys mapping
|
||||||
forgejo-email-password = [ vm02116 ];
|
##
|
||||||
forgejo-runner-token = [
|
## This attribute set defines precisely which secrets exist and which systems
|
||||||
vm02179
|
## are able to decrypt them.
|
||||||
vm02186
|
|
||||||
];
|
{
|
||||||
}
|
forgejo-database-password = [ vm02116 ];
|
||||||
|
forgejo-email-password = [ vm02116 ];
|
||||||
|
forgejo-runner-token = [
|
||||||
|
vm02179
|
||||||
|
vm02186
|
||||||
|
];
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
Loading…
Reference in a new issue