forked from Fediversity/Fediversity
use proper templating
This commit is contained in:
parent
2f46224f4a
commit
bf8ccd16bd
3 changed files with 41 additions and 40 deletions
|
@ -63,6 +63,7 @@ in
|
||||||
sources.flake-inputs
|
sources.flake-inputs
|
||||||
sources.git-hooks
|
sources.git-hooks
|
||||||
sources.vars
|
sources.vars
|
||||||
|
sources.nix-templating
|
||||||
|
|
||||||
pkgs.stdenv
|
pkgs.stdenv
|
||||||
pkgs.stdenvNoCC
|
pkgs.stdenvNoCC
|
||||||
|
|
|
@ -125,6 +125,19 @@
|
||||||
"url": "https://api.github.com/repos/bigskysoftware/htmx/tarball/v2.0.4",
|
"url": "https://api.github.com/repos/bigskysoftware/htmx/tarball/v2.0.4",
|
||||||
"hash": "1c4zm3b7ym01ijydiss4amd14mv5fbgp1n71vqjk4alc35jlnqy2"
|
"hash": "1c4zm3b7ym01ijydiss4amd14mv5fbgp1n71vqjk4alc35jlnqy2"
|
||||||
},
|
},
|
||||||
|
"nix-templating": {
|
||||||
|
"type": "Git",
|
||||||
|
"repository": {
|
||||||
|
"type": "GitHub",
|
||||||
|
"owner": "KiaraGrouwstra",
|
||||||
|
"repo": "nix-templating"
|
||||||
|
},
|
||||||
|
"branch": "lib-default-arg",
|
||||||
|
"submodules": false,
|
||||||
|
"revision": "e1ff247d508b4efd057a4d6bb13cf45b62c2512f",
|
||||||
|
"url": "https://github.com/KiaraGrouwstra/nix-templating/archive/e1ff247d508b4efd057a4d6bb13cf45b62c2512f.tar.gz",
|
||||||
|
"hash": "0g59h4r029jw8vlvn8da62fk9m737s80fg2qk57322iv9lkqlvp0"
|
||||||
|
},
|
||||||
"nix-unit": {
|
"nix-unit": {
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -155,14 +168,14 @@
|
||||||
"type": "Git",
|
"type": "Git",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "GitHub",
|
"type": "GitHub",
|
||||||
"owner": "kiaragrouwstra",
|
"owner": "KiaraGrouwstra",
|
||||||
"repo": "vars"
|
"repo": "vars"
|
||||||
},
|
},
|
||||||
"branch": "templates",
|
"branch": "rights",
|
||||||
"submodules": false,
|
"submodules": false,
|
||||||
"revision": "6ff942bf2b514edaa1022a92edb6552ac32a09d1",
|
"revision": "c268638fd7afc9ba2b53c1fe925374d7cd845fa4",
|
||||||
"url": "https://github.com/kiaragrouwstra/vars/archive/6ff942bf2b514edaa1022a92edb6552ac32a09d1.tar.gz",
|
"url": "https://github.com/KiaraGrouwstra/vars/archive/c268638fd7afc9ba2b53c1fe925374d7cd845fa4.tar.gz",
|
||||||
"hash": "1h1q3l1l1c1j4ak5lcj2yh85jwqww74ildiak2dkd4h1js9v6cvw"
|
"hash": "07l6s66i93vp4vhwl14p8hlj1xlrdr1yac1vwklvd24jcpsj5nr7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"version": 5
|
"version": 5
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
let
|
let
|
||||||
inherit (lib) mkIf mkMerge;
|
inherit (lib) mkIf mkMerge;
|
||||||
sources = import ../../../npins;
|
sources = import ../../../npins;
|
||||||
|
inherit (import "${sources.nix-templating}/lib.nix" { inherit pkgs; }) fileContents template_text;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = with sources; [
|
imports = with sources; [
|
||||||
|
@ -99,57 +100,43 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
vars.settings.on-machine.enable = true;
|
vars.settings.on-machine.enable = true;
|
||||||
vars.generators."templates" = rec {
|
|
||||||
dependencies = [ "attic" ];
|
|
||||||
runtimeInputs = [
|
|
||||||
pkgs.coreutils
|
|
||||||
pkgs.gnused
|
|
||||||
];
|
|
||||||
script = lib.concatStringsSep "\n" (
|
|
||||||
lib.mapAttrsToList (template: _: ''
|
|
||||||
cp "$templates/${template}" "$out/${template}"
|
|
||||||
echo "filling placeholders in template ${template}..."
|
|
||||||
${lib.concatStringsSep "\n" (
|
|
||||||
lib.mapAttrsToList (
|
|
||||||
parent:
|
|
||||||
{ placeholder, ... }:
|
|
||||||
''
|
|
||||||
sed -i "s/${placeholder}/$(cat "$in/attic/${parent}")/g" "$out/${template}"
|
|
||||||
echo "- substituted ${parent}"
|
|
||||||
''
|
|
||||||
) config.vars.generators."attic".files
|
|
||||||
)}
|
|
||||||
'') files
|
|
||||||
);
|
|
||||||
|
|
||||||
files."attic.env" = {
|
|
||||||
secret = true;
|
|
||||||
template = pkgs.writeText "attic.env" ''
|
|
||||||
ATTIC_SERVER_TOKEN_RS256_SECRET_BASE64="${config.vars.generators.attic.files.token.placeholder}"
|
|
||||||
AWS_ACCESS_KEY_ID="$(cat ${config.fediversity.attic.s3AccessKeyFile})"
|
|
||||||
AWS_SECRET_ACCESS_KEY="$(cat ${config.fediversity.attic.s3SecretKeyFile})"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
vars.generators.attic = {
|
vars.generators.attic = {
|
||||||
runtimeInputs = [
|
runtimeInputs = [
|
||||||
pkgs.coreutils
|
pkgs.coreutils
|
||||||
pkgs.openssl
|
pkgs.openssl
|
||||||
];
|
];
|
||||||
files.token.secret = true;
|
files.token = {
|
||||||
|
secret = true;
|
||||||
|
owner = "atticd";
|
||||||
|
};
|
||||||
script = ''
|
script = ''
|
||||||
openssl genrsa -traditional 4096 | base64 -w0 > "$out"/token
|
openssl genrsa -traditional 4096 | base64 -w0 > "$out"/token
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.atticd.serviceConfig = {
|
||||||
|
EnvironmentFile = lib.mkForce "-/tmp/attic.env";
|
||||||
|
ExecStartPre = "${
|
||||||
|
template_text {
|
||||||
|
# FIXME find a place not public
|
||||||
|
outPath = "/tmp/attic.env";
|
||||||
|
text = ''
|
||||||
|
ATTIC_SERVER_TOKEN_RS256_SECRET_BASE64="${fileContents config.vars.generators.attic.files.token.path}"
|
||||||
|
AWS_ACCESS_KEY_ID="${fileContents config.fediversity.attic.s3AccessKeyFile}"
|
||||||
|
AWS_SECRET_ACCESS_KEY="${fileContents config.fediversity.attic.s3SecretKeyFile}"
|
||||||
|
'';
|
||||||
|
name = "write";
|
||||||
|
}
|
||||||
|
}/bin/write";
|
||||||
|
};
|
||||||
|
|
||||||
services.atticd = {
|
services.atticd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
environmentFile = "/dev/null"; # set dummy to overwrite
|
||||||
# one `monolithic` and any number of `api-server` nodes
|
# one `monolithic` and any number of `api-server` nodes
|
||||||
mode = "monolithic";
|
mode = "monolithic";
|
||||||
|
|
||||||
environmentFile = config.vars.generators."templates".files."attic.env".path;
|
|
||||||
|
|
||||||
# https://github.com/zhaofengli/attic/blob/main/server/src/config-template.toml
|
# https://github.com/zhaofengli/attic/blob/main/server/src/config-template.toml
|
||||||
settings = {
|
settings = {
|
||||||
# Socket address to listen on
|
# Socket address to listen on
|
||||||
|
|
Loading…
Add table
Reference in a new issue