Unverified Commit c45456d8 authored by github-actions[bot]'s avatar github-actions[bot] Committed by GitHub
Browse files

Merge master into staging-next

parents 94b8d294 962bd73d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@

<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->

- [Bazecor](https://github.com/Dygmalab/Bazecor), the graphical configurator for Dygma Products.

- [Kimai](https://www.kimai.org/), a web-based multi-user time-tracking application. Available as [services.kimai](options.html#opt-services.kimai).

- [Omnom](https://github.com/asciimoo/omnom), a webpage bookmarking and snapshotting service. Available as [services.omnom](options.html#opt-services.omnom.enable).
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@
  ./programs/bash/blesh.nix
  ./programs/bash/ls-colors.nix
  ./programs/bash/undistract-me.nix
  ./programs/bazecor.nix
  ./programs/bcc.nix
  ./programs/benchexec.nix
  ./programs/browserpass.nix
+25 −0
Original line number Diff line number Diff line
{
  config,
  lib,
  pkgs,
  ...
}:

let
  cfg = config.programs.bazecor;
in
{
  meta.maintainers = with lib.maintainers; [ amesgen ];

  options = {
    programs.bazecor = {
      enable = lib.mkEnableOption "Bazecor, the graphical configurator for Dygma Products";
      package = lib.mkPackageOption pkgs "bazecor" { };
    };
  };

  config = lib.mkIf cfg.enable {
    environment.systemPackages = [ cfg.package ];
    services.udev.packages = [ cfg.package ];
  };
}
+38 −6
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ in
      '';
      example = {
        PAPERLESS_OCR_LANGUAGE = "deu+eng";
        PAPERLESS_DBHOST = "/run/postgresql";
        PAPERLESS_CONSUMER_IGNORE_PATTERN = [ ".DS_STORE/*" "desktop.ini" ];
        PAPERLESS_OCR_USER_ARGS = {
          optimize = 1;
@@ -246,11 +245,37 @@ in
        ```
      '';
    };

    database = {
      createLocally = lib.mkOption {
        type = lib.types.bool;
        default = false;
        description = ''
          Configure local PostgreSQL database server for Paperless.
        '';
      };
    };
  };

  config = lib.mkIf cfg.enable {
    services.redis.servers.paperless.enable = lib.mkIf enableRedis true;

    services.postgresql = lib.mkIf cfg.database.createLocally {
      enable = true;
      ensureDatabases = [ "paperless" ];
      ensureUsers = [{
        name = config.services.paperless.user;
        ensureDBOwnership = true;
      }];
    };

    services.paperless.settings = lib.mkIf cfg.database.createLocally {
      PAPERLESS_DBENGINE = "postgresql";
      PAPERLESS_DBHOST = "/run/postgresql";
      PAPERLESS_DBNAME = "paperless";
      PAPERLESS_DBUSER = "paperless";
    };

    systemd.slices.system-paperless = {
      description = "Paperless Document Management System Slice";
      documentation = [ "https://docs.paperless-ngx.com" ];
@@ -318,13 +343,16 @@ in
          echo "$superuserState" > "$superuserStateFile"
        fi
      '';
    } // lib.optionalAttrs enableRedis {
      after = [ "redis-paperless.service" ];
      requires = lib.optional cfg.database.createLocally "postgresql.service";
      after = lib.optional enableRedis "redis-paperless.service"
        ++ lib.optional cfg.database.createLocally "postgresql.service";
    };

    systemd.services.paperless-task-queue = {
      description = "Paperless Celery Workers";
      after = [ "paperless-scheduler.service" ];
      requires = lib.optional cfg.database.createLocally "postgresql.service";
      after = [ "paperless-scheduler.service" ]
        ++ lib.optional cfg.database.createLocally "postgresql.service";
      serviceConfig = defaultServiceConfig // {
        User = cfg.user;
        ExecStart = "${cfg.package}/bin/celery --app paperless worker --loglevel INFO";
@@ -342,7 +370,9 @@ in
      # Bind to `paperless-scheduler` so that the consumer never runs
      # during migrations
      bindsTo = [ "paperless-scheduler.service" ];
      after = [ "paperless-scheduler.service" ];
      requires = lib.optional cfg.database.createLocally "postgresql.service";
      after = [ "paperless-scheduler.service" ]
        ++ lib.optional cfg.database.createLocally "postgresql.service";
      serviceConfig = defaultServiceConfig // {
        User = cfg.user;
        ExecStart = "${cfg.package}/bin/paperless-ngx document_consumer";
@@ -359,7 +389,9 @@ in
      # Bind to `paperless-scheduler` so that the web server never runs
      # during migrations
      bindsTo = [ "paperless-scheduler.service" ];
      after = [ "paperless-scheduler.service" ];
      requires = lib.optional cfg.database.createLocally "postgresql.service";
      after = [ "paperless-scheduler.service" ]
        ++ lib.optional cfg.database.createLocally "postgresql.service";
      # Setup PAPERLESS_SECRET_KEY.
      # If this environment variable is left unset, paperless-ngx defaults
      # to a well-known value, which is insecure.
+1 −10
Original line number Diff line number Diff line
@@ -12,17 +12,8 @@ import ./make-test-python.nix ({ lib, ... }: {
    };
    postgres = { config, pkgs, ... }: {
      imports = [ self.simple ];
      services.postgresql = {
        enable = true;
        ensureDatabases = [ "paperless" ];
        ensureUsers = [
          { name = config.services.paperless.user;
            ensureDBOwnership = true;
          }
        ];
      };
      services.paperless.database.createLocally = true;
      services.paperless.settings = {
        PAPERLESS_DBHOST = "/run/postgresql";
        PAPERLESS_OCR_LANGUAGE = "deu";
      };
    };
Loading