test: forgejo microVM

This commit is contained in:
Nick 2025-11-06 12:29:48 -06:00
parent 1376cdbe77
commit 6011a900de
5 changed files with 97 additions and 11 deletions

View file

@ -36,11 +36,6 @@ in
database.type = "postgres";
lfs.enable = true;
secrets = {
mailer.PASSWD = "${secrets}/${service.name}-smtp";
database.PASSWD = "${secrets}/${service.name}-database";
};
dump = {
interval = "5:00";
type = "zip";
@ -91,8 +86,33 @@ in
systemd = {
tmpfiles.rules = [
"d ${secrets} 0755 ${service.name} ${service.name} -"
"d /run/forgejo 0755 ${service.name} ${service.name} -"
];
services.copy-forgejo-secrets = {
description = "Prepare Forgejo secrets environment file";
before = [ "forgejo.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
User = service.name;
Group = service.name;
};
script = ''
cat > /run/forgejo/env << EOF
FORGEJO__database__PASSWD=$(cat /run/secrets/${service.name}-database)
FORGEJO__mailer__PASSWD=$(cat /run/secrets/${service.name}-smtp)
EOF
chmod 600 /run/forgejo/env
'';
};
services.forgejo = {
serviceConfig = {
EnvironmentFile = "/run/forgejo/env";
};
};
services.forgejo-dump = {
serviceConfig = {
ExecStartPost = "${pkgs.nushell}/bin/nu -c 'ls ${service.varPaths.path0}/dump | where name =~ forgejo-backup and modified < ((date now) - 7day) | each { rm $in.name }'";