Compare commits
1 commit
01dc9b142b
...
5514618d21
Author | SHA1 | Date | |
---|---|---|---|
5514618d21 |
5 changed files with 34 additions and 77 deletions
|
@ -13,26 +13,29 @@ let
|
|||
port = 9008;
|
||||
in
|
||||
{
|
||||
import = [ ./module.nix ];
|
||||
services.nimbolus-tf = {
|
||||
enable = true;
|
||||
package = (import sources.kat-pkgs { inherit pkgs; }).nimbolus-tf-backend;
|
||||
environment = {
|
||||
settings = {
|
||||
LISTEN_ADDR = "127.0.0.1:${toString port}";
|
||||
KMS_KEY_PATH = config.age.secrets."nimbolus-kms_key".path;
|
||||
|
||||
STORAGE_BACKEND = "s3";
|
||||
STORAGE_S3_ENDPOINT = "s3.dgnum.eu";
|
||||
STORAGE_S3_USE_SSL = "true";
|
||||
STORAGE_S3_BUCKET = "nimbolus-dgnum";
|
||||
STORAGE_S3_ACCESS_KEY = "GKefa111701f349de3988f0010";
|
||||
STORAGE_S3_SECRET_KEY_FILE = config.age.secrets."nimbolus-s3_secret".path;
|
||||
|
||||
# TODO: configure openBAO
|
||||
# AUTH_BASIC_ENABLED = "false";
|
||||
# AUTH_JWT_OIDC_ISSUER_URL = "https://vault.dgnum.eu/v1/identity/oidc";
|
||||
};
|
||||
secretEnvironment = {
|
||||
KMS_KEY = config.age.secrets."nimbolus-kms_key".path;
|
||||
STORAGE_S3_ACCESS_KEY = config.age.secrets."nimbolus-s3_access".path;
|
||||
STORAGE_S3_SECRET_KEY = config.age.secrets."nimbolus-s3_secret".path;
|
||||
};
|
||||
};
|
||||
|
||||
age-secrets.autoMatch = [ "nimbolus" ];
|
||||
|
||||
dgn-web.simpleProxies.nimbolus = {
|
||||
inherit host port;
|
||||
};
|
|
@ -5,83 +5,71 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
sources,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
escapeShellArg
|
||||
getExe
|
||||
mapAttrsToList
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkPackageOption
|
||||
mkOption
|
||||
;
|
||||
inherit (lib.types)
|
||||
attrsOf
|
||||
package
|
||||
path
|
||||
str
|
||||
;
|
||||
|
||||
# from nixpkgs, commit b1371135b5db3fcf728114d92d5bd0218109598a
|
||||
# FIXME: Should be replaced by nixpkgs lib when going to nixos-25.05
|
||||
concatMapAttrsStringSep =
|
||||
sep: f: attrs:
|
||||
lib.concatStringsSep sep (lib.attrValues (lib.mapAttrs f attrs));
|
||||
|
||||
cfg = config.services.nimbolus-tf;
|
||||
in
|
||||
{
|
||||
options.services.nimbolus-tf = {
|
||||
enable = mkEnableOption "the nimbolus terraform http backend";
|
||||
package = mkOption {
|
||||
type = package;
|
||||
enable = mkEnableOption "the nimbolus terraform http backend" { pkgsText = "kat-pkgs"; };
|
||||
package = mkPackageOption (import sources.kat-pkgs { inherit pkgs; }) "nimbolus-tf-backend";
|
||||
user = mkOption {
|
||||
type = str;
|
||||
description = ''
|
||||
The hello package to use.
|
||||
User used by the nimbolus server.
|
||||
'';
|
||||
example = "kat-pkgs.nimbolus-tf-backend";
|
||||
default = "nimbolus";
|
||||
};
|
||||
environment = mkOption {
|
||||
group = mkOption {
|
||||
type = str;
|
||||
description = ''
|
||||
Group used by the nimbolus server.
|
||||
'';
|
||||
default = "nimbolus";
|
||||
};
|
||||
settings = mkOption {
|
||||
type = attrsOf str;
|
||||
default = { };
|
||||
description = ''
|
||||
Environment variables for nimbolus configuration.
|
||||
'';
|
||||
};
|
||||
secretEnvironment = mkOption {
|
||||
type = attrsOf path;
|
||||
default = { };
|
||||
description = ''
|
||||
Files for secret environment variables for nimbolus configuration.
|
||||
'';
|
||||
};
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
users = {
|
||||
users.${cfg.user}.isSystemUser = true;
|
||||
groups.${cfg.group} = { };
|
||||
};
|
||||
systemd.services."nimbolus-tf" = {
|
||||
description = "Nimbolus terraform http backend";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
EnvironmentFile = "-/run/nimbolus-tf/env-file";
|
||||
ExecStart = "${getExe cfg.package}";
|
||||
ExecStartPre = "+${pkgs.writeShellScript "nimbolus-prestart" ''
|
||||
echo -n > /run/nimbolus-tf/env-file
|
||||
${concatMapAttrsStringSep "\n" (
|
||||
key: value: "echo ${escapeShellArg "${key}=${value}"} >> /run/nimbolus-tf/env-file"
|
||||
) cfg.environment}
|
||||
${concatMapAttrsStringSep "\n" (
|
||||
key: value: ''echo "${key}=$(cat ${value})" >> /run/nimbolus-tf/env-file''
|
||||
) cfg.secretEnvironment}
|
||||
chmod a+r /run/nimbolus-tf/env-file
|
||||
''}";
|
||||
ExecStart = getExe cfg.package;
|
||||
Environment = mapAttrsToList (name: value: "${name}=${value}") cfg.settings;
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
RuntimeDirectory = "nimbolus-tf";
|
||||
RuntimeDirectoryMode = "0700";
|
||||
StateDirectory = "nimbolus-tf";
|
||||
StateDirectoryMode = "0700";
|
||||
WorkingDirectory = "/var/lib/nimbolus-tf";
|
||||
|
||||
# Hardening
|
||||
DynamicUser = true;
|
||||
CapabilityBoundingSet = "";
|
||||
PrivateDevices = true;
|
||||
ProtectClock = true;
|
|
@ -1,32 +0,0 @@
|
|||
age-encryption.org/v1
|
||||
-> ssh-ed25519 ZIo4kw POP274mkHkdXwYJ/yaU9li2G2t9p0tAQ0qOQslPFoCA
|
||||
p5yYZyPRNMYRV9KPM7oMuu1LTTDMrmQ8il0r77Pi4rI
|
||||
-> ssh-ed25519 9/PCvA o1gN3ulajleNwhPm40inSZluZ09SOuNKIfLr8mB8G08
|
||||
OMoMGTxI/rwojuWiSgDj5WAU58eOATL5VSkzvsVZuRY
|
||||
-> ssh-ed25519 prNEsA S3ekdfgp2pf9/jL32HAtuhQKuYPxaWz/lOjD+FkPplg
|
||||
Qs+Cw/Gbjn2FfUgJTvgobpk9swv5b+Rq059DsyHbWCg
|
||||
-> ssh-ed25519 jIXfPA LAtduj5GKqSHoYC+9fkRu3VYD1r9QzCxkGAx0if+OkU
|
||||
KEa96ZNVFoRoLyO0jjjPbE2bwjhfdMveIYbz1FZqaY4
|
||||
-> ssh-ed25519 QlRB9Q HJLzZP4ZRAQnppS8h23UY906doGq14Z4rpVu8tVVIhA
|
||||
3tT2RANs5JKBl229MEhQQqHekvwMKIMtdDTrPUK9iDk
|
||||
-> ssh-ed25519 r+nK/Q e4CBPPh8S1Cpb/tDW5zsJbBGw4yZBt5R1va06fsA6D4
|
||||
UPLQ0Tp0TJigQZNK3vHMZ7Svg4YSAJtWNmXwQW+Kij0
|
||||
-> ssh-rsa krWCLQ
|
||||
P4oOUJ8k3OzSmUScG3zux7xmPcYYVU1U2AbUb2OLVcoGPoRwiWMybjH7EfG9Ueor
|
||||
aqUqe1MMsIXD9NILZyM9Sczqlyevuynxhu278Q6zuU717PfG6bRGd3BoQAJ69z+F
|
||||
X8qifC9xc2qdQyrM++sH0h36q9fDC7O5h7nMQz+zWNWNEXiC0dsz1P4yIeIBpqQM
|
||||
myalb7rTu+/W20LcdbDOMZeuxakNcJ3W/szQMOPNSRy8wPOga1MSpeuHZc1cS1ba
|
||||
0KsSkx0tI6FLXeKSQR9nqlmvAkxm17dxVDF0qkXySQoEfiwhZ1iAu5ZeJgJIQEmv
|
||||
FmkJayZk3hk9+mihZObi+A
|
||||
-> ssh-ed25519 /vwQcQ 4WrpX5IptFqXZ/GBMvyF1KJBIeaOXk7ISt0N85KYi1A
|
||||
G647eAYBiLyNT7xhm4TQ2lWy55GGI8SS7mXc+2SQ1ZY
|
||||
-> ssh-ed25519 0R97PA DicfWMBlCXplVkn7EO+G/vyJ0xgUqJIP4FjYj4ed/Hg
|
||||
BShfq85PHCbQpYTG1pD/Zx8TJ7ppzZYYd5QpVFGnMj4
|
||||
-> ssh-ed25519 JGx7Ng 37y90Dug3tzTulq9Fd/4ZynuG6OCDqckIqXHR2G5GFA
|
||||
zZNB/MJDNcm8CDByA23CBGqEBTbbX73cSXy7V7927vk
|
||||
-> ssh-ed25519 bUjjig jjnr0nN3S7CBkF77EkUYV/yZ0os2H3t3Vy6r2XuxF14
|
||||
wz6x/Rvqq3oUCYJaGcWIK9xEEY6aZUqnk0Ve7trFfF0
|
||||
-> ssh-ed25519 tDqJRg RDDHbdgqHh8flC0QO2hwQxX0caS+tbiM8OzIpVrNqBw
|
||||
yVxHVzLPYd1F3upLpaQzu1d3V7il7aZBocBegL6DdJ4
|
||||
--- eiwmc9p33AICiJ3GOnfj3n2+gfS39jf0NgD681w8HG4
|
||||
Ðqo¦ÔÊþ’‰/Taï`´ù<C2AD>Žº—ö?AæB‚eÌ«ÒÛj |Šâ©¥õœÐWBÈýCˆ<43>©å¿
|
|
@ -26,7 +26,6 @@
|
|||
"nextcloud-adminpass_file"
|
||||
"nextcloud-s3_secret_file"
|
||||
"nimbolus-kms_key"
|
||||
"nimbolus-s3_access"
|
||||
"nimbolus-s3_secret"
|
||||
"opengist-environment_file"
|
||||
"outline-oidc_client_secret_file"
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
"django-apps"
|
||||
"extranix"
|
||||
"forgejo-multiuser-nix-runners"
|
||||
"nimbolus-tf"
|
||||
"openbao"
|
||||
])
|
||||
++ [
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue