My Nix Configuration

[marvin.pingvin-share] Make actually work

pyrox.dev fb29ade4 4ce916dc

verified
Changed files
+39 -34
systems
x86_64-linux
marvin
+39 -34
systems/x86_64-linux/marvin/services/pingvin-share.nix
···
let
d = lib.py.data.services.pingvin-share;
cfg = config.services.pingvin-share;
-
configFile = pkgs.py.pingvin-share-config.overrideAttrs {
-
settings = {
-
general = {
-
appName = "dishNet Files";
-
secureCookies = "true";
-
};
-
share = {
-
allowRegistration = "false";
-
allowUnauthenticatedShares = "false";
-
};
-
email.enableShareEmailRecipients = "true";
-
smtp = {
-
enabled = "true";
-
host = "mail.pyrox.dev";
-
port = "465";
-
email = "share@pyrox.dev";
-
username = "share@pyrox.dev";
-
password = "SMTP_PASSWORD";
-
};
-
ldap.enabled = "false";
-
legal.enabled = "false";
-
s3.enabled = "false";
-
initUser = {
-
enabled = true;
-
username = "dish";
-
email = "pyrox@pyrox.dev";
-
password = "ADMIN_PASSWORD";
-
isAdmin = true;
-
};
+
configFormat = pkgs.formats.yaml { };
+
configFile = configFormat.generate "config.yaml" {
+
general = {
+
appName = "dishNet Files";
+
secureCookies = "true";
+
};
+
share = {
+
allowRegistration = "false";
+
allowUnauthenticatedShares = "false";
+
};
+
email.enableShareEmailRecipients = "true";
+
smtp = {
+
enabled = "true";
+
host = "mail.pyrox.dev";
+
port = "465";
+
email = "share@pyrox.dev";
+
username = "share@pyrox.dev";
+
password = "SMTP_PASSWORD";
+
};
+
ldap.enabled = "false";
+
legal.enabled = "false";
+
s3.enabled = "false";
+
initUser = {
+
enabled = true;
+
username = "dish";
+
email = "pyrox@pyrox.dev";
+
password = "ADMIN_PASSWORD";
+
isAdmin = true;
};
};
in
···
enable = cfg.enable;
description = "Pingvin Share configuration setup";
wantedBy = [ "multi-user.target" ];
-
before = [ "pingvin-share.service" ];
+
before = [
+
"pingvin-share-backend.service"
+
"pingvin-share-frontend.service"
+
];
path = [ pkgs.gnused ];
script = ''
rm ${cfg.dataDir}/config.yaml
-
chmod o-rwx ${cfg.dataDir}/config.yaml
-
chmod ug-x ${cfg.dataDir}/config.yaml
-
cp ${configFile}/config.yaml ${cfg.dataDir}/config.yaml
+
cp ${configFile} ${cfg.dataDir}/config.yaml
sed -i "s/SMTP_PASSWORD/$SMTP_PASSWORD/" ${cfg.dataDir}/config.yaml
sed -i "s/ADMIN_PASSWORD/$ADMIN_PASSWORD/" ${cfg.dataDir}/config.yaml
'';
···
EnvironmentFile = config.age.secrets.pingvin-secrets.path;
User = cfg.user;
Group = cfg.group;
-
ReadWritePaths = [ "${cfg.dataDir}/config.yaml" ];
+
ReadWritePaths = [ "${cfg.dataDir}" ];
};
+
};
+
age.secrets.pingvin-secrets = {
+
file = ./secrets/pingvin-secrets.age;
+
owner = cfg.user;
+
group = cfg.group;
};
}