Loading nixos/modules/services/web-apps/homebox.nix +38 −7 Original line number Diff line number Diff line Loading @@ -35,6 +35,15 @@ in [documentation](https://homebox.software/en/configure-homebox.html). ''; }; database = { createLocally = lib.mkOption { type = lib.types.bool; default = false; description = '' Configure local PostgreSQL database server for Homebox. ''; }; }; }; config = mkIf cfg.enable { Loading @@ -43,15 +52,37 @@ in group = "homebox"; }; users.groups.homebox = { }; services.homebox.settings = { HBOX_STORAGE_DATA = mkDefault "/var/lib/homebox/data"; HBOX_DATABASE_DRIVER = mkDefault "sqlite3"; HBOX_DATABASE_SQLITE_PATH = mkDefault "/var/lib/homebox/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1"; HBOX_OPTIONS_ALLOW_REGISTRATION = mkDefault "false"; HBOX_OPTIONS_CHECK_GITHUB_RELEASE = mkDefault "false"; HBOX_MODE = mkDefault "production"; services.homebox.settings = lib.mkMerge [ (lib.mapAttrs (_: mkDefault) { HBOX_STORAGE_DATA = "/var/lib/homebox/data"; HBOX_DATABASE_DRIVER = "sqlite3"; HBOX_DATABASE_SQLITE_PATH = "/var/lib/homebox/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1"; HBOX_OPTIONS_ALLOW_REGISTRATION = "false"; HBOX_OPTIONS_CHECK_GITHUB_RELEASE = "false"; HBOX_MODE = "production"; }) (lib.mkIf cfg.database.createLocally { HBOX_DATABASE_DRIVER = "postgres"; HBOX_DATABASE_HOST = "/run/postgresql"; HBOX_DATABASE_USERNAME = "homebox"; HBOX_DATABASE_DATABASE = "homebox"; HBOX_DATABASE_PORT = toString config.services.postgresql.settings.port; }) ]; services.postgresql = lib.mkIf cfg.database.createLocally { enable = true; ensureDatabases = [ "homebox" ]; ensureUsers = [ { name = "homebox"; ensureDBOwnership = true; } ]; }; systemd.services.homebox = { requires = lib.optional cfg.database.createLocally "postgresql.service"; after = lib.optional cfg.database.createLocally "postgresql.service"; environment = cfg.settings; serviceConfig = { User = "homebox"; Loading Loading
nixos/modules/services/web-apps/homebox.nix +38 −7 Original line number Diff line number Diff line Loading @@ -35,6 +35,15 @@ in [documentation](https://homebox.software/en/configure-homebox.html). ''; }; database = { createLocally = lib.mkOption { type = lib.types.bool; default = false; description = '' Configure local PostgreSQL database server for Homebox. ''; }; }; }; config = mkIf cfg.enable { Loading @@ -43,15 +52,37 @@ in group = "homebox"; }; users.groups.homebox = { }; services.homebox.settings = { HBOX_STORAGE_DATA = mkDefault "/var/lib/homebox/data"; HBOX_DATABASE_DRIVER = mkDefault "sqlite3"; HBOX_DATABASE_SQLITE_PATH = mkDefault "/var/lib/homebox/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1"; HBOX_OPTIONS_ALLOW_REGISTRATION = mkDefault "false"; HBOX_OPTIONS_CHECK_GITHUB_RELEASE = mkDefault "false"; HBOX_MODE = mkDefault "production"; services.homebox.settings = lib.mkMerge [ (lib.mapAttrs (_: mkDefault) { HBOX_STORAGE_DATA = "/var/lib/homebox/data"; HBOX_DATABASE_DRIVER = "sqlite3"; HBOX_DATABASE_SQLITE_PATH = "/var/lib/homebox/data/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1"; HBOX_OPTIONS_ALLOW_REGISTRATION = "false"; HBOX_OPTIONS_CHECK_GITHUB_RELEASE = "false"; HBOX_MODE = "production"; }) (lib.mkIf cfg.database.createLocally { HBOX_DATABASE_DRIVER = "postgres"; HBOX_DATABASE_HOST = "/run/postgresql"; HBOX_DATABASE_USERNAME = "homebox"; HBOX_DATABASE_DATABASE = "homebox"; HBOX_DATABASE_PORT = toString config.services.postgresql.settings.port; }) ]; services.postgresql = lib.mkIf cfg.database.createLocally { enable = true; ensureDatabases = [ "homebox" ]; ensureUsers = [ { name = "homebox"; ensureDBOwnership = true; } ]; }; systemd.services.homebox = { requires = lib.optional cfg.database.createLocally "postgresql.service"; after = lib.optional cfg.database.createLocally "postgresql.service"; environment = cfg.settings; serviceConfig = { User = "homebox"; Loading