diff --git a/hosts/marvin/services/immich.nix b/hosts/marvin/services/immich.nix index 31cbd7ee..acfa4382 100644 --- a/hosts/marvin/services/immich.nix +++ b/hosts/marvin/services/immich.nix @@ -16,10 +16,10 @@ in homepageUrl = "https://${d.extUrl}"; authMethod = "client_secret_post"; clientSecretFile = ./secrets/immich/oidc-secret.age; - redirectUrls = [ - "app.immich:///oauth-callback" - "https://${d.extUrl}/auth/login" - "https://${d.extUrl}/user-settings" + redirectUrls = map (x: "https://${d.extUrl}${x}") [ + "/api/oauth/mobile-redirect" + "/auth/login" + "/user-settings" ]; } ]; diff --git a/nixosModules/services/voidauth/default.nix b/nixosModules/services/voidauth/default.nix index 24ce33cc..a63399de 100644 --- a/nixosModules/services/voidauth/default.nix +++ b/nixosModules/services/voidauth/default.nix @@ -220,11 +220,20 @@ in users.groups.voidauth = { }; systemd.services.voidauth = let + voidauth-setup = pkgs.writeShellScript "voidauth-setup" '' + if [ ! -f /var/lib/voidauth/theme/generated-mat-theme.css ]; then + cp -r ${cfg.package}/lib/voidauth/theme /var/lib/voidauth/theme + chmod -hR 700 /var/lib/voidauth/theme + chown -R voidauth:voidauth /var/lib/voidauth/theme + fi + + ${oidc-secret-script} + ''; preStartFileName = "/var/lib/voidauth/oidcSecretsEnv"; - preStartScript = pkgs.writeShellScript "voidauth-make-oidc-secrets" '' + oidc-secret-script = pkgs.writeShellScript "voidauth-make-oidc-secrets" '' touch ${preStartFileName} chown voidauth:voidauth ${preStartFileName} - chmod 400 ${preStartFileName} + chmod 700 ${preStartFileName} cat > ${preStartFileName} << EOF ${lib.strings.concatMapStringsSep "\n" ( o: @@ -249,7 +258,7 @@ in User = "voidauth"; Group = "voidauth"; StateDirectory = "voidauth"; - ExecStartPre = preStartScript; + ExecStartPre = voidauth-setup; ExecStart = "${lib.getExe cfg.package} server"; WorkingDirectory = "/var/lib/voidauth"; EnvironmentFile = [ @@ -288,6 +297,7 @@ in "/var/lib/voidauth/config".d = voidauthFolder; "/var/lib/voidauth/db".d = lib.mkIf (cfg.database.type == "sqlite") voidauthFolder; "/var/lib/voidauth/theme".d = voidauthFolder; + "/var/lib/voidauth/oidcSecretsEnv".f = voidauthFolder; }; age.secrets = ageSecrets; }; diff --git a/packages/voidauth/package.nix b/packages/voidauth/package.nix index dbd5fdd7..3a6ca19c 100644 --- a/packages/voidauth/package.nix +++ b/packages/voidauth/package.nix @@ -58,6 +58,7 @@ buildNpmPackage (finalAttrs: { mkdir $out/lib/voidauth mv ./migrations $out/lib/voidauth/migrations mv ./default_email_templates $out/lib/voidauth/default_email_templates + mv ./theme $out/lib/voidauth/theme substituteInPlace $out/lib/node_modules/voidauth/dist/index.mjs \ --replace-fail '"./node_modules' "\"$out/lib/node_modules/voidauth/node_modules"