Skip to content

Commit 266fa18

Browse files
authored
fix: scope postgres usage to nixflix.postgres.enable (#127)
Previously, jellyseerr and arr services would automatically use postgres whenever services.postgresql.enable was true — even if postgres was only running for an unrelated service (e.g. Immich). This caused jellyseerr to try to use an external postgres cluster it had no control over, resulting in empty user tables and broken initial setup. Scope all postgres-conditional logic to config.nixflix.postgres.enable so that postgres is only used when nixflix's own postgres module is explicitly enabled.
1 parent 1eaf54b commit 266fa18

2 files changed

Lines changed: 12 additions & 12 deletions

File tree

modules/arr-common/mkArrServiceModule.nix

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ in
130130
server = {
131131
inherit (config.nixflix.${serviceName}.config.hostConfig) port urlBase;
132132
};
133-
} // optionalAttrs config.services.postgresql.enable {
133+
} // optionalAttrs config.nixflix.postgres.enable {
134134
log.dbEnabled = true;
135135
postgres = {
136136
user = config.nixflix.${serviceName}.user;
@@ -215,7 +215,7 @@ in
215215
};
216216
server = { inherit (cfg.config.hostConfig) port urlBase; };
217217
}
218-
// optionalAttrs config.services.postgresql.enable {
218+
// optionalAttrs config.nixflix.postgres.enable {
219219
log.dbEnabled = true;
220220
postgres = {
221221
inherit (cfg) user;
@@ -236,7 +236,7 @@ in
236236
};
237237

238238
services = {
239-
postgresql = mkIf config.services.postgresql.enable {
239+
postgresql = mkIf config.nixflix.postgres.enable {
240240
ensureDatabases = [
241241
cfg.settings.postgres.mainDb
242242
cfg.settings.postgres.logDb
@@ -314,7 +314,7 @@ in
314314
);
315315

316316
systemd.services = {
317-
"${serviceName}-setup-logs-db" = mkIf config.services.postgresql.enable {
317+
"${serviceName}-setup-logs-db" = mkIf config.nixflix.postgres.enable {
318318
description = "Grant ownership of ${capitalizedName} databases";
319319
after = [
320320
"postgresql.service"
@@ -340,7 +340,7 @@ in
340340
'';
341341
};
342342

343-
"${serviceName}-wait-for-db" = mkIf config.services.postgresql.enable {
343+
"${serviceName}-wait-for-db" = mkIf config.nixflix.postgres.enable {
344344
description = "Wait for ${capitalizedName} PostgreSQL databases to be ready";
345345
after = [
346346
"postgresql.service"
@@ -381,15 +381,15 @@ in
381381
++ (optional (
382382
cfg.config.apiKey != null && cfg.config.hostConfig.password != null
383383
) "${serviceName}-env.service")
384-
++ (optional config.services.postgresql.enable "postgresql-ready.target")
384+
++ (optional config.nixflix.postgres.enable "postgresql-ready.target")
385385
++ (optional config.nixflix.mullvad.enable "mullvad-config.service");
386386
requires = [
387387
"nixflix-setup-dirs.service"
388388
]
389389
++ (optional (
390390
cfg.config.apiKey != null && cfg.config.hostConfig.password != null
391391
) "${serviceName}-env.service")
392-
++ (optional config.services.postgresql.enable "postgresql-ready.target");
392+
++ (optional config.nixflix.postgres.enable "postgresql-ready.target");
393393
wants = optional config.nixflix.mullvad.enable "mullvad-config.service";
394394
wantedBy = [ "multi-user.target" ];
395395

modules/jellyseerr/default.nix

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ in
8989
};
9090
};
9191

92-
services.postgresql = mkIf config.services.postgresql.enable {
92+
services.postgresql = mkIf config.nixflix.postgres.enable {
9393
ensureDatabases = [ cfg.user ];
9494
ensureUsers = [
9595
{
@@ -118,7 +118,7 @@ in
118118
'';
119119
};
120120

121-
jellyseerr-wait-for-db = mkIf config.services.postgresql.enable {
121+
jellyseerr-wait-for-db = mkIf config.nixflix.postgres.enable {
122122
description = "Wait for Jellyseerr PostgreSQL database to be ready";
123123
after = [
124124
"postgresql.service"
@@ -160,7 +160,7 @@ in
160160
"jellyfin.service"
161161
"jellyfin-setup-wizard.service"
162162
]
163-
++ optional config.services.postgresql.enable "postgresql-ready.target"
163+
++ optional config.nixflix.postgres.enable "postgresql-ready.target"
164164
++ optional config.nixflix.recyclarr.enable "recyclarr.service"
165165
++ optional (
166166
config.nixflix.recyclarr.enable && config.nixflix.recyclarr.cleanupUnmanagedProfiles.enable
@@ -180,7 +180,7 @@ in
180180
"jellyfin-setup-wizard.service"
181181
]
182182
++ optional (cfg.apiKey != null) "jellyseerr-env.service"
183-
++ optional config.services.postgresql.enable "postgresql-ready.target"
183+
++ optional config.nixflix.postgres.enable "postgresql-ready.target"
184184
++ optional (
185185
config.nixflix.recyclarr.enable && config.nixflix.recyclarr.cleanupUnmanagedProfiles.enable
186186
) "recyclarr-cleanup-profiles.service";
@@ -192,7 +192,7 @@ in
192192
PORT = toString cfg.port;
193193
CONFIG_DIRECTORY = cfg.dataDir;
194194
}
195-
// optionalAttrs config.services.postgresql.enable {
195+
// optionalAttrs config.nixflix.postgres.enable {
196196
DB_TYPE = "postgres";
197197
DB_SOCKET_PATH = "/run/postgresql";
198198
DB_USER = cfg.user;

0 commit comments

Comments
 (0)