···212213 systemd.services.paperless-scheduler = {
214 description = "Paperless Celery Beat";
00215 serviceConfig = defaultServiceConfig // {
216 User = cfg.user;
217 ExecStart = "${pkg}/bin/celery --app paperless beat --loglevel INFO";
218 Restart = "on-failure";
219 };
220 environment = env;
221- wantedBy = [ "multi-user.target" ];
222- wants = [ "paperless-consumer.service" "paperless-web.service" "paperless-task-queue.service" ];
223224 preStart = ''
225 ln -sf ${manage} ${cfg.dataDir}/paperless-manage
···248249 systemd.services.paperless-task-queue = {
250 description = "Paperless Celery Workers";
0251 serviceConfig = defaultServiceConfig // {
252 User = cfg.user;
253 ExecStart = "${pkg}/bin/celery --app paperless worker --loglevel INFO";
···275276 systemd.services.paperless-consumer = {
277 description = "Paperless document consumer";
0000278 serviceConfig = defaultServiceConfig // {
279 User = cfg.user;
280 ExecStart = "${pkg}/bin/paperless-ngx document_consumer";
281 Restart = "on-failure";
282 };
283 environment = env;
284- # Bind to `paperless-scheduler` so that the consumer never runs
285- # during migrations
286- bindsTo = [ "paperless-scheduler.service" ];
287- after = [ "paperless-scheduler.service" ];
288 };
289290 systemd.services.paperless-web = {
291 description = "Paperless web server";
0000292 serviceConfig = defaultServiceConfig // {
293 User = cfg.user;
294 ExecStart = ''
···312 # Allow the web interface to access the private /tmp directory of the server.
313 # This is required to support uploading files via the web interface.
314 unitConfig.JoinsNamespaceOf = "paperless-task-queue.service";
315- # Bind to `paperless-scheduler` so that the web server never runs
316- # during migrations
317- bindsTo = [ "paperless-scheduler.service" ];
318- after = [ "paperless-scheduler.service" ];
319 };
320321 users = optionalAttrs (cfg.user == defaultUser) {
···212213 systemd.services.paperless-scheduler = {
214 description = "Paperless Celery Beat";
215+ wantedBy = [ "multi-user.target" ];
216+ wants = [ "paperless-consumer.service" "paperless-web.service" "paperless-task-queue.service" ];
217 serviceConfig = defaultServiceConfig // {
218 User = cfg.user;
219 ExecStart = "${pkg}/bin/celery --app paperless beat --loglevel INFO";
220 Restart = "on-failure";
221 };
222 environment = env;
00223224 preStart = ''
225 ln -sf ${manage} ${cfg.dataDir}/paperless-manage
···248249 systemd.services.paperless-task-queue = {
250 description = "Paperless Celery Workers";
251+ after = [ "paperless-scheduler.service" ];
252 serviceConfig = defaultServiceConfig // {
253 User = cfg.user;
254 ExecStart = "${pkg}/bin/celery --app paperless worker --loglevel INFO";
···276277 systemd.services.paperless-consumer = {
278 description = "Paperless document consumer";
279+ # Bind to `paperless-scheduler` so that the consumer never runs
280+ # during migrations
281+ bindsTo = [ "paperless-scheduler.service" ];
282+ after = [ "paperless-scheduler.service" ];
283 serviceConfig = defaultServiceConfig // {
284 User = cfg.user;
285 ExecStart = "${pkg}/bin/paperless-ngx document_consumer";
286 Restart = "on-failure";
287 };
288 environment = env;
0000289 };
290291 systemd.services.paperless-web = {
292 description = "Paperless web server";
293+ # Bind to `paperless-scheduler` so that the web server never runs
294+ # during migrations
295+ bindsTo = [ "paperless-scheduler.service" ];
296+ after = [ "paperless-scheduler.service" ];
297 serviceConfig = defaultServiceConfig // {
298 User = cfg.user;
299 ExecStart = ''
···317 # Allow the web interface to access the private /tmp directory of the server.
318 # This is required to support uploading files via the web interface.
319 unitConfig.JoinsNamespaceOf = "paperless-task-queue.service";
0000320 };
321322 users = optionalAttrs (cfg.user == defaultUser) {
+4
nixos/tests/paperless.nix
···26 # Wait until server accepts connections
27 machine.wait_until_succeeds("curl -fs localhost:28981")
28000029 with subtest("Add a document via the web interface"):
30 machine.succeed(
31 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
···26 # Wait until server accepts connections
27 machine.wait_until_succeeds("curl -fs localhost:28981")
2829+ # Required for consuming documents via the web interface
30+ with subtest("Task-queue gets ready"):
31+ machine.wait_for_unit("paperless-task-queue.service")
32+33 with subtest("Add a document via the web interface"):
34 machine.succeed(
35 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "