diff options
author | AlphaJack | 2022-03-11 11:18:04 +0100 |
---|---|---|
committer | AlphaJack | 2022-03-11 11:18:04 +0100 |
commit | 2362e648206408e496d954f5e35ff374b677b1b2 (patch) | |
tree | 9d8b8158be842b2b941465abf38c1b040827d177 | |
download | aur-2362e648206408e496d954f5e35ff374b677b1b2.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 126 | ||||
-rw-r--r-- | PKGBUILD | 165 | ||||
-rw-r--r-- | paperless-consumer.service | 15 | ||||
-rw-r--r-- | paperless-scheduler.service | 15 | ||||
-rw-r--r-- | paperless-webserver.service | 16 | ||||
-rw-r--r-- | paperless.hook | 9 | ||||
-rw-r--r-- | paperless.install | 36 | ||||
-rw-r--r-- | paperless.sysusers | 1 | ||||
-rw-r--r-- | paperless.target | 8 | ||||
-rw-r--r-- | paperless.tmpfiles | 7 |
10 files changed, 398 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..d86816697365 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,126 @@ +pkgbase = paperless-ngx + pkgdesc = A supercharged version of paperless: scan, index and archive all your physical documents + pkgver = 1.6.0 + pkgrel = 1 + url = https://github.com/paperless-ngx/paperless-ngx + install = paperless.install + arch = any + license = GPL3 + depends = file + depends = gnupg + depends = gunicorn + depends = imagemagick + depends = mailcap + depends = ocrmypdf + depends = optipng + depends = redis + depends = sqlite + depends = tesseract-data-eng + depends = ttf-liberation + depends = uvicorn + depends = python-aiohttp + depends = python-aioredis1 + depends = python-arrow + depends = python-asgiref + depends = python-async-timeout + depends = python-attrs + depends = python-autobahn + depends = python-automat + depends = python-blessed + depends = python-certifi + depends = python-django-channels + depends = python-django-channels-redis + depends = python-chardet + depends = python-click + depends = python-concurrent-log-handler + depends = python-constantly + depends = python-cryptography + depends = python-daphne + depends = python-dateparser + depends = python-django + depends = python-django-cors-headers + depends = python-django-extensions + depends = python-django-filter + depends = python-django-picklefield + depends = python-django-q + depends = python-django-rest-framework + depends = python-filelock + depends = python-fuzzywuzzy + depends = python-h11 + depends = python-hiredis + depends = python-httptools + depends = python-humanfriendly + depends = python-hyperlink + depends = python-idna + depends = python-imap-tools + depends = python-incremental + depends = python-inotify-simple + depends = python-inotifyrecursive + depends = python-joblib + depends = python-langdetect + depends = python-lxml + depends = python-msgpack + depends = python-numpy + depends = python-pathvalidate + depends = python-portalocker + depends = python-psycopg2 + depends = python-pyasn1 + depends = python-pyasn1-modules + depends = python-pycparser + depends = python-pyopenssl + depends = python-dateutil + depends = python-dotenv + depends = python-gnupg + depends = python-levenshtein + depends = python-magic-ahupp + depends = python-pytz + depends = python-yaml + depends = python-redis + depends = python-regex + depends = python-requests + depends = python-scikit-learn + depends = python-scipy + depends = python-service-identity + depends = python-six + depends = python-sortedcontainers + depends = python-sqlparse + depends = python-threadpoolctl + depends = python-tika + depends = python-twisted + depends = python-txaio + depends = python-tzlocal + depends = python-urllib3 + depends = python-uvloop + depends = python-watchdog + depends = python-watchgod + depends = python-wcwidth + depends = python-websockets + depends = python-whitenoise + depends = python-whoosh + depends = python-zope-interface + optdepends = jbig2enc: smaller PDF size + optdepends = postgresql: postgres database + provides = paperless + provides = paperless-ngx + conflicts = paperless + conflicts = paperless-ng + options = !strip + backup = etc/paperless.conf + source = https://github.com/paperless-ngx/paperless-ngx/releases/download/ngx-1.6.0/paperless-ngx-1.6.0.tar.xz + source = paperless.hook + source = paperless.sysusers + source = paperless.tmpfiles + source = paperless.target + source = paperless-consumer.service + source = paperless-scheduler.service + source = paperless-webserver.service + sha256sums = f4971abf258382fb171a8d11f4c6181ca03b42334deb6d9305a04ea8f8eab91e + sha256sums = 4e2ca67d7eedf14ba839af852907e1d76aa0a5ee5f4f740a3aee786c24035ace + sha256sums = a002bd55b8e5b1ef89a10b907483c56df99d52d03951d464472d8c375e9835d6 + sha256sums = 3971deb5721eb4e01c2cc0348546cc22a861a1e84458061fce4fbd2cf01b2a1e + sha256sums = 091dc2406139bcc52ca1f9acdb4e20723f4511b8ce6849e37c5ab88784dbac12 + sha256sums = 95d4e665f66f63432c22d9f139769f84575cb427362865931253d9651779ec22 + sha256sums = 544821a278617c6493e7a27f25266c39d6cc10a877247fa5f807c7eaf1a460cd + sha256sums = 47e47fcadf029d85fa6304191afa6362b7675216cb82ed1bad8cce42c0378e7e + +pkgname = paperless-ngx diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..9a5709bcdce8 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,165 @@ +# Maintainer: AlphaJack <alphajack at tuta dot io> +# Maintainer: amo <https://aur.archlinux.org/account/amo> + +pkgname="paperless-ngx" +pkgver=1.6.0 +pkgrel=1 +pkgdesc="A supercharged version of paperless: scan, index and archive all your physical documents" +url="https://github.com/paperless-ngx/paperless-ngx" +license=("GPL3") +arch=("any") +provides=("paperless" "$pkgname") +conflicts=("paperless" "paperless-ng") +depends=("file" + "gnupg" + "gunicorn" + "imagemagick" + "mailcap" + "ocrmypdf" + "optipng" + "redis" + "sqlite" + "tesseract-data-eng" + "ttf-liberation" + "uvicorn" + "python-aiohttp" + "python-aioredis1" # until components have been updated + "python-arrow" + "python-asgiref" + "python-async-timeout" + "python-attrs" + "python-autobahn" + "python-automat" + "python-blessed" + "python-certifi" + "python-django-channels" + "python-django-channels-redis" + "python-chardet" + "python-click" + "python-concurrent-log-handler" + "python-constantly" + "python-cryptography" + "python-daphne" + "python-dateparser" + "python-django" + "python-django-cors-headers" + "python-django-extensions" + "python-django-filter" + "python-django-picklefield" + "python-django-q" + "python-django-rest-framework" + "python-filelock" + "python-fuzzywuzzy" + "python-h11" + "python-hiredis" + "python-httptools" + "python-humanfriendly" + "python-hyperlink" + "python-idna" + "python-imap-tools" + "python-incremental" + "python-inotify-simple" + "python-inotifyrecursive" + "python-joblib" + "python-langdetect" + "python-lxml" + "python-msgpack" + "python-numpy" + "python-pathvalidate" + "python-portalocker" + "python-psycopg2" + "python-pyasn1" + "python-pyasn1-modules" + "python-pycparser" + "python-pyopenssl" + "python-dateutil" + "python-dotenv" + "python-gnupg" + "python-levenshtein" + "python-magic-ahupp" + "python-pytz" + "python-yaml" + "python-redis" + "python-regex" + "python-requests" + "python-scikit-learn" + "python-scipy" + "python-service-identity" + "python-six" + "python-sortedcontainers" + "python-sqlparse" + "python-threadpoolctl" + "python-tika" + "python-twisted" + "python-txaio" + "python-tzlocal" + "python-urllib3" + "python-uvloop" + "python-watchdog" + "python-watchgod" + "python-wcwidth" + "python-websockets" + "python-whitenoise" + "python-whoosh" + "python-zope-interface") +optdepends=("jbig2enc: smaller PDF size" + "postgresql: postgres database") +source=("$url/releases/download/ngx-$pkgver/$pkgname-$pkgver.tar.xz" + "paperless.hook" + "paperless.sysusers" + "paperless.tmpfiles" + "paperless.target" + "paperless-consumer.service" + "paperless-scheduler.service" + "paperless-webserver.service") +sha256sums=('f4971abf258382fb171a8d11f4c6181ca03b42334deb6d9305a04ea8f8eab91e' + '4e2ca67d7eedf14ba839af852907e1d76aa0a5ee5f4f740a3aee786c24035ace' + 'a002bd55b8e5b1ef89a10b907483c56df99d52d03951d464472d8c375e9835d6' + '3971deb5721eb4e01c2cc0348546cc22a861a1e84458061fce4fbd2cf01b2a1e' + '091dc2406139bcc52ca1f9acdb4e20723f4511b8ce6849e37c5ab88784dbac12' + '95d4e665f66f63432c22d9f139769f84575cb427362865931253d9651779ec22' + '544821a278617c6493e7a27f25266c39d6cc10a877247fa5f807c7eaf1a460cd' + '47e47fcadf029d85fa6304191afa6362b7675216cb82ed1bad8cce42c0378e7e') +backup=("etc/paperless.conf") +options=("!strip") +install="paperless.install" + +prepare(){ + # use arch linux canonical paths + sed -i "$pkgname/paperless.conf" \ + -e "s|#PAPERLESS_CONSUMPTION_DIR=../consume|PAPERLESS_CONSUMPTION_DIR=/var/lib/paperless/consume|" \ + -e "s|#PAPERLESS_DATA_DIR=../data|PAPERLESS_DATA_DIR=/var/lib/paperless/data|" \ + -e "s|#PAPERLESS_MEDIA_ROOT=../media|PAPERLESS_MEDIA_ROOT=/var/lib/paperless/media|" \ + -e "s|#PAPERLESS_STATICDIR=../static|PAPERLESS_STATICDIR=/usr/share/paperless/static|" \ + -e "s|#PAPERLESS_CONVERT_TMPDIR=/var/tmp/paperless|PAPERLESS_CONVERT_TMPDIR=/var/lib/paperless/tmp|" + # remove hardcoded bind address + sed -i "$pkgname/gunicorn.conf.py" \ + -e "s|bind = '0.0.0.0:8000'||" + # add custom dir for uploaded files + printf "\n# Uploads\n\nPAPERLESS_SCRATCH_DIR=/var/lib/paperless/uploads" >> "$pkgname/paperless.conf" + # add customizable bind address, will be used by paperless-webserver.service + printf "\n\n# Webserver\n\nGUNICORN_CMD_ARGS='--bind=127.0.0.1:8000'" >> "$pkgname/paperless.conf" +} + +package(){ + # program files + install -d "$pkgdir/usr/share/paperless" "$pkgdir/usr/bin" + cp -R "$pkgname"/* "$pkgdir/usr/share/paperless" + # main executable + chmod 755 "$pkgdir/usr/share/paperless/src/manage.py" + ln -s "/usr/share/paperless/src/manage.py" "$pkgdir/usr/bin/paperless-manage" + # config file + install -D -m 640 "$pkgname/paperless.conf" "$pkgdir/etc/paperless.conf" + rm "$pkgdir/usr/share/paperless/paperless.conf" + ln -s "/etc/paperless.conf" "$pkgdir/usr/share/paperless/paperless.conf" + # optional pacman hook + install -D -m 644 "paperless.hook" "$pkgdir/usr/share/paperless/docs/paperless.hook" + # user and files to create, ownership and permission to set + install -D -m 644 "paperless.sysusers" "$pkgdir/usr/lib/sysusers.d/paperless.conf" + install -D -m 644 "paperless.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/paperless.conf" + # service files + install -D -m 644 "paperless.target" "$pkgdir/usr/lib/systemd/system/paperless.target" + install -D -m 644 "paperless-consumer.service" "$pkgdir/usr/lib/systemd/system/paperless-consumer.service" + install -D -m 644 "paperless-scheduler.service" "$pkgdir/usr/lib/systemd/system/paperless-scheduler.service" + install -D -m 644 "paperless-webserver.service" "$pkgdir/usr/lib/systemd/system/paperless-webserver.service" +} diff --git a/paperless-consumer.service b/paperless-consumer.service new file mode 100644 index 000000000000..754273c1acfa --- /dev/null +++ b/paperless-consumer.service @@ -0,0 +1,15 @@ +[Unit] +Description=Paperless consumer service +After=network.target +Requires=redis.service +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +WorkingDirectory=/usr/share/paperless/src +ExecStart=/usr/bin/paperless-manage document_consumer +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/paperless-scheduler.service b/paperless-scheduler.service new file mode 100644 index 000000000000..e2925459b749 --- /dev/null +++ b/paperless-scheduler.service @@ -0,0 +1,15 @@ +[Unit] +Description=Paperless scheduler service +After=network.target +Requires=redis.service +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +WorkingDirectory=/usr/share/paperless/src +ExecStart=/usr/bin/paperless-manage qcluster +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/paperless-webserver.service b/paperless-webserver.service new file mode 100644 index 000000000000..adf3845bea9a --- /dev/null +++ b/paperless-webserver.service @@ -0,0 +1,16 @@ +[Unit] +Description=Paperless webserver service +After=network.target +Requires=redis.service +PartOf=paperless.target + +[Service] +User=paperless +Group=paperless +EnvironmentFile=/etc/paperless.conf +WorkingDirectory=/usr/share/paperless/src +ExecStart=/usr/bin/gunicorn -c /usr/share/paperless/gunicorn.conf.py paperless.asgi:application +Restart=on-abort + +[Install] +WantedBy=paperless.target diff --git a/paperless.hook b/paperless.hook new file mode 100644 index 000000000000..0f78fee63eef --- /dev/null +++ b/paperless.hook @@ -0,0 +1,9 @@ +[Trigger] +Operation = Upgrade +Type = Package +Target = paperless-ngx + +[Action] +Description = Migrating the Paperless database +When = PostTransaction +Exec = /usr/bin/runuser -u paperless -- /usr/bin/paperless-manage migrate --noinput diff --git a/paperless.install b/paperless.install new file mode 100644 index 000000000000..1b5792373d7a --- /dev/null +++ b/paperless.install @@ -0,0 +1,36 @@ +post_install(){ + cat <<INFO + +To complete the installation of this paperless fork, edit /etc/paperless.conf, +then create the database with + + sudo -u paperless paperless-manage migrate + +and create a super user with + + sudo -u paperless paperless-manage createsuperuser + +Paperless services can be started together with + + sudo systemctl start paperless.target + +INFO +} + +post_upgrade(){ + # warn the user if the provided hook is not being used + if [ ! -e "/etc/pacman.d/hooks/paperless.hook" ]; then + cat <<INFO + +To complete the update process of Paperless-ng, you should run eventual new migrations with + + sudo -u paperless paperless-manage migrate + +This process can be automated by running once + + sudo mkdir -p /etc/pacman.d/hooks/ + sudo ln -s /usr/share/paperless/docs/paperless.hook /etc/pacman.d/hooks/ + +INFO + fi +} diff --git a/paperless.sysusers b/paperless.sysusers new file mode 100644 index 000000000000..fc84469b42cf --- /dev/null +++ b/paperless.sysusers @@ -0,0 +1 @@ +u paperless - "Paperless user" /var/lib/paperless diff --git a/paperless.target b/paperless.target new file mode 100644 index 000000000000..2b95694600f5 --- /dev/null +++ b/paperless.target @@ -0,0 +1,8 @@ +[Unit] +Description=Paperless services +After=network.target +Wants=paperless-webserver.service paperless-consumer.service paperless-scheduler.service +Requires=redis.service + +[Install] +WantedBy=multi-user.target diff --git a/paperless.tmpfiles b/paperless.tmpfiles new file mode 100644 index 000000000000..6d9934f5e315 --- /dev/null +++ b/paperless.tmpfiles @@ -0,0 +1,7 @@ +f /etc/paperless.conf 0640 root paperless +d /var/lib/paperless 0770 paperless paperless +d /var/lib/paperless/consume 0770 paperless paperless +d /var/lib/paperless/data 0750 paperless paperless +d /var/lib/paperless/media 0750 paperless paperless +d /var/lib/paperless/tmp 0750 paperless paperless +d /var/lib/paperless/uploads 0750 paperless paperless |