Update to 2021-12-01 19:13

This commit is contained in:
Daniel Berteaud
2021-12-01 19:13:34 +01:00
commit 4c4556c660
2153 changed files with 60999 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import os
bind = '0.0.0.0:{{ paperless_port }}'
workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2))
worker_class = 'paperless.workers.ConfigurableWorker'
timeout = 120
def pre_fork(server, worker):
pass
def pre_exec(server):
server.log.info("Forked child, re-executing.")
def when_ready(server):
server.log.info("Server is ready. Spawning workers")
def worker_int(worker):
worker.log.info("worker received INT or QUIT signal")
## get traceback info
import threading, sys, traceback
id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
code = []
for threadId, stack in sys._current_frames().items():
code.append("\n# Thread: %s(%d)" % (id2name.get(threadId,""),
threadId))
for filename, lineno, name, line in traceback.extract_stack(stack):
code.append('File: "%s", line %d, in %s' % (filename,
lineno, name))
if line:
code.append(" %s" % (line.strip()))
worker.log.debug("\n".join(code))
def worker_abort(worker):
worker.log.info("worker received SIGABRT signal")

View File

@@ -0,0 +1,22 @@
[Unit]
Description=Paperless consumer
After=redis.service postgresql.service
[Service]
User={{ paperless_user }}
Group={{ paperless_user }}
WorkingDirectory={{ paperless_root_dir }}/app/src
ExecStart={{ paperless_root_dir }}/venv/bin/python3 manage.py document_consumer
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
NoNewPrivileges=yes
MemoryLimit=200M
SyslogIdentifier=paperless-scheduler
Restart=on-failure
StartLimitInterval=0
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,22 @@
[Unit]
Description=Paperless scheduler
After=redis.service postgresql.service
[Service]
User={{ paperless_user }}
Group={{ paperless_user }}
WorkingDirectory={{ paperless_root_dir }}/app/src
ExecStart={{ paperless_root_dir }}/venv/bin/python3 manage.py qcluster
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
NoNewPrivileges=yes
MemoryLimit=1024M
SyslogIdentifier=paperless-scheduler
Restart=on-failure
StartLimitInterval=0
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,24 @@
[Unit]
Description=Paperless webserver
After=network.target
After=redis.service
Wants=network.target
[Service]
User={{ paperless_user }}
Group={{ paperless_user }}
WorkingDirectory={{ paperless_root_dir }}/app/src
ExecStart={{ paperless_root_dir }}/venv/bin/gunicorn -c {{ paperless_root_dir }}/app/gunicorn.conf.py paperless.asgi:application
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=full
ProtectHome=yes
NoNewPrivileges=yes
MemoryLimit=1024M
SyslogIdentifier=paperless-webserver
Restart=on-failure
StartLimitInterval=0
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,35 @@
PAPERLESS_REDIS={{ paperless_redis_url }}
PAPERLESS_DBHOST={{ paperless_db_server }}
PAPERLESS_DBPORT={{ paperless_db_port }}
PAPERLESS_DBNAME={{ paperless_db_name }}
PAPERLESS_DBUSER={{ paperless_db_user }}
PAPERLESS_DBPASS={{ paperless_db_pass }}
PAPERLESS_CONSUMPTION_DIR={{ paperless_consume_dir }}
PAPERLESS_CONSUMER_POLLING=60
PAPERLESS_DATA_DIR={{ paperless_root_dir }}/data
PAPERLESS_MEDIA_ROOT={{ paperless_root_dir }}/media
PAPERLESS_STATICDIR={{ paperless_root_dir }}/static
PAPERLESS_CONVERT_TMPDIR={{ paperless_root_dir }}/tmp
PAPERLESS_SCRATCH_DIR={{ paperless_root_dir }}/tmp
PAPERLESS_FILENAME_FORMAT={created_year}/{created_month}/{title}
PAPERLESS_LOGGING_DIR={{ paperless_root_dir }}/log
PAPERLESS_SECRET_KEY={{ paperless_secret_key }}
PAPERLESS_ALLOWED_HOSTS={{ paperless_public_url | urlsplit('hostname') }}
PAPERLESS_CORS_ALLOWED_HOSTS={{ paperless_public_url }}
PAPERLESS_FORCE_SCRIPT_NAME={{ paperless_public_url | urlsplit('path') | regex_replace('/$','') }}
PAPERLESS_STATIC_URL={{ paperless_public_url | urlsplit('path') | regex_replace('/$','') }}/static/
PAPERLESS_OCR_LANGUAGE={{ paperless_ocr_lang }}
PAPERLESS_TASK_WORKERS=2
{% if system_tz is defined %}
PAPERLESS_TIME_ZONE={{ system_tz }}
{% endif %}
PAPERLESS_CONSUMER_DELETE_DUPLICATES=True
PAPERLESS_CONSUMER_RECURSIVE=True
PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=True
{% if paperless_auth_header is defined %}
PAPERLESS_ENABLE_HTTP_REMOTE_USER=True
PAPERLESS_HTTP_REMOTE_USER_HEADER_NAME={{ paperless_auth_header }}
{% endif %}
{% if paperless_ignore_dates | length > 0 %}
PAPERLESS_IGNORE_DATES={{ paperless_ignore_dates | join(',') }}
{% endif %}

View File

@@ -0,0 +1,3 @@
#!/bin/bash -e
rm -f {{ paperless_root_dir }}/backup/*

View File

@@ -0,0 +1,12 @@
#!/bin/sh
set -eo pipefail
PGPASSWORD='{{ paperless_db_pass }}' /usr/pgsql-14/bin/pg_dump \
--clean \
--create \
--username={{ paperless_db_user | quote }} \
--host={{ paperless_db_server | quote }} \
--port={{ paperless_db_port }} \
{{ paperless_db_name | quote }} | \
zstd -c > {{ paperless_root_dir }}/backup/{{ paperless_db_name | quote }}.sql.zst