Compare commits

..

1785 Commits

Author SHA1 Message Date
Michael Shamoon
f9ce4d8f6a Update version strings for 1.11.0 2022-12-29 19:40:25 -08:00
Michael Shamoon
8c9a74ee0c Merge branch 'dev' 2022-12-29 19:39:38 -08:00
shamoon
0b59ef2cfa Merge pull request #2117 from paperless-ngx/l10n_dev
New Crowdin updates
2022-12-29 19:38:55 -08:00
shamoon
0099631905 Merge pull request #2262 from paperless-ngx/feature-test-downgrade
Chore: Downgrade hiredis to 2.0.0
2022-12-29 18:26:25 -08:00
Trenton H
4548038525 Downgrades hiredis until pihweels can build it 2022-12-29 17:27:54 -08:00
Trenton H
a2b7687c3b In the case of an RTL language being extracted via pdfminer.six, fall back to forced OCR, which handles RTL text better 2022-12-29 16:02:02 -08:00
Trenton H
15cba8e14d Adds a notable changes section for release changelogs 2022-12-29 15:41:45 -08:00
shamoon
605f86f0cf Merge pull request #2256 from mendelk/patch-1
Fixed typo in docs
2022-12-28 15:55:35 -08:00
Mendel Kramer
8cbaca22c1 Fixed typo in docs 2022-12-28 18:16:00 -05:00
hashworks
4269074944 Add ability to provide the configuration file path using an env variable 2022-12-28 13:48:01 -08:00
Paperless-ngx Translation Bot [bot]
7b7331683d New translations messages.xlf (French)
[ci skip]
2022-12-28 10:39:37 -08:00
Paperless-ngx Translation Bot [bot]
a83637b2bf New translations messages.xlf (French)
[ci skip]
2022-12-28 09:06:23 -08:00
Paperless-ngx Translation Bot [bot]
721447999e New translations messages.xlf (French)
[ci skip]
2022-12-28 07:58:54 -08:00
Paperless-ngx Translation Bot [bot]
72cbdca6e8 New translations messages.xlf (German)
[ci skip]
2022-12-28 04:16:31 -08:00
Paperless-ngx Translation Bot [bot]
22e060e00e New translations messages.xlf (German)
[ci skip]
2022-12-28 02:13:21 -08:00
Paperless-ngx Translation Bot [bot]
23fb5c2a1f New translations messages.xlf (German)
[ci skip]
2022-12-28 01:05:51 -08:00
Trenton Holmes
d6e6f49c15 Updates Python libraries and hooks to most recent versions 2022-12-27 08:50:13 -08:00
Paperless-ngx Translation Bot [bot]
fc259c8bfd New translations messages.xlf (Arabic)
[ci skip]
2022-12-27 01:57:54 -08:00
Paperless-ngx Translation Bot [bot]
ecf90c4718 New translations django.po (French)
[ci skip]
2022-12-25 04:32:28 -08:00
Paperless-ngx Translation Bot [bot]
f0b359889e New translations django.po (French)
[ci skip]
2022-12-25 03:34:08 -08:00
tooomm
b0fb44db86 check repo owner 2022-12-23 18:46:52 -08:00
Paperless-ngx Translation Bot [bot]
bfd955b210 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-23 17:23:28 -08:00
Paperless-ngx Translation Bot [bot]
8af21d6fe3 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-12-23 17:23:27 -08:00
Paperless-ngx Translation Bot [bot]
e9f25190e9 New translations messages.xlf (Croatian)
[ci skip]
2022-12-23 17:23:25 -08:00
Paperless-ngx Translation Bot [bot]
e81b829eb0 New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-12-23 17:23:24 -08:00
Paperless-ngx Translation Bot [bot]
5f4e5c2cfb New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-12-23 17:23:23 -08:00
Paperless-ngx Translation Bot [bot]
383358376f New translations messages.xlf (Turkish)
[ci skip]
2022-12-23 17:23:22 -08:00
Paperless-ngx Translation Bot [bot]
00f0b55729 New translations messages.xlf (Swedish)
[ci skip]
2022-12-23 17:23:21 -08:00
Paperless-ngx Translation Bot [bot]
b10b981cb5 New translations messages.xlf (Slovenian)
[ci skip]
2022-12-23 17:23:19 -08:00
Paperless-ngx Translation Bot [bot]
f805407bce New translations messages.xlf (Russian)
[ci skip]
2022-12-23 17:23:18 -08:00
Paperless-ngx Translation Bot [bot]
4f169da4a8 New translations messages.xlf (Portuguese)
[ci skip]
2022-12-23 17:23:17 -08:00
Paperless-ngx Translation Bot [bot]
4031381c31 New translations messages.xlf (Polish)
[ci skip]
2022-12-23 17:23:16 -08:00
Paperless-ngx Translation Bot [bot]
b7bc3830cc New translations messages.xlf (Norwegian)
[ci skip]
2022-12-23 17:23:15 -08:00
Paperless-ngx Translation Bot [bot]
f2872d6475 New translations messages.xlf (Dutch)
[ci skip]
2022-12-23 17:23:14 -08:00
Paperless-ngx Translation Bot [bot]
f5219c101c New translations messages.xlf (Italian)
[ci skip]
2022-12-23 17:23:12 -08:00
Paperless-ngx Translation Bot [bot]
f329b5a3d0 New translations messages.xlf (Hebrew)
[ci skip]
2022-12-23 17:23:11 -08:00
Paperless-ngx Translation Bot [bot]
6f6a5f2eed New translations messages.xlf (Finnish)
[ci skip]
2022-12-23 17:23:10 -08:00
Paperless-ngx Translation Bot [bot]
266a8cd1a9 New translations messages.xlf (Danish)
[ci skip]
2022-12-23 17:23:09 -08:00
Paperless-ngx Translation Bot [bot]
7675014c90 New translations messages.xlf (Czech)
[ci skip]
2022-12-23 17:23:08 -08:00
Paperless-ngx Translation Bot [bot]
ec5971c134 New translations messages.xlf (Belarusian)
[ci skip]
2022-12-23 17:23:07 -08:00
Paperless-ngx Translation Bot [bot]
d7fedfcd87 New translations messages.xlf (Arabic)
[ci skip]
2022-12-23 17:23:05 -08:00
Paperless-ngx Translation Bot [bot]
cb99a8741e New translations messages.xlf (Spanish)
[ci skip]
2022-12-23 17:23:04 -08:00
Paperless-ngx Translation Bot [bot]
a63ed236a4 New translations messages.xlf (French)
[ci skip]
2022-12-23 17:23:03 -08:00
Paperless-ngx Translation Bot [bot]
4594a5c41c New translations messages.xlf (Romanian)
[ci skip]
2022-12-23 17:23:02 -08:00
Paperless-ngx Translation Bot [bot]
9109c25b3e New translations messages.xlf (German)
[ci skip]
2022-12-23 17:23:00 -08:00
shamoon
5435dc2499 Merge pull request #2205 from paperless-ngx/fix-2204
Fix: support `tags__id__none` in advanced search, fix tags filter badge count for excluded
2022-12-23 16:27:50 -08:00
Michael Shamoon
1d300fafad Fix missing word in settings string 2022-12-23 16:27:19 -08:00
Paperless-ngx Translation Bot [bot]
b1194f9524 New translations messages.xlf (German)
[ci skip]
2022-12-23 14:50:15 -08:00
Paperless-ngx Translation Bot [bot]
2532bd1e2c New translations django.po (Russian)
[ci skip]
2022-12-21 03:37:55 -08:00
ThellraAK
800e842ab3 Removing Mariadb default open port (#2227)
* Removing Mariadb default open port

Removing the listening port 3306 for the DB, Docker networks will let the containers talk to one another.  The existing setup would allow anyone to connect to the DB and use the default passwords.

* Update docker-compose.mariadb-tika.yml

Adding change to the other compose file to remove open port

* Remove excess blank lines

* Remove excess blank lines

Co-authored-by: Felix E <felix@eckhofer.com>
2022-12-21 02:36:37 -08:00
shamoon
6f6f365e2b Merge pull request #2203 from tooomm/docs_updates
Docs: More fixes and improvements
2022-12-17 19:58:06 -08:00
tooomm
43b863b816 doc fixes
This reverts commit e015babdc102a65a3cce0cc71812d3eb730da92e.

link fix

fix escaping, spacing, profile links, typo

revert

~~add~~ at fixes

Revert "~~add~~ at fixes"

This reverts commit ce0192b733c19614048de81ea917660e25bb35f2.
2022-12-17 19:55:22 -08:00
Michael Shamoon
94e32005ca support tags__id__none for advanced search 2022-12-17 19:49:17 -08:00
Michael Shamoon
204e14877d fix excluded items not showing in tag dropdown count 2022-12-17 19:49:00 -08:00
Paperless-ngx Translation Bot [bot]
92f05e051f New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-16 23:40:36 -08:00
Paperless-ngx Translation Bot [bot]
17bdf2a233 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-12-16 23:40:35 -08:00
Paperless-ngx Translation Bot [bot]
ce37100a0a New translations messages.xlf (Croatian)
[ci skip]
2022-12-16 23:40:33 -08:00
Paperless-ngx Translation Bot [bot]
81c371d66b New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-12-16 23:40:32 -08:00
Paperless-ngx Translation Bot [bot]
c114653977 New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-12-16 23:40:31 -08:00
Paperless-ngx Translation Bot [bot]
6280b9948a New translations messages.xlf (Turkish)
[ci skip]
2022-12-16 23:40:30 -08:00
Paperless-ngx Translation Bot [bot]
3a322a7b33 New translations messages.xlf (Swedish)
[ci skip]
2022-12-16 23:40:29 -08:00
Paperless-ngx Translation Bot [bot]
327ae03589 New translations messages.xlf (Slovenian)
[ci skip]
2022-12-16 23:40:27 -08:00
Paperless-ngx Translation Bot [bot]
cffbea9053 New translations messages.xlf (Russian)
[ci skip]
2022-12-16 23:40:26 -08:00
Paperless-ngx Translation Bot [bot]
ad0ef9a5a8 New translations messages.xlf (Portuguese)
[ci skip]
2022-12-16 23:40:25 -08:00
Paperless-ngx Translation Bot [bot]
03e7299925 New translations messages.xlf (Polish)
[ci skip]
2022-12-16 23:40:24 -08:00
Paperless-ngx Translation Bot [bot]
d3ba910f2d New translations messages.xlf (Norwegian)
[ci skip]
2022-12-16 23:40:22 -08:00
Paperless-ngx Translation Bot [bot]
329e649878 New translations messages.xlf (Dutch)
[ci skip]
2022-12-16 23:40:21 -08:00
Paperless-ngx Translation Bot [bot]
206ee97554 New translations messages.xlf (Italian)
[ci skip]
2022-12-16 23:40:20 -08:00
Paperless-ngx Translation Bot [bot]
e512d4af8c New translations messages.xlf (Hebrew)
[ci skip]
2022-12-16 23:40:19 -08:00
Paperless-ngx Translation Bot [bot]
6a5e752172 New translations messages.xlf (Finnish)
[ci skip]
2022-12-16 23:40:18 -08:00
Paperless-ngx Translation Bot [bot]
6ba527ef55 New translations messages.xlf (Danish)
[ci skip]
2022-12-16 23:40:16 -08:00
Paperless-ngx Translation Bot [bot]
220cc1927c New translations messages.xlf (Czech)
[ci skip]
2022-12-16 23:40:15 -08:00
Paperless-ngx Translation Bot [bot]
9956f4cb47 New translations messages.xlf (Belarusian)
[ci skip]
2022-12-16 23:40:14 -08:00
Paperless-ngx Translation Bot [bot]
fe055f6391 New translations messages.xlf (German)
[ci skip]
2022-12-16 23:40:13 -08:00
Paperless-ngx Translation Bot [bot]
eec506a13c New translations messages.xlf (Arabic)
[ci skip]
2022-12-16 23:40:12 -08:00
Paperless-ngx Translation Bot [bot]
1530bbd1cb New translations messages.xlf (Spanish)
[ci skip]
2022-12-16 23:40:10 -08:00
Paperless-ngx Translation Bot [bot]
db6afdd926 New translations messages.xlf (French)
[ci skip]
2022-12-16 23:40:09 -08:00
Paperless-ngx Translation Bot [bot]
5642715721 New translations messages.xlf (Romanian)
[ci skip]
2022-12-16 23:40:08 -08:00
Michael Shamoon
3bd22f0b0f Update frontend translation strings
[skip ci]
2022-12-16 23:34:13 -08:00
Paperless-ngx Translation Bot [bot]
c92c7e1ced New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-16 11:52:09 -08:00
shamoon
940f5d5b50 Merge pull request #2199 from paperless-ngx/eslint
Chore: migrate to eslint
2022-12-16 09:53:59 -08:00
shamoon
4dc893a4fa Merge pull request #2004 from paperless-ngx/feature-export-to-zip
Feature: Adds option to allow a user to export directly to a zipfile
2022-12-16 09:12:38 -08:00
shamoon
6d324dbd8e Update config.yml 2022-12-16 09:10:11 -08:00
shamoon
8ddf05e573 Update bug-report.yml 2022-12-16 09:09:48 -08:00
shamoon
d869a6bcca Merge pull request #2184 from paperless-ngx/feature-paperlesstask-admin
Feature: Adds PaperlessTask admin page interface
2022-12-15 23:50:43 -08:00
Michael Shamoon
40bdeffa38 Add lint to frontend tests 2022-12-15 23:36:01 -08:00
Michael Shamoon
5bf5710d39 lint frontend 2022-12-15 23:36:01 -08:00
Michael Shamoon
551a7e606c Migrate to eslint 2022-12-15 23:36:01 -08:00
Trenton H
feec36939b Improves the manual image building so it now properly gets cache manifests using buildx 2022-12-15 12:22:55 -08:00
Trenton H
554bba839e Skip running system checks before migrate, then run them directly after instead 2022-12-15 11:50:15 -08:00
Trenton H
ebaaa3a1e8 Adds a basic admin view for tasks 2022-12-15 11:31:50 -08:00
Trenton H
bae715cd34 Changes the qpdf building to be cross compiled instead of emulated 2022-12-15 11:15:01 -08:00
Paperless-ngx Translation Bot [bot]
2a3b8f5a7f New translations messages.xlf (German)
[ci skip]
2022-12-15 07:04:25 -08:00
Michael Shamoon
6a023507e2 fix search bar position with slim sidebar
[ci skip]
2022-12-14 23:22:11 -08:00
Trenton H
1551052cde Add piwheels as additional URL for downloading pre-built wheels 2022-12-13 09:58:51 -08:00
Trenton Holmes
b6dd36a439 Notes a TODO for a later library release to remove a workaround 2022-12-12 15:37:01 -08:00
Trenton Holmes
ce38e4ae08 Actually no need for pickle anyway 2022-12-12 15:37:01 -08:00
Trenton H
97d6503fef Switches task serialization over to pickle format 2022-12-12 15:37:01 -08:00
Trenton Holmes
b0625cdced Updates runners to Ubuntu 22.04, locks pipenv to 2022.11.30, reduces number of image cleans run 2022-12-12 06:16:13 -08:00
Paperless-ngx Translation Bot [bot]
31e8c44c18 New translations messages.xlf (Dutch)
[ci skip]
2022-12-11 11:46:22 -08:00
tooomm
0472dfe25a Docs: Fix leftover issues from conversion (#2172) 2022-12-11 10:12:58 -08:00
tooomm
8b36c9ad64 more fixes and cleanup 2022-12-11 08:06:17 -08:00
tooomm
1266f2d5b9 fix links 2022-12-11 08:06:17 -08:00
shamoon
8196051959 Merge pull request #2157 from Weltraumschaf/patch-1
Update setup.md
2022-12-09 16:12:20 -08:00
Sven Strittmatter
d198142a1e Update setup.md
W/o the slash it resolves to /setup/configuration/ which does 404.
2022-12-09 22:09:06 +01:00
shamoon
5e15ede849 Merge pull request #2028 from paperless-ngx/feature-truncate-content
Feature: speed up frontend by truncating content
2022-12-09 09:20:06 -08:00
Michael Shamoon
06a6eb0326 fix code block indentation 2022-12-09 08:15:03 -08:00
shamoon
28819d6d0f Fix code block indentation 2022-12-09 08:11:42 -08:00
Paperless-ngx Translation Bot [bot]
8a9e564dac New translations messages.xlf (Arabic)
[ci skip]
2022-12-09 03:24:52 -08:00
Paperless-ngx Translation Bot [bot]
534704693b New translations django.po (Arabic)
[ci skip]
2022-12-08 23:39:47 -08:00
Paperless-ngx Translation Bot [bot]
bc40607c51 New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 23:39:46 -08:00
Paperless-ngx Translation Bot [bot]
6fdc17cc72 New translations django.po (Arabic)
[ci skip]
2022-12-08 21:57:29 -08:00
Paperless-ngx Translation Bot [bot]
69a5ba0618 New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 21:57:28 -08:00
Paperless-ngx Translation Bot [bot]
3c71a9160f New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 20:57:07 -08:00
Michael Shamoon
48ef8eca80 Add bulk download options dropdown 2022-12-08 18:32:14 -08:00
Trenton Holmes
812df3782a Documents the test conditions 2022-12-08 18:32:14 -08:00
Trenton Holmes
54bb1ae27d Adds an optional API field to follow the filenaming format when creating a bulk download zip 2022-12-08 18:32:14 -08:00
Trenton H
ff4a8b37bd Install all wheels in the dir instead of specific names 2022-12-08 12:30:20 -08:00
Paperless-ngx Translation Bot [bot]
37d3a624b7 New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 10:32:55 -08:00
Paperless-ngx Translation Bot [bot]
493f6173da New translations django.po (Arabic)
[ci skip]
2022-12-08 09:18:26 -08:00
Paperless-ngx Translation Bot [bot]
272e87b741 New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 09:18:25 -08:00
Paperless-ngx Translation Bot [bot]
2b5e6f7a9d New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 07:24:26 -08:00
Paperless-ngx Translation Bot [bot]
70960f86ba New translations django.po (Arabic)
[ci skip]
2022-12-08 06:25:05 -08:00
Paperless-ngx Translation Bot [bot]
ee4d25567c New translations messages.xlf (Arabic)
[ci skip]
2022-12-08 06:25:04 -08:00
Paperless-ngx Translation Bot [bot]
80a126e838 New translations django.po (Arabic)
[ci skip]
2022-12-08 04:23:05 -08:00
Paperless-ngx Translation Bot [bot]
c02bd66b3f New translations django.po (Arabic)
[ci skip]
2022-12-08 03:15:18 -08:00
Trenton H
cea6720c1a Updates the pre-commit hook versions 2022-12-07 19:12:15 -08:00
Trenton H
700d58058c Updates to qpdf 11.2 and bulk updates the rest of the deps 2022-12-07 19:12:15 -08:00
Paperless-ngx Translation Bot [bot]
33e413af65 New translations django.po (Arabic)
[ci skip]
2022-12-07 09:49:36 -08:00
Trenton H
45a13523d4 Note the previous location and that it can be safely deleted if not in use 2022-12-07 09:36:32 -08:00
Trenton Holmes
95257d5723 Documents the configuration for NLTK related settings 2022-12-07 09:36:32 -08:00
Trenton H
8da3ae2c53 Bakes the NLTK data into the image (~60mb) 2022-12-07 09:36:32 -08:00
Paperless-ngx Translation Bot [bot]
f17b541a5b New translations django.po (Arabic)
[ci skip]
2022-12-07 07:39:37 -08:00
Paperless-ngx Translation Bot [bot]
2b2e518dea New translations django.po (Arabic)
[ci skip]
2022-12-07 06:36:32 -08:00
Trenton Holmes
3f6e3a2750 Fixes args handling 2022-12-06 13:30:01 -08:00
Trenton Holmes
14784d5832 Adds the same backoff/retry logic to the other live tests 2022-12-06 13:30:01 -08:00
shamoon
8cd5e25364 Merge pull request #2137 from paperless-ngx/more-docs-cleanup
Chore: Cleanup of new documentation
2022-12-06 11:23:15 -08:00
Trenton Holmes
7788d93227 Further cleanup of docs, including fixing autoconvert issues and general cleanups 2022-12-06 10:45:18 -08:00
Paperless-ngx Translation Bot [bot]
826503802a New translations messages.xlf (German)
[ci skip]
2022-12-05 21:48:39 -08:00
Paperless-ngx Translation Bot [bot]
6db1e36e14 New translations django.po (Italian)
[ci skip]
2022-12-05 03:26:21 -08:00
Paperless-ngx Translation Bot [bot]
3bc4d7dad7 New translations messages.xlf (Italian)
[ci skip]
2022-12-05 03:26:20 -08:00
shamoon
32d546740b Merge pull request #2118 from alexander-bauer/chart-bump 2022-12-04 19:12:27 -08:00
Alexander Bauer
24da3e5034 Bump Helm Chart version to trigger release 2022-12-05 02:51:35 +00:00
Paperless-ngx Translation Bot [bot]
9e295ddf4f New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-04 17:37:25 -08:00
Paperless-ngx Translation Bot [bot]
eff6f2fb01 New translations messages.xlf (French)
[ci skip]
2022-12-04 17:37:23 -08:00
Paperless-ngx Translation Bot [bot]
c597da495c New translations messages.xlf (Spanish)
[ci skip]
2022-12-04 17:37:22 -08:00
Paperless-ngx Translation Bot [bot]
de5e9c95ec New translations messages.xlf (Arabic)
[ci skip]
2022-12-04 17:37:21 -08:00
Paperless-ngx Translation Bot [bot]
4e27242373 New translations messages.xlf (Belarusian)
[ci skip]
2022-12-04 17:37:19 -08:00
Paperless-ngx Translation Bot [bot]
7bf1e24616 New translations messages.xlf (Czech)
[ci skip]
2022-12-04 17:37:18 -08:00
Paperless-ngx Translation Bot [bot]
fd0759bf6f New translations messages.xlf (Danish)
[ci skip]
2022-12-04 17:37:17 -08:00
Paperless-ngx Translation Bot [bot]
d6bbf2cc8d New translations messages.xlf (Finnish)
[ci skip]
2022-12-04 17:37:15 -08:00
Paperless-ngx Translation Bot [bot]
80495d42de New translations messages.xlf (Hebrew)
[ci skip]
2022-12-04 17:37:14 -08:00
Paperless-ngx Translation Bot [bot]
eac21f773f New translations messages.xlf (Italian)
[ci skip]
2022-12-04 17:37:13 -08:00
Paperless-ngx Translation Bot [bot]
52f5831657 New translations messages.xlf (Dutch)
[ci skip]
2022-12-04 17:37:11 -08:00
Paperless-ngx Translation Bot [bot]
f35f33539a New translations messages.xlf (Romanian)
[ci skip]
2022-12-04 17:37:10 -08:00
Paperless-ngx Translation Bot [bot]
46f310603b New translations messages.xlf (Norwegian)
[ci skip]
2022-12-04 17:37:09 -08:00
Paperless-ngx Translation Bot [bot]
531d3f03f9 New translations messages.xlf (Portuguese)
[ci skip]
2022-12-04 17:37:08 -08:00
Paperless-ngx Translation Bot [bot]
85cfd7610d New translations messages.xlf (Russian)
[ci skip]
2022-12-04 17:37:06 -08:00
Paperless-ngx Translation Bot [bot]
201b77189a New translations messages.xlf (Slovenian)
[ci skip]
2022-12-04 17:37:05 -08:00
Paperless-ngx Translation Bot [bot]
5b76b45e33 New translations messages.xlf (Swedish)
[ci skip]
2022-12-04 17:37:04 -08:00
Paperless-ngx Translation Bot [bot]
bf2fac9393 New translations messages.xlf (Turkish)
[ci skip]
2022-12-04 17:37:02 -08:00
Paperless-ngx Translation Bot [bot]
5a3affe8c0 New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-12-04 17:37:01 -08:00
Paperless-ngx Translation Bot [bot]
a5834393b3 New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-12-04 17:36:59 -08:00
Paperless-ngx Translation Bot [bot]
cd6e37c520 New translations messages.xlf (Croatian)
[ci skip]
2022-12-04 17:36:58 -08:00
Paperless-ngx Translation Bot [bot]
af51165229 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-12-04 17:36:57 -08:00
Paperless-ngx Translation Bot [bot]
d480620be9 New translations messages.xlf (Polish)
[ci skip]
2022-12-04 17:36:55 -08:00
Paperless-ngx Translation Bot [bot]
d470de3576 New translations messages.xlf (German)
[ci skip]
2022-12-04 17:36:54 -08:00
Trenton Holmes
538249b26c Adds documentation 2022-12-04 16:53:28 -08:00
shamoon
fb9d3f736b Merge pull request #2000 from paperless-ngx/feature-frontend-paperless-mail
Feature: frontend paperless mail
2022-12-04 16:47:58 -08:00
Trenton Holmes
a6b7beaf6b Adds option to allow a user to export directory to a zipfile 2022-12-04 16:38:25 -08:00
Trenton H
4d4d545343 Merge pull request #848 from p-h-a-i-l/feature-consume-eml
Feature ability to consume mails and eml files
2022-12-04 16:34:41 -08:00
Trenton Holmes
049dc17902 Moves where the mail views live and puts the ordering on those 2022-12-04 16:33:07 -08:00
shamoon
b0ca57a7f0 Merge pull request #2114 from paperless-ngx/v1.10.2-changelog
[Documentation] Add v1.10.2 changelog
2022-12-04 14:36:00 -08:00
Michael Shamoon
cdd49c5142 Update frontend compilation info 2022-12-04 14:32:08 -08:00
Trenton Holmes
4b31e5d0b4 Fixes my broken formatting 2022-12-04 14:00:59 -08:00
Trenton Holmes
8076ebd78c Merge remote-tracking branch 'upstream/dev' into feature-consume-eml 2022-12-04 13:55:46 -08:00
github-actions
c864b3cd19 Changelog v1.10.2 - GHA 2022-12-04 21:17:16 +00:00
Trenton Holmes
2704bcb979 Resets to -dev versioning 2022-12-04 13:06:18 -08:00
Trenton Holmes
59f6074093 Bumps version to 1.10.2 2022-12-04 12:58:03 -08:00
Trenton Holmes
b1da7f3491 Probably fixes the changelog step not working 2022-12-04 12:57:19 -08:00
Trenton Holmes
adde88e7b9 Merge branch 'dev' 2022-12-04 12:55:55 -08:00
Paperless-ngx Translation Bot [bot]
8e876ef2d1 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
2ea0f83a91 New translations messages.xlf (Italian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
05d8ea5a9d New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
967248233f New translations messages.xlf (French)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
b4c4b9fb6a New translations messages.xlf (Spanish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
adb6483abc New translations messages.xlf (Arabic)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
908db55bb7 New translations messages.xlf (Belarusian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
610f20de28 New translations messages.xlf (Czech)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
b2513a5cde New translations messages.xlf (Danish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
bfa1c13d01 New translations messages.xlf (Finnish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
12aaff431f New translations messages.xlf (Hebrew)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
547e5ea55e New translations messages.xlf (Italian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
c301127096 New translations messages.xlf (Dutch)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
19147855e7 New translations messages.xlf (Romanian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
4e7c7ea1d6 New translations messages.xlf (Norwegian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
fcf8a49160 New translations messages.xlf (Portuguese)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
c6d658a954 New translations messages.xlf (Russian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
a78cd6526c New translations messages.xlf (Slovenian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
bf895b54f4 New translations messages.xlf (Swedish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
e5f84ef583 New translations messages.xlf (Turkish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
8c690a9a51 New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
56526b970a New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
94fbf92916 New translations messages.xlf (Croatian)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
37f5e46d09 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
38be817637 New translations messages.xlf (Polish)
[ci skip]
2022-12-04 12:53:16 -08:00
Paperless-ngx Translation Bot [bot]
17303f41da New translations messages.xlf (German)
[ci skip]
2022-12-04 12:53:16 -08:00
Trenton Holmes
55ef0d4a1b Fixes language code checks around two part languages 2022-12-04 12:23:12 -08:00
shamoon
a8f3c4be54 Merge pull request #1947 from alexander-bauer/helm
Take ownership of k8s-at-home Helm chart,
2022-12-03 18:47:09 -08:00
shamoon
1b9de2be5a Use checkout v3 2022-12-03 18:46:19 -08:00
shamoon
0e8265f1ae Merge pull request #2109 from paperless-ngx/fix/redis-socket-parsing
Bugfix: Redis socket compatibility didn't handle URLs with ports
2022-12-03 18:44:28 -08:00
Trenton Holmes
5b45a140b9 Fixes issue when the Redis URL also specifies a port 2022-12-03 18:30:21 -08:00
Alexander Bauer
72fb9a475d Ignore end-of-lines on generated Chart README 2022-12-03 14:37:55 -08:00
Alexander Bauer
bf97f5807f Ignore non-yaml Helm chart template 2022-12-03 14:37:55 -08:00
Alexander Bauer
a707818b4d Change Helm chart releaser to use version tags only 2022-12-03 14:37:55 -08:00
Alexander Bauer
fb46c1b96a Ignore generated Helm chart README from prettier 2022-12-03 14:37:54 -08:00
Alexander Bauer
3226d8b25b fixup! Add mostly-unchanged Helm chart from k8s-at-home 2022-12-03 14:37:54 -08:00
Alexander Bauer
5c4363cbea Add mostly-unchanged Helm chart from k8s-at-home
- Add the chart from k8s-at-home with some modifications
- Add the Apache 2.0 license to the new charts/paperless-ngx
  subdirectory, the license under which the chart was distributed by
  k8s-at-home. I believe the chart will have to maintain this license.

- Update the maintainers section and contact information to point to
  Paperless-ngx.
- Regenerate the README (using helm-docs)

- Add a GitHub actions configuration to publish the chart using GitHub
  pages. This makes the GitHub Pages page rendered by this repository
  usable as a Helm repository, without affecting potential future uses
  of the Pages site.

These are in response to discussion #1790.
2022-12-03 14:37:54 -08:00
shamoon
fa62ae820b Merge pull request #2106 from tooomm/docs/edit
Docs: Some more small MkDocs updates
2022-12-03 14:19:36 -08:00
tooomm
17891bafaf lint 2022-12-03 20:02:40 +01:00
tooomm
15fdadadef open demo in new page 2022-12-03 19:36:49 +01:00
Michael Shamoon
ce9f604d81 Explicit default ordering for rule / account views 2022-12-03 09:31:39 -08:00
Michael Shamoon
4f876db5d1 prevent loss of unsaved changes to settings on tab nav 2022-12-03 09:31:39 -08:00
Michael Shamoon
5e5f56dc67 Re-org where some of the new classes are found 2022-12-03 09:31:39 -08:00
Michael Shamoon
93fab8bb95 Apply code suggestions from @stumpylog 2022-12-03 09:31:39 -08:00
Michael Shamoon
35ca2195fe frontend mail rule validation
Display non-field validation errors, hide action param field if not needed
2022-12-03 09:31:39 -08:00
Michael Shamoon
7ace66d7fd fix edit dialog getters 2022-12-03 09:31:39 -08:00
Michael Shamoon
4f9a31244b Add settings routing 2022-12-03 09:31:24 -08:00
Michael Shamoon
14cf4f7095 Update frontend strings 2022-12-03 09:31:23 -08:00
Michael Shamoon
8bd7c27826 Hide order parameter, fix imap port 2022-12-03 09:31:23 -08:00
Michael Shamoon
8c4f486fe9 API mail rule & account tests
and fix use of assign_tags
2022-12-03 09:31:23 -08:00
Michael Shamoon
2849414445 one-way imap password setting via API, ObfuscatedPasswordField 2022-12-03 09:31:23 -08:00
Michael Shamoon
ea1ea0816f Fix mail account / rule delete 2022-12-03 09:31:23 -08:00
Michael Shamoon
52d3a8703c Dynamically load mail rules / accounts settings 2022-12-03 09:31:23 -08:00
Michael Shamoon
4cb4d6adcd update settings tests to not wait on data which is now on-demand 2022-12-03 09:31:23 -08:00
Michael Shamoon
24444237f2 dynamic loading of settings tab contents 2022-12-03 09:31:23 -08:00
Michael Shamoon
40c8629aef Update welcome tour, move admin button 2022-12-03 09:31:23 -08:00
Michael Shamoon
98cdf614a5 Mail form tweaks
Include add button

Include add button
2022-12-03 09:31:23 -08:00
Michael Shamoon
2eb2d99a91 Update frontend fixtures & tests for compatibility 2022-12-03 09:31:23 -08:00
Michael Shamoon
18ad9bcbf2 Working mail rule & account edit 2022-12-03 09:31:23 -08:00
Michael Shamoon
997bff4917 Update deprecated edit-dialog rxjs 2022-12-03 09:31:22 -08:00
Michael Shamoon
78f9a80895 mail account + rule deletion 2022-12-03 09:31:22 -08:00
Michael Shamoon
9231df7a4a Mail rule edit dialog 2022-12-03 09:31:22 -08:00
Michael Shamoon
6f25917c86 Mail account edit dialog 2022-12-03 09:31:22 -08:00
Michael Shamoon
c41d1a78a8 remove unused toastService from edit dialogs and add confirmation 2022-12-03 09:31:22 -08:00
Michael Shamoon
c3331086d5 Basic data retrieval 2022-12-03 09:31:22 -08:00
tooomm
6bd9ccd8f6 update default edit path 2022-12-03 18:30:02 +01:00
tooomm
68c7cecb07 add mkdocs site to gitignore 2022-12-03 18:29:14 +01:00
shamoon
bcc029a2c7 Merge pull request #2104 from paperless-ngx/docs-cleanup
Chore: Cleans up documentation links
2022-12-03 09:00:02 -08:00
Trenton H
ea38eb01b2 Adds support for database number specification 2022-12-03 08:39:32 -08:00
Trenton H
01d070b882 Adds a layer to translate between differing formats of socket based Redis URLs 2022-12-03 08:39:32 -08:00
Trenton Holmes
1727eb00cc Cleans up a number of internal links 2022-12-03 08:28:44 -08:00
shamoon
9d4180553c Merge pull request #2102 from tooomm/patch-1
Fix doc links in contributing
2022-12-03 07:58:12 -08:00
tooomm
8049af4b22 Fix doc links in contributing 2022-12-03 14:38:55 +01:00
Michael Shamoon
7c6142643d Update more docs references 2022-12-03 02:08:51 -08:00
Michael Shamoon
2e8706f4e2 Update frontend translation strings 2022-12-03 02:05:49 -08:00
Michael Shamoon
d39d32d555 Fix docs references 2022-12-03 02:04:30 -08:00
Michael Shamoon
6f52945449 docs index formatting error 2022-12-03 01:47:04 -08:00
shamoon
37025297b5 Merge pull request #2095 from paperless-ngx/update-readme-doc-links
Documentation: Update docs links and screenshot in readme, add favicon
2022-12-03 01:33:31 -08:00
Michael Shamoon
aa023ea2e3 correct docs deploy domain 2022-12-03 01:30:07 -08:00
Felix E
78bf0b63a5 Merge pull request #2087 from Ricks-ha/main
Add examples to URL and TIME_ZONE
2022-12-03 09:10:20 +01:00
Michael Shamoon
dc9e9e3b48 add favicon 2022-12-02 20:06:51 -08:00
shamoon
ab29c49b7a Update docs links and screenshot in readme 2022-12-02 19:56:24 -08:00
Trenton Holmes
1c0ac474b8 Merge branch 'main' into dev 2022-12-02 19:05:28 -08:00
shamoon
29391c1c7b Merge pull request #2067 from paperless-ngx/material-docs
[WIP] Feature: Move docs to material-mkdocs
2022-12-02 15:22:39 -08:00
Michael Shamoon
693834971c Add v1.10.1 changelog 2022-12-02 15:13:44 -08:00
Michael Shamoon
97376d4b72 update ci for documentation build vs deploy 2022-12-02 15:13:44 -08:00
Michael Shamoon
3ee1d2a9a9 Add changes from #2069 2022-12-02 14:48:36 -08:00
Michael Shamoon
605f885e19 Move docs to material-mkdocs 2022-12-02 14:48:36 -08:00
Michael Shamoon
25fb8d9c3b Update dev version string 2022-12-02 08:30:42 -08:00
Ricks-ha
a96ecd673b Add examples to URL and TIME_ZONE 2022-12-02 13:27:57 +01:00
shamoon
58a01a57ee Merge pull request #2082 from paperless-ngx/v1.10.1-changelog
Chore: Add v1.10.1 changelong
2022-12-02 03:36:55 -08:00
Michael Shamoon
c18fc03ef3 Add v1.10.1 changelong 2022-12-01 20:05:26 -08:00
Michael Shamoon
a96f79f6a3 Bump version to 1.10.1 2022-12-01 18:54:52 -08:00
Michael Shamoon
d6f1d004a3 Merge branch 'dev' 2022-12-01 18:52:35 -08:00
shamoon
da72d3571b Merge pull request #2050 from paperless-ngx/l10n_dev
New Crowdin updates
2022-12-01 18:52:06 -08:00
Michael Shamoon
8241da0eb3 fix broken npm package-lock 2022-12-01 17:01:22 -08:00
shamoon
51562667bf Merge pull request #2076 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/tslib-2.4.1
Bump tslib from 2.4.0 to 2.4.1 in /src-ui
2022-12-01 16:40:07 -08:00
dependabot[bot]
97eeae65a3 Bump tslib from 2.4.0 to 2.4.1 in /src-ui
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/2.4.0...2.4.1)

---
updated-dependencies:
- dependency-name: tslib
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-02 00:39:26 +00:00
shamoon
1aee2988f7 Merge pull request #2079 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular-builders/jest-14.1.0
Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui
2022-12-01 16:39:24 -08:00
shamoon
a63a8dd488 Merge pull request #2078 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.2.3
Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui
2022-12-01 16:38:38 -08:00
shamoon
06a9df6dbd Merge pull request #2080 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-file-drop-14.0.2
Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui
2022-12-01 16:37:25 -08:00
shamoon
49933bb5a8 Merge pull request #2077 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngneat/dirty-check-forms-3.0.3
Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui
2022-12-01 16:18:07 -08:00
dependabot[bot]
7d7d9630c1 Bump ngx-file-drop from 14.0.1 to 14.0.2 in /src-ui
Bumps [ngx-file-drop](https://github.com/georgipeltekov/ngx-file-drop) from 14.0.1 to 14.0.2.
- [Release notes](https://github.com/georgipeltekov/ngx-file-drop/releases)
- [Changelog](https://github.com/georgipeltekov/ngx-file-drop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/georgipeltekov/ngx-file-drop/compare/v14.0.1...v14.0.2)

---
updated-dependencies:
- dependency-name: ngx-file-drop
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:03:32 +00:00
dependabot[bot]
6f0077efac Bump @angular-builders/jest from 14.0.1 to 14.1.0 in /src-ui
Bumps [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) from 14.0.1 to 14.1.0.
- [Release notes](https://github.com/just-jeb/angular-builders/releases)
- [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/jest/CHANGELOG.md)
- [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/jest@14.1.0/packages/jest)

---
updated-dependencies:
- dependency-name: "@angular-builders/jest"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:03:05 +00:00
dependabot[bot]
39be68a1a4 Bump jest-preset-angular from 12.2.2 to 12.2.3 in /src-ui
Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.2.2 to 12.2.3.
- [Release notes](https://github.com/thymikee/jest-preset-angular/releases)
- [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.2.2...v12.2.3)

---
updated-dependencies:
- dependency-name: jest-preset-angular
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:02:39 +00:00
dependabot[bot]
ac69babfce Bump @ngneat/dirty-check-forms from 3.0.2 to 3.0.3 in /src-ui
Bumps [@ngneat/dirty-check-forms](https://github.com/ngneat/dirty-check-forms) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/ngneat/dirty-check-forms/releases)
- [Changelog](https://github.com/ngneat/dirty-check-forms/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ngneat/dirty-check-forms/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: "@ngneat/dirty-check-forms"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 20:02:11 +00:00
shamoon
02c782a127 Merge pull request #2073 from paperless-ngx/fix-frontend-tasks-display
Fix: frontend tasks display in 1.10.0
2022-12-01 08:19:59 -08:00
Trenton Holmes
4e90fda80f Expands documentation around the permissions of the custom scripts and the folder 2022-12-01 07:21:25 -08:00
Trenton Holmes
88e3e556a1 Fixes the custom scripts not running as root 2022-12-01 07:21:25 -08:00
shamoon
88cf6ef843 add demo badge 2022-11-30 15:14:21 -08:00
Michael Shamoon
9b602a4bf0 Fix frontend tasks display 2022-11-30 13:55:51 -08:00
phail
fe2db4dbf7 adapt compose file for eml parsing 2022-11-30 10:16:39 +01:00
phail
47c88a6bdd Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-11-30 10:10:57 +01:00
Trenton H
a3bc3b78d5 Also display the container logs 2022-11-29 20:11:40 -08:00
Trenton H
fed7d3e993 Use docker compose to start and stop containers which match directly to our command overrides 2022-11-29 20:11:40 -08:00
Trenton H
3a74f24e49 Adds libatomic1 for supporting armv7 better 2022-11-29 13:46:04 -08:00
Trenton H
52afab39cf Organizes the system packages a little bit more 2022-11-29 13:46:04 -08:00
Paperless-ngx Translation Bot [bot]
8659292852 New translations django.po (Norwegian)
[ci skip]
2022-11-29 00:29:45 -08:00
Paperless-ngx Translation Bot [bot]
ce73f159fd New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-28 14:13:54 -08:00
shamoon
71382e9c62 Merge pull request #2062 from paperless-ngx/fix/2053-long-names-too-quiet
Bugfix: Don't silence an exception when trying to handle file naming
2022-11-28 14:05:57 -08:00
Trenton H
a1a802fc92 Don't silence an exception when trying to handle file naming 2022-11-28 13:44:17 -08:00
Paperless-ngx Translation Bot [bot]
4200fc610d New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-28 13:17:22 -08:00
Paperless-ngx Translation Bot [bot]
32d212cd9f New translations messages.xlf (German)
[ci skip]
2022-11-28 11:17:07 -08:00
shamoon
5d3a6e230d Merge pull request #2057 from paperless-ngx/fix/2044-lang-code-diffs
Bugfix: Some tesseract languages aren't detected as installed.
2022-11-28 11:04:44 -08:00
Trenton H
b33fcc117e Transition to a maintained upload release assert 2022-11-28 10:01:43 -08:00
Trenton H
e96d65f945 Allows parsing of WebP format images 2022-11-28 09:35:54 -08:00
Paperless-ngx Translation Bot [bot]
cfeed0ce6e New translations django.po (Polish)
[ci skip]
2022-11-28 08:30:32 -08:00
Paperless-ngx Translation Bot [bot]
b89ecf7d77 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-28 05:28:39 -08:00
Paperless-ngx Translation Bot [bot]
5ca25d44ba New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-28 04:27:31 -08:00
Michael Shamoon
2c1333a75f Dont use document data from /documents API call for edit 2022-11-27 21:19:23 -08:00
Michael Shamoon
3c48ce0225 option to truncate content on /documents endpoint 2022-11-27 21:19:23 -08:00
Michael Shamoon
1e11c12d96 Merge branch 'main' into dev 2022-11-27 21:16:50 -08:00
Trenton Holmes
3e22e8e0b9 prepends the latest changelog 2022-11-27 19:24:28 -08:00
Trenton Holmes
dba45f93a4 Fixes the pre-commit command 2022-11-27 19:24:16 -08:00
Paperless-ngx Translation Bot [bot]
18f3f44ae9 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-27 17:58:25 -08:00
Paperless-ngx Translation Bot [bot]
85a6a271dc New translations messages.xlf (French)
[ci skip]
2022-11-27 17:58:23 -08:00
Paperless-ngx Translation Bot [bot]
abb515d4ea New translations messages.xlf (Spanish)
[ci skip]
2022-11-27 17:58:22 -08:00
Paperless-ngx Translation Bot [bot]
309d1f2b67 New translations messages.xlf (Arabic)
[ci skip]
2022-11-27 17:58:21 -08:00
Paperless-ngx Translation Bot [bot]
fa2f09bc4b New translations messages.xlf (Belarusian)
[ci skip]
2022-11-27 17:58:19 -08:00
Paperless-ngx Translation Bot [bot]
c51590cd12 New translations messages.xlf (Czech)
[ci skip]
2022-11-27 17:58:18 -08:00
Paperless-ngx Translation Bot [bot]
8e01406acf New translations messages.xlf (Danish)
[ci skip]
2022-11-27 17:58:17 -08:00
Paperless-ngx Translation Bot [bot]
7cce2f0fe6 New translations messages.xlf (Finnish)
[ci skip]
2022-11-27 17:58:16 -08:00
Paperless-ngx Translation Bot [bot]
95091c2f39 New translations messages.xlf (Hebrew)
[ci skip]
2022-11-27 17:58:14 -08:00
Paperless-ngx Translation Bot [bot]
4a0aa12bd9 New translations messages.xlf (Italian)
[ci skip]
2022-11-27 17:58:13 -08:00
Paperless-ngx Translation Bot [bot]
9a0329746a New translations messages.xlf (Dutch)
[ci skip]
2022-11-27 17:58:11 -08:00
Paperless-ngx Translation Bot [bot]
8392a6fd4a New translations messages.xlf (Romanian)
[ci skip]
2022-11-27 17:58:10 -08:00
Paperless-ngx Translation Bot [bot]
8fa18bb8a6 New translations messages.xlf (Norwegian)
[ci skip]
2022-11-27 17:58:09 -08:00
Paperless-ngx Translation Bot [bot]
0095b593fb New translations messages.xlf (Portuguese)
[ci skip]
2022-11-27 17:58:08 -08:00
Paperless-ngx Translation Bot [bot]
b1e5135e21 New translations messages.xlf (Russian)
[ci skip]
2022-11-27 17:58:05 -08:00
Paperless-ngx Translation Bot [bot]
e88755e7ac New translations messages.xlf (Slovenian)
[ci skip]
2022-11-27 17:58:04 -08:00
Paperless-ngx Translation Bot [bot]
c582947291 New translations messages.xlf (Swedish)
[ci skip]
2022-11-27 17:58:02 -08:00
Paperless-ngx Translation Bot [bot]
98fe3a2cb7 New translations messages.xlf (Turkish)
[ci skip]
2022-11-27 17:58:01 -08:00
Paperless-ngx Translation Bot [bot]
61647606fa New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-11-27 17:57:59 -08:00
Paperless-ngx Translation Bot [bot]
95a1e5c645 New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-11-27 17:57:58 -08:00
Paperless-ngx Translation Bot [bot]
8ead77f128 New translations messages.xlf (Croatian)
[ci skip]
2022-11-27 17:57:57 -08:00
Paperless-ngx Translation Bot [bot]
b9e9e82f33 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-27 17:57:55 -08:00
Paperless-ngx Translation Bot [bot]
487fd3a5dd New translations messages.xlf (Polish)
[ci skip]
2022-11-27 17:57:54 -08:00
Paperless-ngx Translation Bot [bot]
657786a2fe New translations messages.xlf (German)
[ci skip]
2022-11-27 17:57:52 -08:00
Trenton Holmes
e74d7dadfb Adds the -dev back to the UI version 2022-11-27 17:43:46 -08:00
Trenton Holmes
a2937cd54d Merge branch 'main' into dev 2022-11-27 17:42:41 -08:00
Trenton Holmes
7b3ce6289f Bumps version number to 1.10.0 2022-11-27 17:21:12 -08:00
Trenton H
a16e8324be Merge pull request #1960 from paperless-ngx/beta
[Beta] Paperless-ngx v1.10.0 Release Candidate
2022-11-27 17:18:08 -08:00
shamoon
39de531df5 Merge pull request #2041 from paperless-ngx/l10n_dev
New Crowdin updates
2022-11-27 14:47:14 -08:00
Paperless-ngx Translation Bot [bot]
4764d4fd2b New translations django.po (German)
[ci skip]
2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
e147d4571f New translations django.po (German)
[ci skip]
2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
dc9aaa6472 New translations django.po (German)
[ci skip]
2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
8a061c4ac2 New translations messages.xlf (German)
[ci skip]
2022-11-27 14:44:33 -08:00
Michael Shamoon
d051c5c282 Remove ar-SA 2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
9e60810a8b New translations messages.xlf (Arabic)
[ci skip]
2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
96ee7990b2 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-27 14:44:33 -08:00
Paperless-ngx Translation Bot [bot]
224bfeb72e New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-27 14:44:33 -08:00
Trenton Holmes
f0497e7744 Fixes how a language code like chi-sim is treated in the checks 2022-11-27 08:28:22 -08:00
Paperless-ngx Translation Bot [bot]
c9d6c208af New translations django.po (German)
[ci skip]
2022-11-26 12:28:51 -08:00
Paperless-ngx Translation Bot [bot]
9f2b8b1734 New translations django.po (German)
[ci skip]
2022-11-26 09:54:00 -08:00
Paperless-ngx Translation Bot [bot]
a04b9e3755 New translations django.po (German)
[ci skip]
2022-11-22 15:21:31 -08:00
Paperless-ngx Translation Bot [bot]
a81d4c5e9d New translations messages.xlf (German)
[ci skip]
2022-11-22 15:21:30 -08:00
shamoon
2140d42098 Merge pull request #2025 from paperless-ngx/fix-redo-ocr-message
Add info that re-do OCR doesnt automatically refresh content
2022-11-22 14:35:34 -08:00
Michael Shamoon
43325371fc Remove ar-SA 2022-11-22 14:27:30 -08:00
Paperless-ngx Translation Bot [bot]
d10721089e New translations messages.xlf (Arabic)
[ci skip]
2022-11-22 14:27:30 -08:00
Paperless-ngx Translation Bot [bot]
f1a1a2da8b New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-22 14:25:36 -08:00
Paperless-ngx Translation Bot [bot]
612e0a1163 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-22 14:24:21 -08:00
Michael Shamoon
2a5dc4de38 Add info that re-do OCR doesnt automatically refresh content 2022-11-22 14:16:04 -08:00
shamoon
a5283525bc Merge pull request #2023 from paperless-ngx/fix/2019-create-date
Bugfix: Fix created_date being a string
2022-11-22 13:53:08 -08:00
Trenton H
de98d748a9 If override_date is provided, coerce it into a datetime 2022-11-22 10:11:27 -08:00
Trenton H
f015556562 Adds a test to cover this edge case 2022-11-22 07:22:41 -08:00
Trenton H
b897d6de2e Don't use the sidecar file when redoing the OCR, it only contains new text 2022-11-22 07:22:41 -08:00
Trenton H
54f20b381e Documents some issues and the required manual fixes for MariaDB 2022-11-22 07:03:01 -08:00
shamoon
c0d4248021 Merge pull request #1973 from paperless-ngx/l10n_dev
New Crowdin updates
2022-11-21 22:19:02 -08:00
Paperless-ngx Translation Bot [bot]
870e295aae New translations messages.xlf (German)
[ci skip]
2022-11-21 21:43:54 -08:00
phail
4aa318598f add test comments 2022-11-20 23:26:20 +01:00
phail
00f39d8b58 add test comments 2022-11-20 22:49:42 +01:00
phail
0b1a16908f Include .eml reference in docs 2022-11-20 20:33:07 +01:00
phail
d9796e5003 change order of elements in parsed Texts 2022-11-20 20:24:36 +01:00
phail
3599bb52c0 minor test improvements 2022-11-20 20:12:41 +01:00
phail
af8a6c3764 fix filenames 2022-11-20 19:53:57 +01:00
Trenton Holmes
6d37ebf79e Fixes one more place which used manual size formatting 2022-11-20 09:15:06 -08:00
Trenton Holmes
f6a70b85f4 Use Django templating engine 2022-11-20 09:13:16 -08:00
Trenton Holmes
538a4219bd Fixes missing return 2022-11-20 09:10:44 -08:00
Trenton Holmes
85c41b79be Adds the new packages without updating other dependencies 2022-11-20 08:02:06 -08:00
shamoon
25d014d8ef Merge branch 'beta' into l10n_dev 2022-11-20 07:48:55 -08:00
Trenton H
9b01aa9202 Fixes the link for flake8 to the new (?) GitHub repo 2022-11-20 07:42:21 -08:00
phail
df101f5e7a split handle_message function 2022-11-20 16:09:46 +01:00
phail
1fa735eb23 use imagehash instead of bitwise hashing 2022-11-20 15:44:43 +01:00
phail
ebe21a0114 eml parsing requires tika 2022-11-20 14:22:30 +01:00
phail
d132eba143 optimize regex 2022-11-20 12:48:03 +01:00
phail
073c3c8fed use html.escape instead of some self build functions 2022-11-20 12:36:49 +01:00
phail
e3c1bde793 remove log mocking, replace pytest raises, use humanfriendly 2022-11-20 12:06:35 +01:00
shamoon
27f7f0a941 Merge pull request #1998 from paperless-ngx/fix/1993-date-overflow
Bugfix: Don't allow exceptions during date parsing to fail consume
2022-11-17 14:31:46 -08:00
shamoon
9f5fd6c3ba Merge pull request #1967 from paperless-ngx/feature-scripts-output
Feature: Capture stdout & stderr of the pre/post consume scripts
2022-11-17 14:30:23 -08:00
Trenton H
914661fdbb Don't allow an exception when trying to parse a date cause complete failure 2022-11-17 13:37:37 -08:00
Trenton H
0ae8200593 Fixes the link for flake8 to the new (?) GitHub repo 2022-11-14 15:47:22 -08:00
phail
b68906b14e merge pipfile 2022-11-13 22:49:52 +01:00
phail
681eecc46e Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-11-13 22:43:55 +01:00
phail
1578e8de2d fix live tests 2022-11-13 22:33:26 +01:00
Michael Shamoon
023c931401 Fix top search not working due to missing button type 2022-11-13 07:11:45 -08:00
Paperless-ngx Translation Bot [bot]
9ec89762a3 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-12 09:31:54 -08:00
Michael Shamoon
fa47595ac8 remove ar_SA
[ci skip]
2022-11-12 08:58:01 -08:00
Paperless-ngx Translation Bot [bot]
79f5019b40 New Crowdin updates (#1971)
* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations django.po (Italian)
[ci skip]

* New translations django.po (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Croatian)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Arabic)
[ci skip]

* Remove ar-SA

* remote ar other than ar-ar

Co-authored-by: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
2022-11-12 08:53:52 -08:00
Michael Shamoon
756ce2f9d8 Merge branch 'dev' into beta 2022-11-12 08:33:43 -08:00
Michael Shamoon
d47122340a Add translation strings for welcome tour buttons 2022-11-12 08:31:25 -08:00
phail
b01cbc9aa0 add conditions to unittests 2022-11-12 15:48:30 +01:00
Trenton H
3dfeee9332 Don't do decoding work if not needed 2022-11-11 10:09:56 -08:00
Trenton H
057f6016cc Adds further testing to cover scripts with non-zero exit codes 2022-11-11 08:58:49 -08:00
Trenton H
c4965580de Fixes stderr appearing to have content when it doesn't 2022-11-10 19:01:54 -08:00
Trenton Holmes
9a47963fd5 Captures the stdout and stderr of the pre/post scripts into the log 2022-11-10 17:26:47 -08:00
Trenton H
50a211f367 Fixes an issue with the install of languages and read-only variable 2022-11-10 17:25:39 -08:00
shamoon
5f278d7fbb Merge pull request #1956 from paperless-ngx/l10n_dev
New Crowdin updates
2022-11-09 21:37:29 -08:00
Paperless-ngx Translation Bot [bot]
a17d251913 New translations django.po (Serbian (Latin))
[ci skip]
2022-11-09 15:12:37 -08:00
Paperless-ngx Translation Bot [bot]
1cbf088656 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-09 15:12:36 -08:00
Paperless-ngx Translation Bot [bot]
d3254d6bcf New translations messages.xlf (Luxembourgish)
[ci skip]
2022-11-09 15:12:35 -08:00
Paperless-ngx Translation Bot [bot]
1543729c7b New translations messages.xlf (Croatian)
[ci skip]
2022-11-09 15:12:34 -08:00
Paperless-ngx Translation Bot [bot]
ef2a96c34b New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-11-09 15:12:32 -08:00
Paperless-ngx Translation Bot [bot]
656b1e150f New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-11-09 15:12:31 -08:00
Paperless-ngx Translation Bot [bot]
e0f61003cf New translations messages.xlf (Turkish)
[ci skip]
2022-11-09 15:12:30 -08:00
Paperless-ngx Translation Bot [bot]
1ca98678cd New translations messages.xlf (Swedish)
[ci skip]
2022-11-09 15:12:28 -08:00
Paperless-ngx Translation Bot [bot]
9919cc1956 New translations messages.xlf (Slovenian)
[ci skip]
2022-11-09 15:12:27 -08:00
Paperless-ngx Translation Bot [bot]
d2096e3c05 New translations messages.xlf (Portuguese)
[ci skip]
2022-11-09 15:12:26 -08:00
Paperless-ngx Translation Bot [bot]
5f2b508b7a New translations messages.xlf (Polish)
[ci skip]
2022-11-09 15:12:24 -08:00
Paperless-ngx Translation Bot [bot]
752d4f4249 New translations django.po (German)
[ci skip]
2022-11-09 15:12:23 -08:00
Paperless-ngx Translation Bot [bot]
72e7d5150e New translations messages.xlf (Norwegian)
[ci skip]
2022-11-09 15:12:22 -08:00
Paperless-ngx Translation Bot [bot]
42a9e05a7f New translations messages.xlf (Italian)
[ci skip]
2022-11-09 15:12:21 -08:00
Paperless-ngx Translation Bot [bot]
b4add2ed55 New translations messages.xlf (Hebrew)
[ci skip]
2022-11-09 15:12:19 -08:00
Paperless-ngx Translation Bot [bot]
ed7d9295bd New translations messages.xlf (Finnish)
[ci skip]
2022-11-09 15:12:18 -08:00
Paperless-ngx Translation Bot [bot]
5b7b1b2349 New translations messages.xlf (Danish)
[ci skip]
2022-11-09 15:12:16 -08:00
Paperless-ngx Translation Bot [bot]
d5c930acc9 New translations messages.xlf (Czech)
[ci skip]
2022-11-09 15:12:15 -08:00
Paperless-ngx Translation Bot [bot]
4c93d6d7e6 New translations messages.xlf (Belarusian)
[ci skip]
2022-11-09 15:12:14 -08:00
Paperless-ngx Translation Bot [bot]
066f3264fb New translations messages.xlf (Spanish)
[ci skip]
2022-11-09 15:12:12 -08:00
Paperless-ngx Translation Bot [bot]
88a803f949 New translations messages.xlf (French)
[ci skip]
2022-11-09 15:12:11 -08:00
Paperless-ngx Translation Bot [bot]
e69615dc06 New translations messages.xlf (Romanian)
[ci skip]
2022-11-09 15:12:10 -08:00
Paperless-ngx Translation Bot [bot]
a1e0840e24 New translations messages.xlf (Dutch)
[ci skip]
2022-11-09 15:12:08 -08:00
Paperless-ngx Translation Bot [bot]
d814353e83 New translations messages.xlf (German)
[ci skip]
2022-11-09 15:12:07 -08:00
Paperless-ngx Translation Bot [bot]
06d7845eca New translations django.po (Dutch)
[ci skip]
2022-11-09 15:12:04 -08:00
Paperless-ngx Translation Bot [bot]
ae8682c7a5 New translations django.po (Romanian)
[ci skip]
2022-11-09 15:12:03 -08:00
Paperless-ngx Translation Bot [bot]
c9c0b3d430 New translations django.po (Luxembourgish)
[ci skip]
2022-11-09 15:12:02 -08:00
Paperless-ngx Translation Bot [bot]
cc46fc7e4b New translations django.po (Croatian)
[ci skip]
2022-11-09 15:12:01 -08:00
Paperless-ngx Translation Bot [bot]
d1b1ba21cd New translations django.po (Portuguese, Brazilian)
[ci skip]
2022-11-09 15:12:00 -08:00
Paperless-ngx Translation Bot [bot]
a009417a99 New translations django.po (Chinese Simplified)
[ci skip]
2022-11-09 15:11:59 -08:00
Paperless-ngx Translation Bot [bot]
775da720ec New translations django.po (Turkish)
[ci skip]
2022-11-09 15:11:58 -08:00
Paperless-ngx Translation Bot [bot]
aeae6ea0d3 New translations django.po (Swedish)
[ci skip]
2022-11-09 15:11:57 -08:00
Paperless-ngx Translation Bot [bot]
0ae46d2269 New translations django.po (Slovenian)
[ci skip]
2022-11-09 15:11:56 -08:00
Paperless-ngx Translation Bot [bot]
0e7f1ec0de New translations django.po (Russian)
[ci skip]
2022-11-09 15:11:55 -08:00
Paperless-ngx Translation Bot [bot]
13cd55b96f New translations django.po (Portuguese)
[ci skip]
2022-11-09 15:11:53 -08:00
Paperless-ngx Translation Bot [bot]
9139e807ec New translations messages.xlf (Arabic)
[ci skip]
2022-11-09 15:11:52 -08:00
Paperless-ngx Translation Bot [bot]
53616f6625 New translations django.po (Polish)
[ci skip]
2022-11-09 15:11:51 -08:00
Paperless-ngx Translation Bot [bot]
526fdf1153 New translations django.po (Italian)
[ci skip]
2022-11-09 15:11:50 -08:00
Paperless-ngx Translation Bot [bot]
fc4aceb0ee New translations django.po (Hebrew)
[ci skip]
2022-11-09 15:11:49 -08:00
Paperless-ngx Translation Bot [bot]
3d8421b718 New translations django.po (Finnish)
[ci skip]
2022-11-09 15:11:48 -08:00
Paperless-ngx Translation Bot [bot]
6cebceda15 New translations django.po (Danish)
[ci skip]
2022-11-09 15:11:47 -08:00
Paperless-ngx Translation Bot [bot]
e1fd6bda19 New translations django.po (Czech)
[ci skip]
2022-11-09 15:11:46 -08:00
Paperless-ngx Translation Bot [bot]
fd34414b17 New translations django.po (Belarusian)
[ci skip]
2022-11-09 15:11:45 -08:00
Paperless-ngx Translation Bot [bot]
3ce1886a54 New translations django.po (Arabic)
[ci skip]
2022-11-09 15:11:44 -08:00
Paperless-ngx Translation Bot [bot]
8ed43779a8 New translations django.po (Spanish)
[ci skip]
2022-11-09 15:11:43 -08:00
Paperless-ngx Translation Bot [bot]
a7949b3e22 New translations django.po (French)
[ci skip]
2022-11-09 15:11:42 -08:00
Paperless-ngx Translation Bot [bot]
19c293c3e6 New translations django.po (Norwegian)
[ci skip]
2022-11-09 15:11:41 -08:00
Paperless-ngx Translation Bot [bot]
ccb1ec4ff5 New translations messages.xlf (Russian)
[ci skip]
2022-11-09 15:11:40 -08:00
Trenton H
e5106bdca0 Updates the version strings to 1.10.0 2022-11-09 14:00:09 -08:00
Trenton H
ba1366f49a Merge branch 'dev' into beta 2022-11-09 13:51:10 -08:00
Michael Shamoon
1dc271723c Update translation files 2022-11-09 13:51:06 -08:00
shamoon
f3b3db30a2 Merge pull request #1689 from paperless-ngx/l10n_dev
New Crowdin updates
2022-11-09 13:45:25 -08:00
Michael Shamoon
69241ce394 Merge branch 'dev' into l10n_dev 2022-11-09 13:43:29 -08:00
Trenton H
10f6195bac Always use pikepdf, then pdf2image if needed to check for barcodes instead of requiring/allowing configuration 2022-11-09 13:01:39 -08:00
Trenton H
1d0cf77e7e Downgrades cryptography to the last built version on piwheels 2022-11-09 12:12:23 -08:00
Trenton H
beea3eb7eb Releases constraints on some packages and updates everything 2022-11-09 08:51:46 -08:00
Trenton H
a7b5b98174 Fixes the paths to binaries 2022-11-08 08:52:01 -08:00
Trenton Holmes
046d43fbe8 Limits tamper check find to depth 1, as only files at the first level could be run 2022-11-08 08:52:01 -08:00
Trenton Holmes
8023aae738 Adds local and readonly to almost everything. Fully qualifies the path to binaries 2022-11-08 08:52:01 -08:00
Trenton Holmes
2a9bb55559 It's not a customer 2022-11-08 08:52:01 -08:00
Trenton Holmes
e635bfedc5 Corrects the ls command redirection 2022-11-08 08:52:01 -08:00
Trenton Holmes
be64552092 Adds an untested custom startup functionality 2022-11-08 08:52:01 -08:00
Michael Shamoon
91a2dedfec Celery JSON serializable object for override_tag_ids 2022-11-07 07:41:23 -08:00
Paperless-ngx Translation Bot [bot]
069e0a1903 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-11-06 05:11:35 -08:00
shamoon
39149a891c Merge pull request #1934 from paperless-ngx/fix/issue-1933
Fix mail consumption broken in `dev` after move to celery
2022-11-05 21:47:39 -07:00
Michael Shamoon
daa49ee7c8 Remote outdated task_name parameter 2022-11-05 17:51:56 -07:00
phail
acd3832417 merge Pipfile.lock 2022-11-03 21:08:15 +01:00
phail
82b2ba3cc2 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-11-03 21:00:01 +01:00
Trenton H
7e3e0a0fa6 Refresh the instance from the database before doing any file handling with it 2022-11-03 11:32:27 -07:00
phail
3de6e0bcf1 put parser into setup
make test using convert optional
Gotenberg live testing
2022-11-03 00:58:36 +01:00
Trenton Holmes
3c325582d9 Try waiting a little bit after a parser error during the live testing 2022-11-02 15:55:12 -07:00
Paperless-ngx Translation Bot [bot]
e5012cdc5f New translations messages.xlf (Portuguese)
[ci skip]
2022-11-02 05:07:00 -07:00
dependabot[bot]
853d13b6f2 Bump tj-actions/changed-files from 32 to 34
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 32 to 34.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v32...v34)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 15:34:17 -07:00
dependabot[bot]
449fa9bf48 Bump scikit-learn from 1.1.2 to 1.1.3
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.1.2...1.1.3)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 14:51:50 -07:00
dependabot[bot]
0a6828517a Merge pull request #1910 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/platform-browser-14.2.8 2022-11-01 21:18:19 +00:00
shamoon
8585e77ccd Merge pull request #1911 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-ui-tour-ng-bootstrap-11.1.0
Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui
2022-11-01 14:08:56 -07:00
Michael Shamoon
db32431bcc Bump angular packages 2022-11-01 14:07:55 -07:00
dependabot[bot]
e2d826b4ea Bump ngx-ui-tour-ng-bootstrap from 11.0.0 to 11.1.0 in /src-ui
Bumps [ngx-ui-tour-ng-bootstrap](https://github.com/hakimio/ngx-ui-tour) from 11.0.0 to 11.1.0.
- [Release notes](https://github.com/hakimio/ngx-ui-tour/releases)
- [Commits](https://github.com/hakimio/ngx-ui-tour/commits)

---
updated-dependencies:
- dependency-name: ngx-ui-tour-ng-bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 21:05:11 +00:00
shamoon
06f1a4f744 Merge pull request #1914 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-29.2.2
Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui
2022-11-01 14:02:59 -07:00
dependabot[bot]
d09bb563a7 Bump jest-environment-jsdom from 29.1.2 to 29.2.2 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.1.2 to 29.2.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.2.2/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 20:17:34 +00:00
dependabot[bot]
0fafecc6a4 Bump @angular/platform-browser from 14.2.4 to 14.2.8 in /src-ui
Bumps [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) from 14.2.4 to 14.2.8.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/14.2.8/packages/platform-browser)

---
updated-dependencies:
- dependency-name: "@angular/platform-browser"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 20:16:10 +00:00
Trenton Holmes
66b60654d9 Fixes missing lxml and tweaks commenting 2022-11-01 12:42:03 -07:00
Trenton Holmes
b479027f3d Adds a couple build args to force pikepdf to rebuild dependent wheels if the versions change 2022-11-01 12:42:03 -07:00
Trenton Holmes
0a81439415 No need for an extra import, the object is smart already 2022-11-01 08:44:30 -07:00
Trenton Holmes
4fcaa72886 Adds more options for the filename formatting 2022-11-01 08:44:30 -07:00
dependabot[bot]
9acb00dcba Bump pillow from 9.2.0 to 9.3.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.2.0 to 9.3.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.2.0...9.3.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 08:04:25 -07:00
dependabot[bot]
ebc453d720 Bump pytest from 7.1.3 to 7.2.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.3 to 7.2.0.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.3...7.2.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 19:00:17 -07:00
dependabot[bot]
770d72c3e8 Bump tox from 3.26.0 to 3.27.0
Bumps [tox](https://github.com/tox-dev/tox) from 3.26.0 to 3.27.0.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/master/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/3.26.0...3.27.0)

---
updated-dependencies:
- dependency-name: tox
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 17:56:19 -07:00
Max Bachmann
e97c04c03d directly use rapidfuzz 2022-10-31 13:17:10 -07:00
shamoon
34a0111ff5 update logs section 2022-10-31 13:06:17 -07:00
Trenton H
9214b41255 Fixes deleting images if the branch API returns an error code and makes the error code a failure 2022-10-31 12:46:25 -07:00
shamoon
0d941bfb05 Merge pull request #1886 from paperless-ngx/1.9.2-ui-tweaks
Feature: 1.9.2 UI tweaks
2022-10-31 12:42:13 -07:00
Paperless-ngx Translation Bot [bot]
4c68d28a6f New translations messages.xlf (German)
[ci skip]
2022-10-30 15:40:57 -07:00
shamoon
b511b084d0 Update matrix url
[ci skip]
2022-10-30 06:48:41 -07:00
Paperless-ngx Translation Bot [bot]
f2939583d7 New translations messages.xlf (Arabic)
[ci skip]
2022-10-29 23:28:44 -07:00
Paperless-ngx Translation Bot [bot]
5951b0d946 New translations messages.xlf (Romanian)
[ci skip]
2022-10-29 23:28:43 -07:00
Paperless-ngx Translation Bot [bot]
bf088c427a New translations messages.xlf (French)
[ci skip]
2022-10-29 23:28:42 -07:00
Paperless-ngx Translation Bot [bot]
ef1eead52e New translations messages.xlf (Spanish)
[ci skip]
2022-10-29 23:28:40 -07:00
Paperless-ngx Translation Bot [bot]
f77a431554 New translations messages.xlf (Belarusian)
[ci skip]
2022-10-29 23:28:39 -07:00
Paperless-ngx Translation Bot [bot]
cb930d1e76 New translations messages.xlf (Czech)
[ci skip]
2022-10-29 23:28:38 -07:00
Paperless-ngx Translation Bot [bot]
c4db7f7b6d New translations messages.xlf (Danish)
[ci skip]
2022-10-29 23:28:36 -07:00
Paperless-ngx Translation Bot [bot]
a24524fb81 New translations messages.xlf (Finnish)
[ci skip]
2022-10-29 23:28:35 -07:00
Paperless-ngx Translation Bot [bot]
9e253fcc62 New translations messages.xlf (Hebrew)
[ci skip]
2022-10-29 23:28:34 -07:00
Paperless-ngx Translation Bot [bot]
490dee2e90 New translations messages.xlf (Italian)
[ci skip]
2022-10-29 23:28:32 -07:00
Paperless-ngx Translation Bot [bot]
a2032b9979 New translations messages.xlf (Dutch)
[ci skip]
2022-10-29 23:28:31 -07:00
Paperless-ngx Translation Bot [bot]
1561f561d9 New translations messages.xlf (German)
[ci skip]
2022-10-29 23:28:30 -07:00
Paperless-ngx Translation Bot [bot]
6246bfaf28 New translations messages.xlf (Norwegian)
[ci skip]
2022-10-29 23:28:29 -07:00
Paperless-ngx Translation Bot [bot]
57763d0c0b New translations messages.xlf (Portuguese)
[ci skip]
2022-10-29 23:28:28 -07:00
Paperless-ngx Translation Bot [bot]
d441c8a26e New translations messages.xlf (Slovenian)
[ci skip]
2022-10-29 23:28:26 -07:00
Paperless-ngx Translation Bot [bot]
54abeff63a New translations messages.xlf (Swedish)
[ci skip]
2022-10-29 23:28:25 -07:00
Paperless-ngx Translation Bot [bot]
dc045761d9 New translations messages.xlf (Turkish)
[ci skip]
2022-10-29 23:28:24 -07:00
Paperless-ngx Translation Bot [bot]
393c208cfd New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-10-29 23:28:22 -07:00
Paperless-ngx Translation Bot [bot]
11f9bc898a New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-10-29 23:28:21 -07:00
Paperless-ngx Translation Bot [bot]
a31089ca6e New translations messages.xlf (Croatian)
[ci skip]
2022-10-29 23:28:19 -07:00
Paperless-ngx Translation Bot [bot]
0355fa2cb6 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-10-29 23:28:18 -07:00
Paperless-ngx Translation Bot [bot]
73b945a9f3 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-10-29 23:28:17 -07:00
Paperless-ngx Translation Bot [bot]
396dd9ae1c New translations messages.xlf (Polish)
[ci skip]
2022-10-29 23:28:16 -07:00
Paperless-ngx Translation Bot [bot]
b026dcc6ae New translations messages.xlf (Russian)
[ci skip]
2022-10-29 23:28:15 -07:00
Michael Shamoon
36d2286d03 Update messages.xlf 2022-10-29 23:19:35 -07:00
shamoon
ea992e92f5 Merge pull request #1860 from paperless-ngx/dependabot/pip/dev/zipp-3.10.0
Bump zipp from 3.9.0 to 3.10.0
2022-10-29 23:17:02 -07:00
shamoon
d6b5c733f3 Merge pull request #1868 from paperless-ngx/fix/issue-1866
Fix: independent control of saved views
2022-10-29 23:15:28 -07:00
Michael Shamoon
7efdce44f7 Implement warning on close unsaved view 2022-10-29 23:14:33 -07:00
Michael Shamoon
9b3243533c better positioning in clearable badges 2022-10-29 15:29:50 -07:00
Michael Shamoon
0993fc07a3 Add "clearable" badge 2022-10-29 15:03:27 -07:00
phail
6df73ae940 gotenberg with modified cmd 2022-10-29 23:20:35 +02:00
Michael Shamoon
28f7b0dc13 Use check badge for dropdowns 2022-10-29 14:07:45 -07:00
Michael Shamoon
bd64684fa4 support esc and x button for main search bar 2022-10-29 14:07:31 -07:00
Michael Shamoon
a9abffaddc Support keyboard esc and X button for filter editor text field 2022-10-29 14:07:31 -07:00
Michael Shamoon
89e0f8e3ef fix filterable dropdown corner radius 2022-10-29 14:07:31 -07:00
shamoon
9e91440245 Merge pull request #1865 from paperless-ngx/fix-relative-dates
Fix: frontend relative date searches
2022-10-29 14:05:35 -07:00
shamoon
4a24ba51c5 Merge pull request #1876 from astubenbord/main
Added new application to list of affiliated projects
2022-10-28 22:22:08 -07:00
Anton Stubenbord
d5fb98b7c4 Added new application to list of affiliated projects 2022-10-28 22:21:27 -07:00
Sblop
cda0a19b99 Update settings.py
Comment too long.
2022-10-28 14:40:48 -07:00
Sblop
932a285b82 Update settings.py 2022-10-28 14:40:48 -07:00
Sblop
c414de9c35 Update settings.py
Django gives a system error on MariaDB on VARCHARs longer than 255 chars. This was a limitation in older versions of mysql.
Meaning: You cannot run Paperless-NGX on older version were this limitation were present, meaning Django plays it extremely safe by giving an error.
This fixes this problem.
2022-10-28 14:40:48 -07:00
phail
2204090151 fix string 2022-10-27 23:53:47 +02:00
phail
3c81a7468b replace thumbnail creation with mock 2022-10-27 23:41:29 +02:00
phail
5ef86f9489 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-10-27 23:12:51 +02:00
phail
90cb0836bb Downgrade pdf validation to text only 2022-10-27 23:11:41 +02:00
Trenton Holmes
9b82ab95fb Updates to the latest pre-commit hook versions 2022-10-27 13:50:08 -07:00
Trenton Holmes
aa5aff246b Locks pipenv to the latest, last working version 2022-10-27 13:50:08 -07:00
Paperless-ngx Translation Bot [bot]
c6a484439d New translations django.po (Dutch)
[ci skip]
2022-10-27 02:51:17 -07:00
phail
ef1d4264b5 improve test coverage a little 2022-10-27 00:27:15 +02:00
Michael Shamoon
1b55717cc7 Allow independent saved view control 2022-10-26 12:54:44 -07:00
phail
e1fa59122d Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-10-26 20:59:49 +02:00
Michael Shamoon
dc1da7cb24 Retain saved view filters when changing a saved view 2022-10-26 10:39:09 -07:00
Michael Shamoon
8652b7ddb0 Fix switch from title_content search 2022-10-25 15:31:01 -07:00
Michael Shamoon
84b3fee0f9 Fix losing search when adding relative date 2022-10-25 13:43:13 -07:00
Michael Shamoon
b52cb193e1 Remove relative date query strings from dropdown 2022-10-25 13:34:36 -07:00
Michael Shamoon
6a00d5e08a Implement relative date querying 2022-10-25 12:45:15 -07:00
phail
5bf26369e2 remove erroring paramerter 2022-10-25 21:17:40 +02:00
dependabot[bot]
3357fa19f3 Bump pytest-env from 0.6.2 to 0.8.1
Bumps [pytest-env](https://github.com/pytest-dev/pytest-env) from 0.6.2 to 0.8.1.
- [Release notes](https://github.com/pytest-dev/pytest-env/releases)
- [Commits](https://github.com/pytest-dev/pytest-env/compare/0.6.2...0.8.1)

---
updated-dependencies:
- dependency-name: pytest-env
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 07:26:43 -07:00
shamoon
37a892d461 Merge pull request #1858 from paperless-ngx/fix/1850-barcode-password
Bugfix: Handle password protected PDFs during barcode detection
2022-10-24 23:17:48 -07:00
dependabot[bot]
f149f9ccb1 Bump zipp from 3.9.0 to 3.10.0
Bumps [zipp](https://github.com/jaraco/zipp) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/jaraco/zipp/releases)
- [Changelog](https://github.com/jaraco/zipp/blob/main/CHANGES.rst)
- [Commits](https://github.com/jaraco/zipp/compare/v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: zipp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 20:34:44 +00:00
Trenton H
d52fbbb040 More smoothly handle the case of a password protected PDF for barcodes 2022-10-24 13:16:14 -07:00
phail
36239ba09f rename help text 2022-10-24 22:15:33 +02:00
Paperless-ngx Translation Bot [bot]
446eca4ac3 New translations messages.xlf (German)
[ci skip]
2022-10-24 13:11:59 -07:00
phail
318c1d2fbd Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-10-24 21:12:35 +02:00
Trenton H
f8ce6285df Allows using pdf2image instead of pikepdf if desired 2022-10-24 09:58:34 -07:00
Trenton H
0a19ad4edb Resolves the conflicts with a lock 2022-10-24 09:17:38 -07:00
Trenton H
ab69961b5c Integrates an optional starting of Flower into the Docker image 2022-10-24 09:17:38 -07:00
Michael Shamoon
1400dba12c Fix frontend task name display 2022-10-24 09:10:10 -07:00
Trenton H
a72cc5da83 Connects up the celery signals to support pending, started and success/failure, without relying on django-celery-results 2022-10-24 09:10:10 -07:00
Paperless-ngx Translation Bot [bot]
630b8fa675 New translations messages.xlf (Arabic)
[ci skip]
2022-10-23 22:19:58 -07:00
Paperless-ngx Translation Bot [bot]
43514ad477 New translations messages.xlf (Romanian)
[ci skip]
2022-10-23 22:19:57 -07:00
Paperless-ngx Translation Bot [bot]
0ed95547d5 New translations messages.xlf (French)
[ci skip]
2022-10-23 22:19:56 -07:00
Paperless-ngx Translation Bot [bot]
250e2d54b4 New translations messages.xlf (Spanish)
[ci skip]
2022-10-23 22:19:54 -07:00
Paperless-ngx Translation Bot [bot]
b02cd541a8 New translations messages.xlf (Belarusian)
[ci skip]
2022-10-23 22:19:53 -07:00
Paperless-ngx Translation Bot [bot]
94f2a2ce33 New translations messages.xlf (Czech)
[ci skip]
2022-10-23 22:19:52 -07:00
Paperless-ngx Translation Bot [bot]
6a7c0279bf New translations messages.xlf (Danish)
[ci skip]
2022-10-23 22:19:50 -07:00
Paperless-ngx Translation Bot [bot]
5ba11b1161 New translations messages.xlf (Finnish)
[ci skip]
2022-10-23 22:19:49 -07:00
Paperless-ngx Translation Bot [bot]
917bce301c New translations messages.xlf (Hebrew)
[ci skip]
2022-10-23 22:19:48 -07:00
Paperless-ngx Translation Bot [bot]
3fb32c5cf1 New translations messages.xlf (Italian)
[ci skip]
2022-10-23 22:19:47 -07:00
Paperless-ngx Translation Bot [bot]
19a1bf0f5f New translations messages.xlf (Dutch)
[ci skip]
2022-10-23 22:19:45 -07:00
Paperless-ngx Translation Bot [bot]
abe8e678ea New translations messages.xlf (German)
[ci skip]
2022-10-23 22:19:44 -07:00
Paperless-ngx Translation Bot [bot]
d16dee61fa New translations messages.xlf (Norwegian)
[ci skip]
2022-10-23 22:19:43 -07:00
Paperless-ngx Translation Bot [bot]
e7b22b15c6 New translations messages.xlf (Portuguese)
[ci skip]
2022-10-23 22:19:41 -07:00
Paperless-ngx Translation Bot [bot]
0f62770bce New translations messages.xlf (Slovenian)
[ci skip]
2022-10-23 22:19:40 -07:00
Paperless-ngx Translation Bot [bot]
c67cff4f0e New translations messages.xlf (Swedish)
[ci skip]
2022-10-23 22:19:39 -07:00
Paperless-ngx Translation Bot [bot]
dccb9227a2 New translations messages.xlf (Turkish)
[ci skip]
2022-10-23 22:19:37 -07:00
Paperless-ngx Translation Bot [bot]
b7db1cf2c1 New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-10-23 22:19:36 -07:00
Paperless-ngx Translation Bot [bot]
3d683d13b8 New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-10-23 22:19:35 -07:00
Paperless-ngx Translation Bot [bot]
310c89ffdf New translations messages.xlf (Croatian)
[ci skip]
2022-10-23 22:19:33 -07:00
Paperless-ngx Translation Bot [bot]
dd069d753b New translations messages.xlf (Luxembourgish)
[ci skip]
2022-10-23 22:19:32 -07:00
Paperless-ngx Translation Bot [bot]
27a24f10b3 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-10-23 22:19:31 -07:00
Paperless-ngx Translation Bot [bot]
b6b9bf0e3c New translations messages.xlf (Polish)
[ci skip]
2022-10-23 22:19:29 -07:00
Paperless-ngx Translation Bot [bot]
5fc7350ea0 New translations messages.xlf (Russian)
[ci skip]
2022-10-23 22:19:28 -07:00
Michael Shamoon
9b01c96846 Grammar error, updated frontend translation
https://crowdin.com/translate/paperless-ngx/16/en-it?filter=basic&value=0#
2022-10-23 22:11:24 -07:00
phail
e7c40fc3dc Update Pipfile 2022-10-23 22:02:11 +02:00
phail
0da0b1c062 update variable names 2022-10-23 21:39:15 +02:00
phail
08988e11f8 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-10-23 20:37:22 +02:00
phail
30372b0e85 add tests for mail_to_html and generate_pdf_from_mail 2022-10-23 17:18:10 +02:00
Paperless-ngx Translation Bot [bot]
96aba9acdc New translations messages.xlf (Italian)
[ci skip]
2022-10-23 07:21:03 -07:00
Paperless-ngx Translation Bot [bot]
43e78c8e69 New translations messages.xlf (Italian)
[ci skip]
2022-10-23 06:22:29 -07:00
Paperless-ngx Translation Bot [bot]
47d0c77970 New translations messages.xlf (Dutch)
[ci skip]
2022-10-22 00:48:54 -07:00
phail
567e89d1c7 test for broken eml, add test_generate_pdf 2022-10-22 02:25:23 +02:00
phail
f1f5227ccd add unittest for external images 2022-10-22 00:44:32 +02:00
Paperless-ngx Translation Bot [bot]
f825b5772d New translations messages.xlf (Arabic)
[ci skip]
2022-10-20 17:27:27 -07:00
Paperless-ngx Translation Bot [bot]
f9cb95e79c New translations messages.xlf (Arabic)
[ci skip]
2022-10-20 16:30:33 -07:00
Paperless-ngx Translation Bot [bot]
73845ef968 New translations django.po (Arabic)
[ci skip]
2022-10-20 16:30:32 -07:00
Michael Shamoon
8be6c707de Update django.po
[ci skip]
2022-10-20 15:33:16 -07:00
Michael Shamoon
60f76d3e1f rename backend Arabic translation file
[ci skip]
2022-10-20 15:31:28 -07:00
Paperless-ngx Translation Bot [bot]
912dc9a847 New translations messages.xlf (Arabic)
[ci skip]
2022-10-20 15:29:29 -07:00
Paperless-ngx Translation Bot [bot]
70ef6412eb New translations django.po (Arabic)
[ci skip]
2022-10-20 15:28:49 -07:00
Michael Shamoon
99db828d49 Merge branch 'dev' of github.com:paperless-ngx/paperless-ngx into dev 2022-10-20 15:28:15 -07:00
Michael Shamoon
3c5b647303 rename Arabic translation file
[skip ci]
2022-10-20 15:28:10 -07:00
Trenton Holmes
d1aa08850d Reverts the change around skip_noarchive to align with how it is documented to work 2022-10-20 13:34:41 -07:00
dependabot[bot]
53e8d84af2 Bump sphinx from 5.2.3 to 5.3.0
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.2.3 to 5.3.0.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.2.3...v5.3.0)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-20 13:10:14 -07:00
Trenton H
4c7242df6d Even more commenting 2022-10-20 12:42:40 -07:00
Trenton H
a231b92644 Corrects the script name 2022-10-20 12:42:40 -07:00
Trenton H
c3a62268c7 Simplifies the image tag cleanup into classes, fixes the library images caring about feature branches 2022-10-20 12:42:40 -07:00
Michael Shamoon
69913ae250 Remove legacy translation files
[ci ckip]
2022-10-19 21:44:47 -07:00
phail
09b5bd17f2 add unittest for generate_pdf_from_html 2022-10-19 23:19:33 +02:00
phail
e384bd78c5 add unittest for transform_inline_html 2022-10-18 23:48:07 +02:00
Michael Shamoon
a2da1acdd7 Fix button styles broken by bootstrap update 2022-10-18 14:30:31 -07:00
Paperless-ngx Translation Bot [bot]
a67ea8ffd9 New translations messages.xlf (Czech)
[ci skip]
2022-10-18 14:06:43 -07:00
Paperless-ngx Translation Bot [bot]
0050a20710 New translations django.po (Czech)
[ci skip]
2022-10-18 13:06:11 -07:00
Paperless-ngx Translation Bot [bot]
ad65360a55 New translations messages.xlf (Czech)
[ci skip]
2022-10-18 13:06:10 -07:00
shamoon
15bcb2491c Merge pull request #1792 from paperless-ngx/fix/issue-1791
Fix: missing loadViewConfig breaks loading saved view
2022-10-17 14:30:30 -07:00
Paperless-ngx Translation Bot [bot]
2a2fa90cf9 New translations messages.xlf (French)
[ci skip]
2022-10-17 12:49:11 -07:00
Paperless-ngx Translation Bot [bot]
6e9fbdb8ed New translations messages.xlf (Belarusian)
[ci skip]
2022-10-16 07:46:24 -07:00
Paperless-ngx Translation Bot [bot]
097ab55f7a New translations django.po (Belarusian)
[ci skip]
2022-10-16 06:46:10 -07:00
Paperless-ngx Translation Bot [bot]
dddb82af23 New translations messages.xlf (Belarusian)
[ci skip]
2022-10-16 06:46:09 -07:00
Paperless-ngx Translation Bot [bot]
377c37dfab New translations django.po (Belarusian)
[ci skip]
2022-10-16 05:44:52 -07:00
phail
fda844f64c add unittest for parse 2022-10-15 15:41:43 +02:00
phail
daf90399bd Add unitest for tika_parse() 2022-10-15 13:13:29 +02:00
Trenton H
0df0deb445 Downgrades and locks channels-redis to 3.4.1 to resolve issues with async_to_sync 2022-10-14 16:48:48 -07:00
phail
3d37e49c1a add 2 more tests 2022-10-14 15:43:43 +02:00
Paperless-ngx Translation Bot [bot]
d05f803c16 New translations messages.xlf (French)
[ci skip]
2022-10-14 02:11:20 -07:00
Paperless-ngx Translation Bot [bot]
25e2ca5295 New translations messages.xlf (French)
[ci skip]
2022-10-14 01:01:03 -07:00
Michael Shamoon
02e8157fb9 Fix missing loadViewConfig breaks loading saved view 2022-10-13 12:27:41 -07:00
Paperless-ngx Translation Bot [bot]
708cac4683 New translations messages.xlf (German)
[ci skip]
2022-10-13 05:45:07 -07:00
Paperless-ngx Translation Bot [bot]
66d79ccd3f New translations messages.xlf (German)
[ci skip]
2022-10-13 04:41:06 -07:00
phail
261c6fb990 add unittest for get_thumbnail 2022-10-13 01:03:09 +02:00
Paperless-ngx Translation Bot [bot]
9c1195fc59 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-10-12 14:21:46 -07:00
Trenton H
deaf02780e Updates to the new method to set step outputs 2022-10-12 14:04:54 -07:00
Trenton H
5602031b67 Updates to the Docker login v2 action, adds workflow level concurrency 2022-10-12 14:04:54 -07:00
Paperless-ngx Translation Bot [bot]
4c1bf240d6 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-10-12 12:56:10 -07:00
shamoon
b13ced93ed Merge pull request #1745 from paperless-ngx/fix/1743
Bugfix: Fallback to pdf2image if pikepdf fails
2022-10-12 07:38:43 -07:00
shamoon
87472b31d2 Merge pull request #1780 from paperless-ngx/fix/issue-1647
Documentation: Add note re MS exchange servers
2022-10-11 19:59:46 -07:00
shamoon
7f1d01e443 Merge pull request #1777 from paperless-ngx/fix/issue-1776
Fix: creating new storage path on document edit fails to update menu
2022-10-11 19:59:02 -07:00
Michael Shamoon
1024d7e6e2 Add note re MS exchange servers 2022-10-11 15:12:22 -07:00
Trenton Holmes
4cc2976614 Adds specific handling for CCITT Group 4, which pikepdf decodes, but not correctly 2022-10-11 13:51:14 -07:00
Trenton H
caf4b54bc7 In case pikepdf fails to convert an image to a PIL image, fall back to converting pages to PIL images 2022-10-11 13:51:13 -07:00
shamoon
fb2efe5ab8 Merge pull request #1773 from paperless-ngx/library-updates-fixes
Chore: Python library update + test fixes
2022-10-11 13:36:54 -07:00
Michael Shamoon
98f1722d1b Fix slim sidebar close button position
[ci skip]
2022-10-11 12:34:15 -07:00
Michael Shamoon
a6dc8a373e Fix new storagepaths not showing in doc detail 2022-10-11 12:23:15 -07:00
Trenton H
91e96bc88f Bumps tj-actions/changed-files which should resolve the CI warning about Node 12 2022-10-10 14:45:46 -07:00
Trenton H
8c06858807 Updates workflow to clone all history so changed-files can work (probably) 2022-10-10 14:30:55 -07:00
Trenton H
8025df5fe3 Catch the new error raised by redis when it can't find the broker and stub out the call for testing 2022-10-10 14:21:42 -07:00
Trenton H
5aeb656a48 Fixes usage of a depracated logger method 2022-10-10 14:20:19 -07:00
Trenton H
f96ee4f7a0 Updates the pre-commit hooks to ensure alignment with Pipfile 2022-10-10 14:20:19 -07:00
Trenton H
fcdb1dc30c Adds hiredis extra to redis-py and updates everything 2022-10-10 14:16:14 -07:00
Trenton H
dafefa33d6 Adds step to bare metal setup regarding downloading the required NLTK data 2022-10-10 08:58:23 -07:00
Trenton H
d08eb0c66b Adds skipping of NLTK data download if the feature appears disabled 2022-10-10 08:58:23 -07:00
Trenton H
d1a17480ea Account for plusses in the OCR language setting 2022-10-10 08:58:23 -07:00
Trenton H
1e891414a3 Allows disabling NLTK, adds it as a consideration for low power devices 2022-10-10 08:58:23 -07:00
Trenton Holmes
c44c914d3d Changes the NLTK language to be based on the Tesseract OCR language, with fallback to the default processing 2022-10-10 08:58:23 -07:00
Trenton H
d10d2f5a54 Allows configuration of the NLTK processing language 2022-10-10 08:58:23 -07:00
Trenton Holmes
6523cf0c4b Fixes the download and usage of the downloaded data 2022-10-10 08:58:23 -07:00
Trenton Holmes
1262c121f0 Missed one mock 2022-10-10 08:58:23 -07:00
Trenton Holmes
f7cd6974c5 Mock out the nltk portions so the data doesn't need to be downloaded 2022-10-10 08:58:23 -07:00
Trenton Holmes
a7e1ba82d6 Fixes CI unit testing 2022-10-10 08:58:23 -07:00
Trenton Holmes
d856e48045 Updates the pre-processing of document content to be much more robust, with tokenization, stemming and stop word removal 2022-10-10 08:58:23 -07:00
Paperless-ngx Translation Bot [bot]
87972ee7fe New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]
2022-10-10 00:36:14 -07:00
Paperless-ngx Translation Bot [bot]
e6332944ce New translations messages.xlf (Romanian)
[ci skip]
2022-10-10 00:36:13 -07:00
Paperless-ngx Translation Bot [bot]
96d7dc273e New translations messages.xlf (French)
[ci skip]
2022-10-10 00:36:12 -07:00
Paperless-ngx Translation Bot [bot]
4f4a08ccc7 New translations messages.xlf (Spanish)
[ci skip]
2022-10-10 00:36:10 -07:00
Paperless-ngx Translation Bot [bot]
1716a11f45 New translations messages.xlf (Belarusian)
[ci skip]
2022-10-10 00:36:09 -07:00
Paperless-ngx Translation Bot [bot]
9ed0d5f7d6 New translations messages.xlf (Czech)
[ci skip]
2022-10-10 00:36:08 -07:00
Paperless-ngx Translation Bot [bot]
9b461990b7 New translations messages.xlf (Danish)
[ci skip]
2022-10-10 00:36:06 -07:00
Paperless-ngx Translation Bot [bot]
8a47e5b8e4 New translations messages.xlf (Finnish)
[ci skip]
2022-10-10 00:36:05 -07:00
Paperless-ngx Translation Bot [bot]
5f12087779 New translations messages.xlf (Hebrew)
[ci skip]
2022-10-10 00:36:04 -07:00
Paperless-ngx Translation Bot [bot]
8aa9a4db65 New translations messages.xlf (Italian)
[ci skip]
2022-10-10 00:36:02 -07:00
Paperless-ngx Translation Bot [bot]
75a54fab2c New translations messages.xlf (Japanese)
[ci skip]
2022-10-10 00:36:01 -07:00
Paperless-ngx Translation Bot [bot]
085b5eb9f1 New translations messages.xlf (German)
[ci skip]
2022-10-10 00:35:59 -07:00
Paperless-ngx Translation Bot [bot]
543e221d3e New translations messages.xlf (Dutch)
[ci skip]
2022-10-10 00:35:58 -07:00
Paperless-ngx Translation Bot [bot]
e25584a202 New translations messages.xlf (Polish)
[ci skip]
2022-10-10 00:35:55 -07:00
Paperless-ngx Translation Bot [bot]
4c268d5883 New translations messages.xlf (Portuguese)
[ci skip]
2022-10-10 00:35:54 -07:00
Paperless-ngx Translation Bot [bot]
bf8fc3ca29 New translations messages.xlf (Slovenian)
[ci skip]
2022-10-10 00:35:53 -07:00
Paperless-ngx Translation Bot [bot]
65c1b84508 New translations messages.xlf (Swedish)
[ci skip]
2022-10-10 00:35:51 -07:00
Paperless-ngx Translation Bot [bot]
f78ade5007 New translations messages.xlf (Turkish)
[ci skip]
2022-10-10 00:35:50 -07:00
Paperless-ngx Translation Bot [bot]
6f73aef262 New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-10-10 00:35:49 -07:00
Paperless-ngx Translation Bot [bot]
4d715ddfbc New translations messages.xlf (Portuguese, Brazilian)
[ci skip]
2022-10-10 00:35:48 -07:00
Paperless-ngx Translation Bot [bot]
cdf99166f4 New translations messages.xlf (Croatian)
[ci skip]
2022-10-10 00:35:46 -07:00
Paperless-ngx Translation Bot [bot]
fc267472b3 New translations messages.xlf (Luxembourgish)
[ci skip]
2022-10-10 00:35:45 -07:00
Paperless-ngx Translation Bot [bot]
a0fde023f5 New translations messages.xlf (Serbian (Latin))
[ci skip]
2022-10-10 00:35:44 -07:00
Paperless-ngx Translation Bot [bot]
4a98156731 New translations messages.xlf (Norwegian)
[ci skip]
2022-10-10 00:35:43 -07:00
Paperless-ngx Translation Bot [bot]
ecb190d1b8 New translations messages.xlf (Russian)
[ci skip]
2022-10-10 00:35:41 -07:00
Michael Shamoon
14d82bd8ff Update frontend translation strings 2022-10-10 00:19:01 -07:00
shamoon
6f50285f47 Merge pull request #1648 from paperless-ngx/feature-use-celery
Feature: Transition to celery for background tasks
2022-10-10 00:07:55 -07:00
Michael Shamoon
836ab7a9e7 prevent duplicate tourAnchor race condition 2022-10-10 00:07:38 -07:00
Michael Shamoon
06d9e38457 Fix tour / slim sidebar compatibility 2022-10-09 23:58:41 -07:00
shamoon
9aa7e8e37e Merge pull request #1768 from paperless-ngx/chore-update-gotenbreg
Chore: Updates Gotenberg versions
2022-10-09 23:51:04 -07:00
shamoon
fa526dd702 Merge pull request #1644 from paperless-ngx/feature/welcome-tour
Feature: UI Welcome Tour
2022-10-09 23:50:39 -07:00
Michael Shamoon
8325dc5977 Slim sidebar compatibility 2022-10-09 23:48:22 -07:00
Michael Shamoon
abd34d8d17 Fix code style 2022-10-09 23:47:45 -07:00
Michael Shamoon
d19b598371 Add highlighting, move some anchors for visibility 2022-10-09 23:47:45 -07:00
Michael Shamoon
833a301948 Update translation strings for welcome tour 2022-10-09 23:47:45 -07:00
Michael Shamoon
0e03633ed0 fix tour placement issues, basic offerTour method 2022-10-09 23:47:45 -07:00
Michael Shamoon
5e45b1f230 Add admin tour step, remove step titles, cleaner look 2022-10-09 23:47:45 -07:00
Michael Shamoon
07e2329068 Complete welcome tour 2022-10-09 23:47:31 -07:00
Michael Shamoon
4e56fe339e Core welcome tour functionality 2022-10-09 23:46:26 -07:00
shamoon
e7ebc33090 Merge pull request #1641 from paperless-ngx/feature/slim-sidebar
Feature: slim sidebar
2022-10-09 23:24:57 -07:00
Michael Shamoon
3b07e0fe15 Fix merge conflict 2022-10-09 23:24:36 -07:00
Michael Shamoon
a246b3b598 Merge branch 'dev' into feature/slim-sidebar 2022-10-09 23:15:48 -07:00
Trenton Holmes
11ab469a39 Updates a few more instances of the container 2022-10-09 18:03:29 -07:00
Trenton Holmes
694ad53ef9 Updates Gotenberg container to the latest 2022-10-09 17:55:09 -07:00
Trenton Holmes
a3be3bb71a Re-lock pipenv version to the last working version 2022-10-09 17:43:58 -07:00
Trenton Holmes
77b3aa5011 Fixes is_relative_to not being availible for 3.8 2022-10-09 17:43:58 -07:00
Trenton Holmes
9aefff38e7 If the original file containing a barcode was in the temporary scratch dir, move the split files to consume dir 2022-10-09 17:43:58 -07:00
shamoon
462b243531 Merge pull request #1754 from NiFNi/feature/change-default-matching-algo
change default matching algo to auto and move to constant
2022-10-08 09:35:30 -07:00
shamoon
430c5c3b87 Merge pull request #1761 from paperless-ngx/docs/lsio-tweak
Documentation: Tweak LinuxServer
2022-10-07 23:45:51 -07:00
Trenton H
97ceb1a8a6 Enable some testing against a real email server to hopefully catch things earlier 2022-10-07 18:28:11 -07:00
Trenton H
55089aab32 Fixes handling of gmail label extension to IMAP 2022-10-07 18:28:11 -07:00
Trenton Holmes
b7c335507f Fixes the LSIO migration setting for the media root 2022-10-07 18:18:47 -07:00
Trenton Holmes
9c0c734b34 Enables some basic live testing against a tika server with actual sample documents to catch some more errors mocking won't catch 2022-10-07 18:06:06 -07:00
Michael Shamoon
7f5a3ca1a3 Fix code style 2022-10-07 06:29:31 -07:00
shamoon
0b5c6d3532 Merge pull request #1731 from paperless-ngx/fix/1624
Documentation: Adds troubleshooting note about Kubernetes and ports
2022-10-06 13:22:58 -07:00
shamoon
5357775d42 Merge pull request #1692 from paperless-ngx/feature-frontend-update-checking
Feature: frontend update checking settings
2022-10-05 13:46:32 -07:00
Trenton H
0f25260163 Updates to qpdf 11.1.1, pikepdf 6.1.0, and a few other updates 2022-10-05 10:03:40 -07:00
shamoon
964cfcd4fb Merge pull request #1744 from paperless-ngx/fix/issue-1725
Fix: allow preview for .csv files
2022-10-04 13:16:18 -07:00
Michael Shamoon
c42388f7e2 Use text mime type for csv files for browser preview
Co-Authored-By: Trenton H <797416+stumpylog@users.noreply.github.com>
Co-Authored-By: bin101 <12427722+bin101@users.noreply.github.com>
2022-10-04 13:01:06 -07:00
Trenton H
ff7d4d15cd Fixes migration error if some tasks are defined already 2022-10-04 07:56:40 -07:00
shamoon
5e4a9311ed Merge branch 'dev' into feature-use-celery 2022-10-03 18:00:54 -07:00
shamoon
4e07280102 Merge pull request #1642 from paperless-ngx/feature-qpdf-11
Feature: Upgrade to qpdf 11, pikepdf 6 & ocrmypdf 14
2022-10-03 17:36:30 -07:00
shamoon
fdac108cab Merge pull request #1733 from paperless-ngx/docs-lsio-migrate
Documentation: LinuxServer.io Migration
2022-10-03 17:07:06 -07:00
dependabot[bot]
318f74b34a Bump myst-parser from 0.18.0 to 0.18.1
Bumps [myst-parser](https://github.com/executablebooks/MyST-Parser) from 0.18.0 to 0.18.1.
- [Release notes](https://github.com/executablebooks/MyST-Parser/releases)
- [Changelog](https://github.com/executablebooks/MyST-Parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/executablebooks/MyST-Parser/compare/v0.18.0...v0.18.1)

---
updated-dependencies:
- dependency-name: myst-parser
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 15:51:43 -07:00
Trenton H
788b3a5ba8 Fixes django-q still in the Pipfile.lock 2022-10-03 13:35:01 -07:00
Trenton H
19d4b85961 Fixes up some issues with the migrations and type mismatches 2022-10-03 13:18:25 -07:00
Trenton H
821c14fbce Corrects how the link to example compose files looks 2022-10-03 11:14:18 -07:00
Trenton H
8c03d9c638 Corrects a re-numbered step 2022-10-03 11:11:51 -07:00
Trenton H
174a609449 Adds a few steps for migration from the LinuxServer.io image 2022-10-03 10:16:53 -07:00
Trenton H
5fd394726e Adds troubleshooting note for Kubernetes about needing to set the port again 2022-10-03 09:01:07 -07:00
Michael Shamoon
1f27f7c12d Update paperless-document.ts 2022-10-03 00:27:57 -07:00
Jens van Almsick
ad6ef7314b fix: csv recognition by consumer
paperless-ngx detects the file format via the mime-type based on the response of python-magic which rely on the response of the file command.
In version 5.39 (which is shipped with debian bullseye and I think many more non-rolling distributions) of the file command a *.csv will be detected as "application/csv" instead of "text/csv" as in newer versions.
2022-10-02 16:09:07 -07:00
Paperless-ngx Translation Bot [bot]
98c306a315 New translations messages.xlf (German)
[ci skip]
2022-10-02 13:21:13 -07:00
Michael Shamoon
11ad8ada79 add id to document duplicate error message 2022-10-02 10:27:45 -07:00
Trenton Holmes
905b28c1d7 When a document is a duplicate, include the title of the existing document in the fail message 2022-10-02 10:27:45 -07:00
dependabot[bot]
84b01b2e4e Bump leonsteinhaeuser/project-beta-automations from 1.3.0 to 2.0.1
Bumps [leonsteinhaeuser/project-beta-automations](https://github.com/leonsteinhaeuser/project-beta-automations) from 1.3.0 to 2.0.1.
- [Release notes](https://github.com/leonsteinhaeuser/project-beta-automations/releases)
- [Commits](https://github.com/leonsteinhaeuser/project-beta-automations/compare/v1.3.0...v2.0.1)

---
updated-dependencies:
- dependency-name: leonsteinhaeuser/project-beta-automations
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 10:27:02 -07:00
dependabot[bot]
5e9928e58b Bump tj-actions/changed-files from 29.0.2 to 31.0.2
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 29.0.2 to 31.0.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v29.0.2...v31.0.2)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 10:26:39 -07:00
dependabot[bot]
0457259e7e Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 10:26:21 -07:00
dependabot[bot]
1f73a6913f Bump actions/setup-python from 3 to 4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 10:25:49 -07:00
dependabot[bot]
b29593bad9 Merge pull request #1720 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/rxjs-7.5.7 2022-10-02 07:05:45 +00:00
dependabot[bot]
bd378f79f4 Bump rxjs from 7.5.6 to 7.5.7 in /src-ui
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.5.6 to 7.5.7.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.5.6...7.5.7)

---
updated-dependencies:
- dependency-name: rxjs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 06:52:18 +00:00
shamoon
699ed62af4 Merge pull request #1716 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/uuid-9.0.0
Bump uuid from 8.3.2 to 9.0.0 in /src-ui
2022-10-01 23:51:18 -07:00
dependabot[bot]
d6ae4102b4 Bump uuid from 8.3.2 to 9.0.0 in /src-ui
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.3.2 to 9.0.0.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v8.3.2...v9.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 06:49:30 +00:00
shamoon
97eed9c66d Merge pull request #1717 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ng2-pdf-viewer-9.1.2
Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui
2022-10-01 23:47:35 -07:00
dependabot[bot]
b79a560816 Bump ng2-pdf-viewer from 9.1.0 to 9.1.2 in /src-ui
Bumps [ng2-pdf-viewer](https://github.com/VadimDez/ng2-pdf-viewer) from 9.1.0 to 9.1.2.
- [Release notes](https://github.com/VadimDez/ng2-pdf-viewer/releases)
- [Changelog](https://github.com/VadimDez/ng2-pdf-viewer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/VadimDez/ng2-pdf-viewer/compare/9.1.0...9.1.2)

---
updated-dependencies:
- dependency-name: ng2-pdf-viewer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 06:25:59 +00:00
shamoon
a6045bb8e8 Merge pull request #1715 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-color-8.0.3
Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui
2022-10-01 23:25:00 -07:00
shamoon
9f770e42ba Merge pull request #1719 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.4.0
Bump concurrently from 7.3.0 to 7.4.0 in /src-ui
2022-10-01 20:03:53 -07:00
dependabot[bot]
b20fe9f09b Bump concurrently from 7.3.0 to 7.4.0 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 02:41:50 +00:00
dependabot[bot]
48dbdc6c00 Merge pull request #1718 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.7.23 2022-10-02 02:40:34 +00:00
dependabot[bot]
d33f993809 Bump @types/node from 18.7.14 to 18.7.23 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.7.14 to 18.7.23.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 02:22:40 +00:00
dependabot[bot]
8ba44b3f71 Bump ngx-color from 8.0.2 to 8.0.3 in /src-ui
Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 8.0.2 to 8.0.3.
- [Release notes](https://github.com/scttcper/ngx-color/releases)
- [Commits](https://github.com/scttcper/ngx-color/compare/v8.0.2...v8.0.3)

---
updated-dependencies:
- dependency-name: ngx-color
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 02:22:20 +00:00
shamoon
83e0a6e179 Merge pull request #1714 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-29.1.2
Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui
2022-10-01 19:20:36 -07:00
dependabot[bot]
8e2c4da55e Bump jest-environment-jsdom from 29.0.1 to 29.1.2 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 29.0.1 to 29.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.1.2/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 01:09:49 +00:00
dependabot[bot]
cae79e0555 Merge pull request #1708 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/compiler-14.2.4 2022-10-02 00:51:27 +00:00
Michael Shamoon
5b79aec065 Update @angular/cli @angular/core 2022-10-01 17:36:08 -07:00
dependabot[bot]
91de061c06 Bump @angular/compiler from 14.2.0 to 14.2.4 in /src-ui
Bumps [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) from 14.2.0 to 14.2.4.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/14.2.4/packages/compiler)

---
updated-dependencies:
- dependency-name: "@angular/compiler"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 17:35:34 -07:00
shamoon
f7d6f0bf21 Merge pull request #1707 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.9.0
Bump cypress from 10.7.0 to 10.9.0 in /src-ui
2022-10-01 17:28:55 -07:00
dependabot[bot]
551c765358 Bump cypress from 10.7.0 to 10.9.0 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.7.0 to 10.9.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.7.0...v10.9.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 00:10:16 +00:00
shamoon
34ee26084d Merge pull request #1710 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/bootstrap-5.2.1
Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui
2022-10-01 17:09:22 -07:00
dependabot[bot]
47a76412e2 Bump bootstrap from 5.2.0 to 5.2.1 in /src-ui
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.2.0...v5.2.1)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-02 00:03:12 +00:00
shamoon
45e6a419b3 Merge pull request #1706 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/typescript-4.8.4
Bump typescript from 4.7.4 to 4.8.4 in /src-ui
2022-10-01 16:11:17 -07:00
dependabot[bot]
c34f982496 Bump typescript from 4.7.4 to 4.8.4 in /src-ui
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.7.4 to 4.8.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.7.4...v4.8.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-01 20:07:21 +00:00
Michael Shamoon
f26fda9485 Fix python + frontend tests 2022-09-30 18:32:21 -07:00
Michael Shamoon
06a29cd45c Handle settings live refresh, unsubscribe subscriptions 2022-09-30 15:39:02 -07:00
Michael Shamoon
98ab770437 Update documentation re. PAPERLESS_ENABLE_UPDATE_CHECK 2022-09-30 15:10:52 -07:00
Michael Shamoon
c87f60c605 Better migration of update checking settings, offer reload, strip backend_setting from db 2022-09-30 14:03:59 -07:00
Michael Shamoon
9e2430da46 Frontend update checking settings 2022-09-30 12:30:23 -07:00
Paperless-ngx Translation Bot [bot]
f59abadbc4 New translations messages.xlf (Russian)
[ci skip]
2022-09-30 10:20:29 -07:00
Paperless-ngx Translation Bot [bot]
4a3a55b923 New translations messages.xlf (Russian)
[ci skip]
2022-09-30 07:56:26 -07:00
Paperless-ngx Translation Bot [bot]
9bd031fbd7 New translations messages.xlf (Russian)
[ci skip]
2022-09-30 06:55:45 -07:00
Trenton H
436f9e891e Changes MariaDB encoding to use utf8mb4 2022-09-29 13:53:44 -07:00
Michael Shamoon
04faa10e3b Update references to qcluster t celery 2022-09-28 20:13:19 -07:00
Trenton Holmes
38ba1d1a52 Cleans up and documnets installation on bare metal, includes systemd service file for the celery and celery beat 2022-09-28 19:38:41 -07:00
Trenton H
4422bb3f69 Fix logger location tag
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-09-28 11:02:34 -07:00
Trenton H
5b66ef0a74 Updates how task_args and task_kwargs are parsed, adds testing to cover everything I can think of 2022-09-28 10:40:55 -07:00
shamoon
5639659b63 Merge pull request #1683 from paperless-ngx/fix/issue-1660
Mariadb compose files should use `PAPERLESS_DBPASS`
2022-09-28 09:48:20 -07:00
Michael Shamoon
7ba9cdbe23 Mariadb compose files should use PAPERLESS_DBPASS 2022-09-28 09:38:13 -07:00
Michael Shamoon
6f6f006704 re-enable frontend tests and fix tasks fixture 2022-09-27 21:01:16 -07:00
Michael Shamoon
4fe37f6aee Add related_document and direct link from task UI 2022-09-27 20:50:26 -07:00
Michael Shamoon
5162bdd404 Filter out old migrated tasks 2022-09-27 19:41:23 -07:00
Michael Shamoon
c8f252d165 Add document name & error result parsing to PaperlessTask serializer 2022-09-27 19:40:24 -07:00
Michael Shamoon
c289439cab Fix tab ids & date parsing 2022-09-27 17:56:04 -07:00
shamoon
807b7130e5 Merge pull request #1671 from paperless-ngx/v1.9.2-changelog
[Documentation] Add v1.9.2 changelog
2022-09-27 16:50:23 -07:00
Trenton H
14b6216b49 Ensures all existing one to one fields are nulled before altering the field 2022-09-27 14:17:42 -07:00
Trenton H
9188e25dc5 Fixes migration order back to the right way 2022-09-27 13:55:31 -07:00
Trenton H
fad1b03458 Finalizes what the PaperlessTask will look like to the frontend 2022-09-27 12:44:01 -07:00
Michael Shamoon
49054c61a4 Add failed tasks badge, better animation 2022-09-27 11:00:02 -07:00
Michael Shamoon
e2d593c023 Fix formatting, add note about 1.9.1 version string 2022-09-27 10:04:41 -07:00
github-actions
7455963124 Changelog - GHA 2022-09-27 17:01:37 +00:00
Michael Shamoon
6771e57fca Merge branch 'main' into dev 2022-09-27 09:36:39 -07:00
Michael Shamoon
9d117ee11b Merge pull request #1666 from paperless-ngx/fix/1664 2022-09-27 09:34:34 -07:00
shamoon
7d4b2c2413 Merge pull request #1670 from paperless-ngx/fix/issue-1667
Bugfix: Allow PAPERLESS_OCR_CLEAN=none
2022-09-27 09:29:49 -07:00
Michael Shamoon
5bb1824613 Allow PAPERLESS_OCR_CLEAN=none 2022-09-27 08:48:04 -07:00
Trenton H
8c07b76e6a Bumps version numbers to 1.9.2 2022-09-27 08:06:35 -07:00
shamoon
8cb58b4ff8 Merge pull request #1650 from paperless-ngx/fix/changelog-formatting
Chore: Ensure the generated changelog is formatted
2022-09-26 16:02:47 -07:00
shamoon
426178b6e5 Merge pull request #1649 from paperless-ngx/v1.9.1-changelog 2022-09-26 13:03:29 -07:00
Trenton H
07ec74a5d6 Runs the pre-commit hooks against the changelog before committing it 2022-09-26 12:12:57 -07:00
Trenton H
a865f2af7d Fixes changelog linting 2022-09-26 12:06:42 -07:00
github-actions
3409d19139 Changelog - GHA 2022-09-26 19:04:29 +00:00
Trenton H
71b4571524 Merge branch 'main' into dev 2022-09-26 11:31:18 -07:00
Trenton Holmes
9247300230 Transitions the backend to celery and celery beat 2022-09-26 11:25:34 -07:00
Trenton H
8967f07c8d Fixes a missing option for OCR mode and incorrect clean mode 2022-09-26 11:05:19 -07:00
shamoon
6e21d3dbee Merge pull request #1646 from paperless-ngx/fix/reset-button-padding
Fix reset button padding on small screens
2022-09-26 11:03:52 -07:00
Michael Shamoon
45b3422506 Fix reset button padding on small screens 2022-09-26 10:55:22 -07:00
Trenton H
e5de658e78 Updates to qpdf 11.1, pikepdf 6 and OCRMyPDF 14 2022-09-26 09:49:03 -07:00
Michael Shamoon
e0f93c26d6 Nicer slim sidebar transitioning, dark mode fixes, fix tests by making settings taller 2022-09-26 09:33:05 -07:00
Trenton H
df7e4d85c6 Fixes the linting issue 2022-09-26 09:15:22 -07:00
janis-ax
ae736f8f68 Update docs/advanced_usage.rst
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-09-26 09:06:36 -07:00
janis-ax
e2674c29a6 Improve docs with exampe
Filename ending comes automatically
2022-09-26 09:06:36 -07:00
Michael Shamoon
aa55162e2e Settings UI with live updating 2022-09-26 09:05:53 -07:00
Michael Shamoon
1330390b4f slim sidebar with doc list adjusting 2022-09-26 09:05:53 -07:00
Michael Shamoon
617055fca7 Save slimsidebar settings to db on change 2022-09-26 09:05:53 -07:00
shamoon
185b352264 Merge pull request #1640 from paperless-ngx/feature-combo-deps-update
Chore: Python dependencies update
2022-09-26 09:04:45 -07:00
shamoon
58afac2312 Merge pull request #1639 from paperless-ngx/v1.9.0-changelog
[Documentation] Add v1.9.0 changelog
2022-09-26 08:49:43 -07:00
Trenton H
ea60b83336 Fixes missing markdown text from a PR title 2022-09-26 08:44:42 -07:00
Trenton Holmes
05a00b3057 Updates Python deps all at once 2022-09-26 08:26:55 -07:00
github-actions
09139fe434 Changelog - GHA 2022-09-26 15:24:50 +00:00
Michael Shamoon
d003d26a67 Update environment.prod.ts 2022-09-26 07:56:05 -07:00
Michael Shamoon
ef2789cf57 Merge branch 'main' into dev 2022-09-26 07:55:49 -07:00
Michael Shamoon
7d4ce40a37 v1.9.0 2022-09-26 07:54:10 -07:00
shamoon
8feada6907 Merge pull request #1560 from paperless-ngx/beta
[Beta] Paperless-ngx v1.9.0 Release Candidate
2022-09-26 07:53:16 -07:00
Paperless-ngx Translation Bot [bot]
ed9b0c32d8 New Crowdin updates (#1633)
* bugfix: increase delay

partially reverts 86358d5561
re-implements 4fbabe43ea

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
Co-authored-by: Florian Brandes <florian.brandes@posteo.de>
2022-09-26 07:52:44 -07:00
Felix E
8088394d16 Merge pull request #1629 from paperless-ngx/feature-better-pipenv-docker
Chore: Moves pipenv into its own Docker stage
2022-09-25 09:54:40 +02:00
Trenton Holmes
cb2823ff45 Moves the pipenv generation of requirements.txt into a seperate build stage, disconnecting the main image from its dependencies 2022-09-21 09:43:40 -07:00
lemmi
27906df149 paperless_cmd.sh: use exec to run supervisord
Without exec, signals aren't passed through properly. Stopping the
container won't have any effect unless killed.

closes #1616
2022-09-20 07:23:04 -07:00
Paperless-ngx Translation Bot [bot]
b8e7f0b45f New Crowdin updates (#1607)
* bugfix: increase delay

partially reverts 86358d5561
re-implements 4fbabe43ea

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>

* New translations messages.xlf (Finnish) [ci skip]

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
Co-authored-by: Florian Brandes <florian.brandes@posteo.de>
2022-09-16 15:45:17 -07:00
Trenton H
355b3fcb3d Fixes grammar in comment
Co-authored-by: Florian <florian.brandes@posteo.de>
2022-09-16 09:08:16 -07:00
Trenton Holmes
7aa0e5650b Updates how barcodes are detected, using pikepdf images, instead of converting each page to an image 2022-09-16 09:08:16 -07:00
Paperless-ngx Translation Bot [bot]
f9a0adc64e New Crowdin updates (#1580)
* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]
2022-09-16 08:37:07 -07:00
shamoon
3b34aed64f Merge pull request #1605 from paperless-ngx/fix/1599-consume-permissions
Fix: Consume directory permissions were not updated
2022-09-16 08:31:41 -07:00
Florian Brandes
8a8edfb108 bugfix: increase delay
partially reverts 86358d5561
re-implements 4fbabe43ea

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-09-16 08:00:26 -07:00
Trenton H
3a7cbd3a42 Fixes an issue where the consume directory wasn't included in the permissions fix at Docker entry 2022-09-16 07:52:33 -07:00
Trenton H
0e443ba017 Merge pull request #1596 from paperless-ngx/fix/1590-barcodes
Fix: Double barcode separation creates empty file
2022-09-15 14:18:01 -07:00
shamoon
8ed401aec1 Merge pull request #1591 from paperless-ngx/fix/1583-tika-str
Fix: Parsing Tika documents fails with AttributeError
2022-09-14 21:52:49 -07:00
Trenton Holmes
9ae847039b Fixes the seperation of files by barcode, during the case where 2 barcodes appear back to back 2022-09-14 14:00:37 -07:00
Trenton Holmes
d4cb84ff76 Ensure the tika parse function gets a string, not a PathLike 2022-09-14 07:48:12 -07:00
shamoon
17ae2aacbf Merge pull request #1576 from paperless-ngx/fix/slow-classifier
Fix: Resolve issue with slow classifier
2022-09-13 11:57:58 -07:00
Michael Shamoon
82d03f2dc6 fix tag list vertical space 2022-09-13 11:54:25 -07:00
Trenton Holmes
3cf2aaf8ff Locks numpy version until an upstream fix or resolution to aarch64 classifier slowdown 2022-09-13 10:33:07 -07:00
shamoon
0c89721133 Merge pull request #1567 from paperless-ngx/feature-process-names
Feature: Display django-q process names
2022-09-12 12:21:49 -07:00
Trenton H
e206687070 Updates django-q and add optional setproctitle to allow display 2022-09-12 12:18:41 -07:00
Trenton Holmes
cdb9c48545 Minor logging updates 2022-09-12 11:44:33 -07:00
Trenton Holmes
0b8eff9643 Extends the cleanup of image versions to the library images and all the registry cache images as well 2022-09-12 11:44:33 -07:00
shamoon
16882b8fa9 Merge pull request #1566 from paperless-ngx/fix/issue-1564
Fix document comments not updating on document navigation
2022-09-12 11:37:30 -07:00
Michael Shamoon
2afa5940e3 Fix live updating of comments on doc change 2022-09-12 08:35:13 -07:00
Michael Shamoon
8fa7bc3dab Remove user dropdown border 2022-09-12 08:35:04 -07:00
Michael Shamoon
4a9dc1e33a Update messages.xlf 2022-09-11 20:47:47 -07:00
Trenton Holmes
b0d842a370 Updates version string to 1.9.0-rc1
Signed-off-by: Trenton Holmes <holmes.trenton@gmail.com>
2022-09-11 15:34:10 -07:00
Trenton Holmes
194dda6d84 Merge branch 'main' into beta 2022-09-11 15:12:54 -07:00
Paperless-ngx Translation Bot [bot]
3267708097 New Crowdin updates (#1295)
Squashed commit of Crowdin updates

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-09-11 15:04:55 -07:00
shamoon
71a808c95a Merge pull request #543 from bckelly1/feature-mariadb-support
Feature: Add MariaDB support
2022-09-11 08:50:27 -07:00
Trenton Holmes
2c3c26edf1 Ensures the Pipfile.lock hash is up to date 2022-09-11 08:20:58 -07:00
Trenton Holmes
18a4ba7778 Removes optipng, added in a bad merge 2022-09-11 07:42:20 -07:00
Trenton Holmes
140e239bdb Fixes the shellcheck issues 2022-09-11 07:42:20 -07:00
Trenton Holmes
537e7c63f4 Combines the two database folders to a single variable during installation 2022-09-11 07:42:20 -07:00
Trenton Holmes
ed2e884de8 Fully qualifies the image and updates to Redis 7 2022-09-11 07:42:20 -07:00
Trenton Holmes
60980cb26a Adds the mysql Python dependency 2022-09-11 07:42:19 -07:00
Brian Kelly
3b84e34c8e re-order apt dependencies 2022-09-11 07:40:32 -07:00
Brian Kelly
ebdf9b55df correct the mariadb volume data path 2022-09-11 07:40:32 -07:00
Brian Kelly
f528b01de4 set paperless db user 2022-09-11 07:40:32 -07:00
Brian Kelly
6ae9a8f2be remove debug image reference 2022-09-11 07:40:32 -07:00
Brian Kelly
65cfd55027 rebase mariadb feature onto dev 2022-09-11 07:40:31 -07:00
Michael Shamoon
15d074d39c Include storage path in exporter + tests 2022-09-11 07:39:35 -07:00
shamoon
962d0ebb40 Merge pull request #1551 from paperless-ngx/chore-settings-cleanup
Chore: Cleanup and validate settings
2022-09-10 20:04:35 -07:00
Trenton Holmes
d408900a91 Adds validation and testing to cover some of the common settings 2022-09-09 11:48:57 -07:00
Trenton Holmes
0bf9e55ca7 Fixes a minor TODO in settings, and enables flake8 for settings.py 2022-09-09 11:42:50 -07:00
dependabot[bot]
55d36b39b1 Bump pikepdf from 5.5.0 to 5.6.1
Bumps [pikepdf](https://github.com/pikepdf/pikepdf) from 5.5.0 to 5.6.1.
- [Release notes](https://github.com/pikepdf/pikepdf/releases)
- [Commits](https://github.com/pikepdf/pikepdf/compare/v5.5.0...v5.6.1)

---
updated-dependencies:
- dependency-name: pikepdf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-08 07:51:11 -07:00
Trenton Holmes
45fd01a688 Decrease the final size of the images containing .deb and .whl files 2022-09-08 07:31:00 -07:00
dependabot[bot]
1fda0782ae Bump black from 22.6.0 to 22.8.0
Bumps [black](https://github.com/psf/black) from 22.6.0 to 22.8.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/22.6.0...22.8.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-07 09:33:36 -07:00
dependabot[bot]
2680a83455 Bump tqdm from 4.64.0 to 4.64.1
Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.64.0 to 4.64.1.
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.64.0...v4.64.1)

---
updated-dependencies:
- dependency-name: tqdm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-07 09:05:32 -07:00
dependabot[bot]
148e875523 Bump pytest from 7.1.2 to 7.1.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.2 to 7.1.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.2...7.1.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-07 07:57:41 -07:00
shamoon
b9e60e0145 Merge pull request #1528 from erikarvstedt/docs-fix-variable-defaults
docs/configuration: Fix binary variable defaults
2022-09-06 14:22:23 -07:00
Erik Arvstedt
03559454f6 docs/configuration: Fix binary variable defaults 2022-09-04 15:21:49 +02:00
dependabot[bot]
50ee1c0bd5 Bump tj-actions/changed-files from 24 to 29.0.2
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 24 to 29.0.2.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v24...v29.0.2)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-03 18:35:51 -07:00
shamoon
c6b13271cf Merge pull request #1500 from paperless-ngx/feature-gunicorn-tune
Bugfix: Better gunicorn settings for workers
2022-09-02 18:01:47 -07:00
dependabot[bot]
fd83e8f2a9 Merge pull request #1502 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.2.1 2022-09-02 08:40:58 +00:00
Michael Shamoon
5f7c724531 update jest-preset-angular 2022-09-02 01:26:05 -07:00
Michael Shamoon
31ebe2675b update angular core 2022-09-02 01:25:39 -07:00
Michael Shamoon
60d40cc2ce update angular cli 2022-09-02 01:24:14 -07:00
dependabot[bot]
6796cdf947 Bump @angular/cli from 14.1.0 to 14.2.1 in /src-ui
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 14.1.0 to 14.2.1.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/14.1.0...14.2.1)

---
updated-dependencies:
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 08:15:36 +00:00
shamoon
6592a925c4 Merge pull request #1507 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-29.0.1
Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui
2022-09-02 01:03:23 -07:00
dependabot[bot]
6d42b2a29d Bump jest-environment-jsdom from 28.1.3 to 29.0.1 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.3 to 29.0.1.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.0.1/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 07:41:29 +00:00
shamoon
6b4dccfbd5 Merge pull request #1506 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.7.14
Bump @types/node from 18.6.3 to 18.7.14 in /src-ui
2022-09-02 00:40:15 -07:00
dependabot[bot]
2582d325bc Bump @types/node from 18.6.3 to 18.7.14 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.6.3 to 18.7.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 07:39:49 +00:00
shamoon
078814e77a Merge pull request #1505 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular-builders/jest-14.0.1
Bump @angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui
2022-09-02 00:35:49 -07:00
dependabot[bot]
a80b413d38 Bump @angular-builders/jest from 14.0.0 to 14.0.1 in /src-ui
Bumps [@angular-builders/jest](https://github.com/just-jeb/angular-builders/tree/HEAD/packages/jest) from 14.0.0 to 14.0.1.
- [Release notes](https://github.com/just-jeb/angular-builders/releases)
- [Changelog](https://github.com/just-jeb/angular-builders/blob/master/packages/jest/CHANGELOG.md)
- [Commits](https://github.com/just-jeb/angular-builders/commits/@angular-builders/jest@14.0.1/packages/jest)

---
updated-dependencies:
- dependency-name: "@angular-builders/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 07:33:26 +00:00
shamoon
8cb93da53e Merge pull request #1504 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/zone.js-0.11.8
Bump zone.js from 0.11.7 to 0.11.8 in /src-ui
2022-09-02 00:32:20 -07:00
dependabot[bot]
299ae2b828 Bump zone.js from 0.11.7 to 0.11.8 in /src-ui
Bumps [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) from 0.11.7 to 0.11.8.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/zone.js-0.11.8/packages/zone.js)

---
updated-dependencies:
- dependency-name: zone.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 07:30:09 +00:00
shamoon
96cf316eec Merge pull request #1494 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-color-8.0.2
Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui
2022-09-02 00:17:09 -07:00
dependabot[bot]
4aebb8e153 Bump ngx-color from 8.0.1 to 8.0.2 in /src-ui
Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/scttcper/ngx-color/releases)
- [Commits](https://github.com/scttcper/ngx-color/compare/v8.0.1...v8.0.2)

---
updated-dependencies:
- dependency-name: ngx-color
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 07:02:45 +00:00
shamoon
82c6942f09 Merge pull request #1496 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.7.0
Bump cypress from 10.3.1 to 10.7.0 in /src-ui
2022-09-02 00:01:35 -07:00
dependabot[bot]
ff280f0309 Bump cypress from 10.3.1 to 10.7.0 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.1 to 10.7.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.3.1...v10.7.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-02 06:53:44 +00:00
shamoon
06d15a11c8 Merge pull request #1495 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress/schematic-2.1.1
Bump @cypress/schematic from 2.0.0 to 2.1.1 in /src-ui
2022-09-01 23:52:39 -07:00
shamoon
4b3649ea94 Merge pull request #1498 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/popperjs/core-2.11.6
Bump @popperjs/core from 2.11.5 to 2.11.6 in /src-ui
2022-09-01 23:41:01 -07:00
Trenton Holmes
5ffb25b71d Tweaks gunicorn to preload the app and use shared memory for temporary fs 2022-09-01 18:04:12 -07:00
dependabot[bot]
8b28159e2d Bump @popperjs/core from 2.11.5 to 2.11.6 in /src-ui
Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.11.5 to 2.11.6.
- [Release notes](https://github.com/popperjs/popper-core/releases)
- [Commits](https://github.com/popperjs/popper-core/compare/v2.11.5...v2.11.6)

---
updated-dependencies:
- dependency-name: "@popperjs/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 20:12:56 +00:00
dependabot[bot]
99d6103617 Bump @cypress/schematic from 2.0.0 to 2.1.1 in /src-ui
Bumps [@cypress/schematic](https://github.com/cypress-io/cypress) from 2.0.0 to 2.1.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/@cypress/schematic-v2.0.0...@cypress/schematic-v2.1.1)

---
updated-dependencies:
- dependency-name: "@cypress/schematic"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 20:09:45 +00:00
shamoon
a502fe7c5c Merge pull request #1492 from paperless-ngx/feature-imap-utf-improve
Feature: Simplify IMAP login for UTF-8
2022-09-01 09:35:26 -07:00
Trenton Holmes
bd18a57a5d Updates imap_tools and updates to use the new login method for UTF-8 2022-09-01 08:54:44 -07:00
viktor-c
3828d712bd Info about installing on subpath (#1350)
* Update docker-compose.env

* Update configuration.rst

example.com/paperless is not a subdomain, but a subpath. Also when hosting from a subdomain like paperless.example.com one does not have to change anything in the configuration, it just works, because paperless expects to be hosted at root, i.e. paperless.example.com
This however changes when paperless is not hosted at root anymore but for example at paperless.example.com/paperlessNgx

* Update docker-compose.env

* Apply suggestions from code review

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-08-31 16:36:13 -07:00
Quinn Casey
a6be010464 Merge pull request #1488 from paperless-ngx/fix/tasks-table-actions
Fix actions button in tasks table
2022-08-31 16:18:13 -07:00
Michael Shamoon
efe51b30fe Fix actions button in tasks table 2022-08-31 12:39:56 -07:00
Felix E
26019b9c17 Merge pull request #1482 from paperless-ngx/move-scanners-to-wiki
Docs: move scanner & software recs to GH wiki
2022-08-31 19:28:03 +02:00
Michael Shamoon
ebdd7afb67 Move scanner & software recs to GH wiki 2022-08-30 22:14:07 -07:00
Felix E
0c90b84a92 Merge pull request #1467 from tooomm/patch-1
Docs: Update mobile scanner section
2022-08-28 10:29:15 +02:00
tooomm
9c2265d1aa update mobile scanner section 2022-08-27 18:03:54 +02:00
Quinn Casey
8046a6f3a7 Merge pull request #1463 from paperless-ngx/fix/issue-1462
Fix: Add missing filter rule types to SavedViewFilterRule model & fix migrations
2022-08-26 12:35:29 -07:00
Michael Shamoon
ddff902291 Fix 1023, 1024 migrations, add savedviewfilterrule migration 2022-08-26 10:02:48 -07:00
Michael Shamoon
a406920ae6 Add missing filter rule types to SavedViewFilterRule model
And add note to filter-rule-type.ts
2022-08-26 10:02:48 -07:00
Quinn Casey
44e596b0c4 Merge pull request #1451 from paperless-ngx/feature-better-redo-ocr
Feature: Even better re-do of OCR
2022-08-25 17:01:54 -07:00
shamoon
2b1c8c8d9a Merge pull request #1375 from tim-vogel/add_comments
Feature: document comments
2022-08-25 11:48:31 -07:00
shamoon
d40c13420d Merge pull request #1367 from Eckii24/feat/date-suggestions
Adding date suggestions to the documents details view
2022-08-25 11:47:37 -07:00
Trenton Holmes
8ad2f7daf0 Locks scipy to 1.8.1, allows some other minor version updates 2022-08-25 11:34:00 -07:00
shamoon
696ebf545f Revert "Bump sphinx from 5.0.2 to 5.1.1" 2022-08-25 11:34:00 -07:00
Quinn Casey
ed515f4e36 Merge pull request #1460 from paperless-ngx/fix/paperless-conf-typo
Fix paperless.conf.example typo
2022-08-25 08:39:53 -07:00
Quinn Casey
06a4949266 Fix minor duplicate/incorrect conf key 2022-08-25 08:36:48 -07:00
shamoon
f50a01e118 Merge pull request #1297 from paperless-ngx/dependabot/pip/dev/sphinx-5.1.1
Bump sphinx from 5.0.2 to 5.1.1
2022-08-25 08:33:40 -07:00
shamoon
09512be1ad Merge pull request #1301 from paperless-ngx/fix-release-drafter
[CI] Fix release drafter issues
2022-08-25 08:25:28 -07:00
shamoon
bb951ad860 Merge pull request #1421 from paperless-ngx/feature-consumer-event-driven
Feature: Event driven consumer
2022-08-25 08:16:47 -07:00
Michael Shamoon
858ae909e8 Default PAPERLESS_NUMBER_OF_SUGGESTED_DATES to 3 2022-08-25 08:03:38 -07:00
Quinn Casey
1692bac3fe Merge pull request #1442 from paperless-ngx/fix/skip-archive-still-archiving
Bugfix: Fixes the creation of an archive file, even if noarchive was specified
2022-08-25 06:23:10 -07:00
Michael Shamoon
cce1595c3d Fix CodeQL warnings 2022-08-24 14:24:10 -07:00
Trenton Holmes
67bb140eef Finalizes testing of the delete comment 2022-08-24 14:24:10 -07:00
Trenton Holmes
6d5d308d6c Starts on implementing tests for the new API 2022-08-24 14:24:10 -07:00
Trenton Holmes
d39b4ae8cb Merges the migration branches 2022-08-24 14:24:10 -07:00
Michael Shamoon
0f4b118b61 Basic verification of Comment export & exporter comment tuple fix
From oprhaned commits b1855a4b7a
53f21574fd

Co-Authored-By: Trenton Holmes <797416+stumpylog@users.noreply.github.com>
2022-08-24 14:24:10 -07:00
Michael Shamoon
f5f2240828 Add frontend tests for comments 2022-08-24 14:24:10 -07:00
Mark Stenglein
66593a28f5 docs: scanners: add Brother ads4700w
I've tested Paperless with the ADS-4700W and it works great.

This commit adds the recommendation.
2022-08-24 08:57:45 -07:00
Michael Shamoon
ba1cdd5914 Update messages.xlf 2022-08-23 19:22:30 -07:00
Michael Shamoon
3f536552a6 Move add comment to top of comments list 2022-08-23 19:22:30 -07:00
Michael Shamoon
1d2282df9e Cleanup frontend comment service & other code
[ci skip]
2022-08-23 19:20:08 -07:00
Michael Shamoon
1b56ffd0c0 Rework comment UI
Add error popups, text field validation, move form, move comment header to footer, updated styling
2022-08-23 19:20:08 -07:00
Michael Shamoon
d5018af2a3 python code style 2022-08-23 19:20:08 -07:00
Michael Shamoon
5c1e09cc48 Refactor comment UI code
And run prettier
2022-08-23 19:20:08 -07:00
Michael Shamoon
6d956ac13b fix migration dependency
and run code style
2022-08-23 19:19:21 -07:00
Michael Shamoon
865fbbd15c Missed PAPERLESS_COMMENTS_ENABLED code 2022-08-23 19:19:21 -07:00
shamoon
97cfd0085e Remove faux test file 2022-08-23 19:19:21 -07:00
Michael Shamoon
f20f200c8d Fix comment service method signature
and run prettier over file
2022-08-23 19:19:21 -07:00
Michael Shamoon
78bd424ecb Remove faux testing file 2022-08-23 19:19:21 -07:00
Michael Shamoon
6fa32c36e9 Use frontend settings instead of env variable 2022-08-23 19:19:21 -07:00
tim-vogel
817882ff6f add comment function 2022-08-23 19:19:21 -07:00
tooomm
d1e8299010 typo 2022-08-23 19:18:45 -07:00
dependabot[bot]
42c50c4e0b Bump sphinx from 5.0.2 to 5.1.1
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 5.0.2 to 5.1.1.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v5.0.2...v5.1.1)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-22 12:37:59 +00:00
shamoon
c151db6e21 Merge pull request #1446 from paperless-ngx/feature-storage-path-rematch
Feature: Adds storage paths to re-tagger command
2022-08-21 20:07:06 -07:00
shamoon
7844537355 Merge pull request #1440 from GwynHannay/feature-orig-filename-metadata
Feature: Preserve original filename in metadata
2022-08-21 20:05:25 -07:00
Quinn Casey
a414208327 Merge pull request #1445 from paperless-ngx/library-deps-update
Chore: Bump Python dependencies
2022-08-21 18:45:58 -07:00
Trenton Holmes
ab761e837c Implements a better re-do of OCR by making the document archiver function common. Actually creates updated file now 2022-08-21 18:20:59 -07:00
Trenton Holmes
c8e838e3a0 Adds the storage paths to the re-tagger command 2022-08-21 18:01:19 -07:00
Trenton Holmes
9b24cf7591 Also provide the original file name to the post consumption script 2022-08-21 16:16:28 -07:00
Trenton Holmes
5e3cdcdd6e Bumps all library versions which are currently working 2022-08-21 08:34:40 -07:00
Michael Shamoon
baeb2a074a Add original filename to frontend doc detail metadata 2022-08-21 08:06:56 -07:00
Zerteax
a56de4547c Changes to Redis documentation (#1441)
* Added more description in PAPERLESS_REDIS

* More Information on Redis

* Update configuration.rst

* Changed <ip> to <host>

Same as in the Documentation of Redis

* Edited the link

Linking directly to the Securing Redis part
2022-08-21 07:27:45 -07:00
Gwyn Hannay
e3cc5c3013 format code 2022-08-20 14:31:30 -07:00
Gwyn Hannay
4194b248b9 create migration for original filename 2022-08-20 14:30:40 -07:00
Gwyn Hannay
3fcbd8f3ac update files and model to include new field 2022-08-20 14:30:14 -07:00
Trenton Holmes
b3b2519bf0 Fixes the creation of an archive file, even if noarchive was specified 2022-08-20 13:47:56 -07:00
Stefan
fccea022fa adapt test to respect gmail_label keyword 2022-08-20 13:15:38 -07:00
Stefan
d80d5e4e70 fix debug output 2022-08-20 13:15:38 -07:00
Stefan
f1e93eb70a Ignore tagged emails from gmail to avoid duplicated documents. 2022-08-20 13:15:38 -07:00
Stefan
260b709296 add test for gmail account tag handling 2022-08-20 13:15:38 -07:00
Stefan
9bb762fc8f fix mail tests 2022-08-20 13:15:38 -07:00
Stefan
5c49bbfc73 fix formatting 2022-08-20 13:15:38 -07:00
Stefan
edabf208bc Handle tags for gmail email accounts
like mentioned here: https://github.com/ikvk/imap_tools/issues/174
2022-08-20 13:15:38 -07:00
Quinn Casey
0878a199f4 Merge pull request #1436 from tribut/redis-image
Update redis image
2022-08-18 08:03:19 -07:00
Felix Eckhofer
eec1f03f86 Use redis image tag :7 2022-08-18 11:47:47 +02:00
Quinn Casey
a4c4b81297 Manually link authors only in docs/changelog.md 2022-08-17 08:30:40 -07:00
Felix E
a5f9c8f651 Merge pull request #1430 from glassbox-sco/patch-1
Update scanners.rst
2022-08-17 08:31:51 +02:00
Quinn Casey
1ec7351842 Minor doc fixes 2022-08-16 19:44:48 -07:00
glassbox-sco
f2cab81aed Update scanners.rst 2022-08-17 00:09:21 +01:00
Dennis Gaida
9cbc74ebb2 remove redis URL from log 2022-08-16 12:41:52 -07:00
Dennis Gaida
3d36d0445c Hide credentials from log 2022-08-16 12:41:52 -07:00
Dennis Gaida
f4fece5550 PAPERLESS_REDIS may be set via docker secrets
Best practice is for redis to be at least password protected: https://redis.io/docs/getting-started/.

Paperless uses `Redis.from_url` (5fe435048b/docker/wait-for-redis.py (L24)) to establish a connection to redis which already enables us to use username/password, e.g. `redis://username:password@redis:6379`.

The redis connection string therefore is a secret and needs to be able to leverage docker secrets, hence this PR.
2022-08-16 12:41:52 -07:00
Quinn Casey
6133f745b7 Merge pull request #1415 from derlucas/main
Update scanners.rst
2022-08-15 06:47:21 -07:00
Quinn Casey
02456b271b Fix incorrect double quote on string 2022-08-15 06:27:08 -07:00
Trenton Holmes
ad1f5ae081 Corrects the timeout's interaction with files waiting to be consumed 2022-08-14 17:47:59 -07:00
Trenton Holmes
86358d5561 Attempts to make production consumer more event driven while still allowing unit testing 2022-08-14 17:47:59 -07:00
shamoon
87953cb98a Merge pull request #1412 from paperless-ngx/fix/created-date-not-required
Fix: `created_date` should not be required
2022-08-14 16:06:48 -07:00
Trenton Holmes
f58e0041ce Resets to a last known working pipenv version 2022-08-14 16:01:22 -07:00
Michael Shamoon
8183de4902 created_date is not supposed to be required 2022-08-14 00:58:31 -07:00
Lucas Pleß
a8c575147b Update scanners.rst
added Brother ADS-4300N. I tested it and can recommend the Device. It scans fast and reliable.
2022-08-13 22:52:17 +02:00
shamoon
09fcc28ded Merge pull request #1397 from paperless-ngx/chore/remove-dependabot-from-projects
Chore: Exclude dependabot PRs from Project, set status to "Needs Review"
2022-08-13 07:27:50 -07:00
Quinn Casey
22fb659b72 Set status of new PRs to "Needs Review" 2022-08-11 10:10:08 -07:00
Quinn Casey
40ae184c4e Exclude dependabot PRs from project 2022-08-11 10:03:37 -07:00
Quinn Casey
18a2a41682 Use fork of release-drafter to exclude prereleases 2022-08-11 09:49:04 -07:00
Quinn Casey
4faff70b5d Merge pull request #1396 from paperless-ngx/chore/add-autolabeler
Chore: Add `autolabeler` to label PRs based on `ref` and title
2022-08-11 09:46:24 -07:00
Quinn Casey
8d3361766d Draft more comprehensive changelog 2022-08-10 17:48:56 -07:00
Quinn Casey
5dd4d0c370 Add documentation as included label 2022-08-10 17:48:56 -07:00
Quinn Casey
a0617c1fad CI: Add autolabeler 2022-08-10 17:19:13 -07:00
Quinn Casey
9e9593b899 Merge pull request #1391 from paperless-ngx/chore-update-deps
Chore: Update Python deps
2022-08-10 09:31:00 -07:00
Trenton Holmes
89b7270233 Updates some deps, skipping scipy 2022-08-10 08:45:49 -07:00
shamoon
3af4808864 Merge pull request #1387 from paperless-ngx/bugfix-task-error-prevents-consume
Bugfix: Catch all exceptions during the task signals
2022-08-10 07:09:29 -07:00
Trenton Holmes
d4c3b7614d Catch all exceptions during the task creation so some error here, but not with a file, will allow consumption to run 2022-08-09 15:50:03 -07:00
Quinn Casey
676ba9ca22 Merge pull request #1376 from paperless-ngx/fix/saved-view-page-param
Fix: saved view page parameter
2022-08-08 10:06:11 -07:00
Michael Shamoon
d0f5cc839f fix navigation to /documents breaks history 2022-08-08 00:05:19 -07:00
Michael Shamoon
110bd65c20 fix pagination, refactor 2022-08-08 00:03:15 -07:00
shamoon
ef0080b0a9 Merge pull request #1369 from paperless-ngx/fix/browser-unsaved-changes
Fix: Correct browser unsaved changes warning
2022-08-07 15:43:10 -07:00
shamoon
a81dc00ccf Merge pull request #1370 from paperless-ngx/fix/date-pasting
Fix: correct date pasting with some non-US formats
2022-08-07 15:42:00 -07:00
Quinn Casey
765fea7f7e Merge pull request #1362 from paperless-ngx/ci-file-health
Chore: use pre-commit in the Ci workflow
2022-08-07 13:33:34 -07:00
Michael Shamoon
a0f48130c0 Fix some date pasting cases 2022-08-07 08:44:39 -07:00
Michael Shamoon
7e2c693c8a Make date suggestions timezone-unaware 2022-08-07 08:37:18 -07:00
Michael Shamoon
7396e4c326 simplify date value format 2022-08-06 21:19:06 -07:00
Michael Shamoon
0175eab031 Fix browser unsaved changes with custom guard 2022-08-06 20:23:05 -07:00
Matthias Eck
3d0a26fdb1 fix(parsers|test_api): fix failed tests 2022-08-06 19:19:10 +02:00
Matthias Eck
c52d18da1f feat(date.component): adding suggestions to frontend 2022-08-06 13:03:20 +02:00
Matthias Eck
e0f341938a docs(configuration.rst): add doc for NUMBER_OF_SUGGESTED_DATES 2022-08-06 13:03:20 +02:00
Matthias Eck
a037e562b2 test(test-date-parsing): test parsing of multiple dates 2022-08-06 13:03:20 +02:00
Matthias Eck
f1084cbdcf feat(settings): add setting to set number of suggested dates 2022-08-06 13:03:20 +02:00
Matthias Eck
f6e4339069 test(test-date-parsing): test parsing of multiple dates 2022-08-06 13:03:20 +02:00
Matthias Eck
a754c6047d test(test-api): update existing tests for suggestions 2022-08-06 13:03:20 +02:00
Matthias Eck
a5d2ae2588 feat(parsers): add generator for date parsing 2022-08-06 13:03:20 +02:00
Michael Shamoon
a6f3378c21 Handle page parameter on saved views 2022-08-05 23:35:13 -07:00
Quinn Casey
ca75fb5664 Merge pull request #1358 from paperless-ngx/bugfix-ip-bind-addr
Bugfix: Allow webserver bind address to be configured
2022-08-04 12:35:28 -07:00
Trenton Holmes
32861ad592 Removes no longer needed files 2022-08-04 11:11:49 -07:00
Trenton Holmes
ada8516803 Allows the webserver binding address to be configured via the environment 2022-08-04 07:43:23 -07:00
Trenton Holmes
d5c27a95aa Fixes minor linting 2022-08-03 13:26:04 -07:00
Trenton Holmes
6b8a21d2b0 Test pre-commit action 2022-08-03 13:20:02 -07:00
Trenton Holmes
cb7e6f8cd0 Adds a pull of all images for the main image after the pruning 2022-08-03 10:19:15 -07:00
Trenton Holmes
f48a2cb65e Fixes the untagged image deletion so it will not remove images which are referred to by a multi-arch manifest image 2022-08-03 10:19:15 -07:00
Trenton Holmes
0fdd3d56f4 Changes the cleanup images workflow so it uses a OAuth token with the correct scope (GITHUB_TOKEN is not enough). Also prevents running if the token is not defined and generally does commenting/cleanups" 2022-08-03 10:19:15 -07:00
Quinn Casey
173934258c Merge pull request #1354 from paperless-ngx/bugfix-exception-chains
Bugfix: Chain exceptions during exception handling
2022-08-03 09:59:26 -07:00
Trenton Holmes
b70e21a6d5 When raising an exception during exception handling, chain them together for slightly cleaner logs 2022-08-03 09:00:56 -07:00
shamoon
cafb884991 Merge pull request #1352 from tooomm/patch-1
docs: fix small typo
2022-08-03 06:42:13 -07:00
tooomm
94b09614d9 typo 2022-08-03 15:00:23 +02:00
shamoon
7488505e37 Update dev version string
[ci skip]
2022-08-02 13:28:29 -07:00
Trenton Holmes
641ff9a71d Revert "Bump watchfiles from 0.15.0 to 0.16.1"
This reverts commit b596502f74.
2022-08-02 11:25:01 -07:00
dependabot[bot]
b596502f74 Bump watchfiles from 0.15.0 to 0.16.1
Bumps [watchfiles](https://github.com/samuelcolvin/watchfiles) from 0.15.0 to 0.16.1.
- [Release notes](https://github.com/samuelcolvin/watchfiles/releases)
- [Commits](https://github.com/samuelcolvin/watchfiles/compare/v0.15.0...v0.16.1)

---
updated-dependencies:
- dependency-name: watchfiles
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 08:46:02 -07:00
dependabot[bot]
4fbd760005 Bump leonsteinhaeuser/project-beta-automations from 1.2.1 to 1.3.0
Bumps [leonsteinhaeuser/project-beta-automations](https://github.com/leonsteinhaeuser/project-beta-automations) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/leonsteinhaeuser/project-beta-automations/releases)
- [Commits](https://github.com/leonsteinhaeuser/project-beta-automations/compare/v1.2.1...v1.3.0)

---
updated-dependencies:
- dependency-name: leonsteinhaeuser/project-beta-automations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 08:10:45 -07:00
dependabot[bot]
6a5ac15b07 Bump tj-actions/changed-files from 23.1 to 24
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 23.1 to 24.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v23.1...v24)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 07:55:28 -07:00
shamoon
57b419fa87 Merge pull request #1342 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.3.1
Bump cypress from 10.3.0 to 10.3.1 in /src-ui
2022-08-01 15:49:45 -07:00
shamoon
52ce54930b Merge pull request #1343 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-color-8.0.1
Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui
2022-08-01 13:59:15 -07:00
dependabot[bot]
fa9898ebe1 Bump ngx-color from 7.3.3 to 8.0.1 in /src-ui
Bumps [ngx-color](https://github.com/scttcper/ngx-color) from 7.3.3 to 8.0.1.
- [Release notes](https://github.com/scttcper/ngx-color/releases)
- [Commits](https://github.com/scttcper/ngx-color/compare/v7.3.3...v8.0.1)

---
updated-dependencies:
- dependency-name: ngx-color
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:56:48 +00:00
shamoon
de4b3c39b9 Merge pull request #1330 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.1.0
Bump @angular/cli from 14.0.4 to 14.1.0 in /src-ui
2022-08-01 13:55:41 -07:00
Michael Shamoon
232e358a34 bump all angular packages together 2022-08-01 13:54:09 -07:00
dependabot[bot]
a0d35f9262 Bump @angular/cli from 14.0.4 to 14.1.0 in /src-ui
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 14.0.4 to 14.1.0.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/14.0.4...14.1.0)

---
updated-dependencies:
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:46:55 +00:00
dependabot[bot]
8883ef81dc Bump cypress from 10.3.0 to 10.3.1 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.3.0 to 10.3.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.3.0...v10.3.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:46:27 +00:00
shamoon
39a425eca4 Merge pull request #1341 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.6.3
Bump @types/node from 18.0.0 to 18.6.3 in /src-ui
2022-08-01 13:45:09 -07:00
dependabot[bot]
e31d383cfc Bump @types/node from 18.0.0 to 18.6.3 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 18.0.0 to 18.6.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:44:37 +00:00
shamoon
cb104b60f4 Merge pull request #1340 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.2.0
Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui
2022-08-01 13:43:47 -07:00
dependabot[bot]
b88963c900 Bump jest-preset-angular from 12.1.0 to 12.2.0 in /src-ui
Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.1.0 to 12.2.0.
- [Release notes](https://github.com/thymikee/jest-preset-angular/releases)
- [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.1.0...v12.2.0)

---
updated-dependencies:
- dependency-name: jest-preset-angular
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:39:58 +00:00
shamoon
3597abbcd7 Merge pull request #1326 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.3.0
Bump concurrently from 7.2.2 to 7.3.0 in /src-ui
2022-08-01 13:38:44 -07:00
dependabot[bot]
0f780b6271 Bump concurrently from 7.2.2 to 7.3.0 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.2.2 to 7.3.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.2.2...v7.3.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:38:16 +00:00
shamoon
f1ce4e1f5b Merge pull request #1337 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ng2-pdf-viewer-9.1.0
Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui
2022-08-01 13:38:11 -07:00
dependabot[bot]
5d0d800c0a Bump ng2-pdf-viewer from 9.0.0 to 9.1.0 in /src-ui
Bumps [ng2-pdf-viewer](https://github.com/VadimDez/ng2-pdf-viewer) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/VadimDez/ng2-pdf-viewer/releases)
- [Changelog](https://github.com/VadimDez/ng2-pdf-viewer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/VadimDez/ng2-pdf-viewer/compare/9.0.0...9.1.0)

---
updated-dependencies:
- dependency-name: ng2-pdf-viewer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:37:34 +00:00
shamoon
3b330ef22f Merge pull request #1336 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-28.1.3
Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui
2022-08-01 13:36:22 -07:00
dependabot[bot]
873bb4fd2d Bump jest-environment-jsdom from 28.1.2 to 28.1.3 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.2 to 28.1.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.3/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:35:56 +00:00
shamoon
3973df64ba Merge pull request #1331 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ngx-file-drop-14.0.1
Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui
2022-08-01 13:35:04 -07:00
shamoon
8cda62ae92 Merge pull request #1333 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-and-types/jest-28.1.3
Bump jest and @types/jest in /src-ui
2022-08-01 13:29:31 -07:00
dependabot[bot]
b8e1a49f85 Bump jest and @types/jest in /src-ui
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together.

Updates `jest` from 28.1.2 to 28.1.3
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.3/packages/jest)

Updates `@types/jest` from 28.1.4 to 28.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:25:09 +00:00
shamoon
f9147b5405 Merge pull request #1327 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/bootstrap-5.2.0
Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui
2022-08-01 13:21:46 -07:00
dependabot[bot]
878f727a2c Bump ngx-file-drop from 13.0.0 to 14.0.1 in /src-ui
Bumps [ngx-file-drop](https://github.com/georgipeltekov/ngx-file-drop) from 13.0.0 to 14.0.1.
- [Release notes](https://github.com/georgipeltekov/ngx-file-drop/releases)
- [Changelog](https://github.com/georgipeltekov/ngx-file-drop/blob/master/CHANGELOG.md)
- [Commits](https://github.com/georgipeltekov/ngx-file-drop/compare/v13.0.0...v14.0.1)

---
updated-dependencies:
- dependency-name: ngx-file-drop
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:19:33 +00:00
shamoon
0169ee4885 Merge pull request #1324 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/typescript-4.7.4
Bump typescript from 4.6.4 to 4.7.4 in /src-ui
2022-08-01 13:18:12 -07:00
dependabot[bot]
904faf27c2 Bump typescript from 4.6.4 to 4.7.4 in /src-ui
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.6.4 to 4.7.4.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.6.4...v4.7.4)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:15:13 +00:00
shamoon
d2a38fe05c Merge pull request #1325 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ts-node-10.9.1
Bump ts-node from 10.8.1 to 10.9.1 in /src-ui
2022-08-01 13:13:49 -07:00
shamoon
9a5d06239f Merge pull request #1323 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/rxjs-7.5.6
Bump rxjs from 7.5.5 to 7.5.6 in /src-ui
2022-08-01 13:12:06 -07:00
dependabot[bot]
a1fad471a9 Bump bootstrap from 5.1.3 to 5.2.0 in /src-ui
Bumps [bootstrap](https://github.com/twbs/bootstrap) from 5.1.3 to 5.2.0.
- [Release notes](https://github.com/twbs/bootstrap/releases)
- [Commits](https://github.com/twbs/bootstrap/compare/v5.1.3...v5.2.0)

---
updated-dependencies:
- dependency-name: bootstrap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:09:16 +00:00
dependabot[bot]
57a97365b6 Bump ts-node from 10.8.1 to 10.9.1 in /src-ui
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.8.1 to 10.9.1.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.8.1...v10.9.1)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:08:43 +00:00
dependabot[bot]
cce36906b1 Bump rxjs from 7.5.5 to 7.5.6 in /src-ui
Bumps [rxjs](https://github.com/reactivex/rxjs) from 7.5.5 to 7.5.6.
- [Release notes](https://github.com/reactivex/rxjs/releases)
- [Changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reactivex/rxjs/compare/7.5.5...7.5.6)

---
updated-dependencies:
- dependency-name: rxjs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 20:08:06 +00:00
Nico Fricke
36158609f0 change default matching algo to auto and move to constant 2022-08-01 09:22:13 +02:00
Quinn Casey
da99ba114b Merge pull request #1305 from paperless-ngx/fix/1299+1300
Fix: missing tooltip translation & filter editor wrapping
2022-07-31 20:40:48 -07:00
Michael Shamoon
9a66bd3c34 Better filter editor wrapping across display sizes
Closes #1299
2022-07-31 20:25:21 -07:00
Quinn Casey
0d23b33c0e Merge pull request #1316 from paperless-ngx/feature-docker-pipenv
Feature: Remove requirements.txt and use pipenv everywhere
2022-07-31 18:46:59 -07:00
Trenton Holmes
e721092c2a Changes the Dockerfile to use pipenv and the releases to use pipenv, removing the need for a requirements.txt 2022-07-30 13:41:08 -07:00
Quinn Casey
8c7afc5646 Merge branch 'main' into dev 2022-07-30 08:41:36 -07:00
Michael Shamoon
7752d83781 Fix "suggest an idea" not using translation
Closes #1300
2022-07-29 14:48:11 -07:00
Quinn Casey
4b45e94beb Merge pull request #1303 from paperless-ngx/bugfix-barcode-and-dirs
Bugfix: Interaction between barcode and directories as tags
2022-07-29 12:25:40 -07:00
Trenton Holmes
2a4ec13c8e Fixes issue where barcode containing files wouldn't be placed into the same directory after splitting 2022-07-29 10:22:54 -07:00
Michael Shamoon
20671c718e Run prettier over changelog.md
[ci skip]
2022-07-28 20:00:59 -07:00
github-actions[bot]
e73db49ed0 [Documentation] Add v1.8.0 changelog (#1298)
* Changelog  - GHA

* Update changelog.md

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-07-28 19:52:13 -07:00
Michael Shamoon
0553824df2 Revert "Update changelog.md"
This reverts commit 3a031084f3.
2022-07-28 15:41:39 -07:00
Michael Shamoon
71bc2c5944 Add -dev to version string 2022-07-28 15:36:55 -07:00
Michael Shamoon
05feadbb7a Squashed commit of the following:
commit a4709b1175
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:36:13 2022 -0700

    Update stale.yml

    [skip ci]

commit 3a031084f3
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:24:23 2022 -0700

    Update changelog.md

commit 0c517e5351
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:18:49 2022 -0700

    v1.8.0 version strings

commit 5fe435048b
Merge: 278cedf3 a722bfd0
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Thu Jul 28 15:17:30 2022 -0700

    Merge pull request #1240 from paperless-ngx/beta

    [Beta] Paperless-ngx v1.8.0 Release Candidate 1

commit a722bfd099
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com>
Date:   Thu Jul 28 07:46:12 2022 -0700

    New Crowdin updates (#1291)

    * New translations django.po (French)
    [ci skip]

    * New translations messages.xlf (French)
    [ci skip]

    * New translations django.po (French)
    [ci skip]

    * New translations messages.xlf (French)
    [ci skip]

    * New translations messages.xlf (Turkish)
    [ci skip]

    * New translations django.po (Turkish)
    [ci skip]

commit f3d99a5fdb
Merge: ca334770 79de0989
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 11:21:42 2022 -0700

    Merge pull request #1277 from paperless-ngx/fix/redo-ocr-button-on-edit

    Fix/feature: add redo ocr button to document edit view

commit 79de0989d5
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 09:54:05 2022 -0700

    fix button icon spacing on mobile

commit ca334770b7
Author: Paperless-ngx Translation Bot [bot] <99855517+paperless-l10n@users.noreply.github.com>
Date:   Tue Jul 26 09:45:21 2022 -0700

    New Crowdin updates (#1242)

    * New translations messages.xlf (Turkish)
    [ci skip]

    * New translations messages.xlf (German)
    [ci skip]

    * New translations django.po (German)
    [ci skip]

    * New translations messages.xlf (Italian)
    [ci skip]

    * New translations messages.xlf (Italian)
    [ci skip]

    * New translations messages.xlf (Finnish)
    [ci skip]

    * New translations messages.xlf (Finnish)
    [ci skip]

commit 1071357505
Merge: f32dfe02 ef790ca6
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jul 26 09:44:42 2022 -0700

    Merge pull request #1268 from paperless-ngx/bugfix-db-locked

    Bugfix: Adds configuration for database timeout, fixing database locked error

commit f32dfe0278
Merge: 611707a3 4e78ca5d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 25 12:59:31 2022 -0700

    Merge pull request #1261 from paperless-ngx/fix/b1.8.0-ng-select-dropdowns

    Fix: dropdown selected items not visible again

commit 278cedf3d0
Merge: b141671d ecc4553e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 25 09:25:52 2022 -0700

    Merge pull request #1272 from paperless-ngx/fix-1263

    Documentation: fix occasional code block color legibility

commit 45a6b5a436
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 24 20:15:26 2022 -0700

    Add redo OCR button to document edit

commit 611707a3d1
Merge: 2d88638d b4d20d9b
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 24 19:59:30 2022 -0700

    Merge pull request #1276 from paperless-ngx/bugfix-webp-import

    Bugfix: Document import doesn't convert thumbnails to WebP

commit b4d20d9b9a
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Sun Jul 24 10:22:53 2022 -0700

    Fixes document import copying PNG files to .webp extensions without actual conversion

commit ecc4553e67
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 22 15:10:33 2022 -0700

    fix occasional code block color legibility

commit ef790ca6f4
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 22 11:08:52 2022 -0700

    Fixes the copy and paste of the log line

commit 2d88638da7
Merge: 0e2e5f34 91ba0bd0
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 22 10:45:53 2022 -0700

    Merge pull request #1269 from paperless-ngx/beta-deps-final

    Chore: Locks dependencies to the final versions for the beta

commit 91ba0bd0af
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 22 08:53:02 2022 -0700

    Locks dependencies to the final versions for the beta

commit 0e2e5f3413
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 13:57:00 2022 -0700

    Creates utiliy to ensure all paths in settings are normalized and absolute

commit 7a99dcf693
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Thu Jul 21 08:02:11 2022 -0700

    Adds configuration for database timeout, documentation and troubleshotting suggestion

commit 4e78ca5d82
Author: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Wed Jul 20 11:15:35 2022 -0700

    remove merge error ng-select css

commit 83de38e56f
Merge: f4be2e4f b1b6d50a
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Wed Jul 20 08:26:12 2022 -0700

    Merge pull request #1247 from paperless-ngx/bugfix-pikepdf-ocrmypdf-warnings

    Bugfix: Adds pngquant and jbig2dec to Docker image

commit f4be2e4fe7
Merge: 4444925d 16b0f7f9
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Tue Jul 19 21:03:16 2022 -0700

    Merge pull request #1259 from paperless-ngx/chore-add-ci-hadolint

    Chore: Add Hadolint job to CI

commit 16b0f7f9ee
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 14:18:47 2022 -0700

    Removes a Dockerfile I can't find referenced anywhere

commit 27721aef71
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 14:01:47 2022 -0700

    Fixes and updates the Hadolint action version

commit 329a317fdf
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Tue Jul 19 13:54:33 2022 -0700

    Configure Hadolint in a single location for both hooks and CI

commit daad634894
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Fri Jul 15 13:45:23 2022 -0700

    Adds a CI job for hadolint over all the Dockerfiles, fixes the minor thing it complained about

commit 4444925dea
Merge: 4c697ab5 9c1ae96d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Mon Jul 18 15:55:29 2022 -0700

    Merge pull request #1249 from paperless-ngx/fix-generated-changelog

    [CI] Fix automatic changelog generation on release

commit 9c1ae96d33
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Mon Jul 18 09:48:03 2022 -0700

    Create PR for changelog instead of direct commit

commit b1b6d50af6
Author: Trenton Holmes <holmes.trenton@gmail.com>
Date:   Mon Jul 18 09:46:31 2022 -0700

    Adds a couple packages to the Docker image for ocrmypdf and pikepdf

commit 4c697ab50e
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Sun Jul 17 15:23:28 2022 -0700

    Bump version to beta

commit b141671d90
Merge: 48dfbbeb 2ab2d912
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Sun Jul 17 13:18:57 2022 -0700

    Merge pull request #1237 from tooomm/patch-1

    chore: Run stale bot only on certain labels

commit 2ab2d9127d
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Fri Jul 15 20:19:28 2022 -0700

    Use cant-reproduce for stale

commit 278453451e
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Fri Jul 15 21:18:38 2022 +0200

    only run on certain labels

commit 48dfbbebc6
Merge: 8efb97ef e568b300
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sun Jul 3 07:42:20 2022 -0700

    Merge pull request #1110 from paperless-ngx/update-issue-form

commit 8efb97ef4e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sat Jul 2 19:06:32 2022 -0700

    Update stale.yml

    [ci skip]

commit d8cda7fc1b
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Sat Jul 2 17:51:39 2022 -0700

    Use any-of-labels for stalebot

    [ci skip]

commit 68f0cf419b
Merge: 666b9385 26b12512
Author: Felix E <felix@eckhofer.com>
Date:   Mon Jun 20 14:25:59 2022 +0200

    Merge pull request #1148 from pReya/patch-1

    fix: update scanner capability

commit 26b12512b1
Author: Moritz Stückler <moritz.stueckler@gmail.com>
Date:   Mon Jun 20 12:06:54 2022 +0200

    fix: update scanner capability

    The Brother ADS-A1700W does indeed support SFTP. I've just bought it, and set it up like this.

commit e568b3000e
Author: shamoon <4887959+shamoon@users.noreply.github.com>
Date:   Tue Jun 7 15:28:49 2022 -0700

    Add lsio to issue form

commit 666b938550
Merge: de5eaf1c 163231d3
Author: Quinn Casey <quinn@quinncasey.com>
Date:   Thu May 19 17:23:23 2022 -0700

    Merge pull request #990 from tooomm/patch-2

    Docs: Fix headings and add links to PRs in changelog

commit 163231d307
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Thu May 19 23:12:40 2022 +0200

    Link issues, capitalization and minor fixes

commit e530750fc6
Author: tooomm <tooomm@users.noreply.github.com>
Date:   Thu May 19 22:05:43 2022 +0200

    update heading levels for v1.7.0
2022-07-28 15:36:24 -07:00
Michael Shamoon
a4709b1175 Update stale.yml
[skip ci]
2022-07-28 15:36:13 -07:00
Michael Shamoon
3a031084f3 Update changelog.md 2022-07-28 15:24:23 -07:00
Michael Shamoon
0c517e5351 v1.8.0 version strings 2022-07-28 15:18:49 -07:00
shamoon
5fe435048b Merge pull request #1240 from paperless-ngx/beta
[Beta] Paperless-ngx v1.8.0 Release Candidate 1
2022-07-28 15:17:30 -07:00
Paperless-ngx Translation Bot [bot]
a722bfd099 New Crowdin updates (#1291)
* New translations django.po (French)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations django.po (French)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations django.po (Turkish)
[ci skip]
2022-07-28 07:46:12 -07:00
shamoon
f3d99a5fdb Merge pull request #1277 from paperless-ngx/fix/redo-ocr-button-on-edit
Fix/feature: add redo ocr button to document edit view
2022-07-26 11:21:42 -07:00
Michael Shamoon
79de0989d5 fix button icon spacing on mobile 2022-07-26 09:54:05 -07:00
Paperless-ngx Translation Bot [bot]
ca334770b7 New Crowdin updates (#1242)
* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]
2022-07-26 09:45:21 -07:00
shamoon
1071357505 Merge pull request #1268 from paperless-ngx/bugfix-db-locked
Bugfix: Adds configuration for database timeout, fixing database locked error
2022-07-26 09:44:42 -07:00
shamoon
f32dfe0278 Merge pull request #1261 from paperless-ngx/fix/b1.8.0-ng-select-dropdowns
Fix: dropdown selected items not visible again
2022-07-25 12:59:31 -07:00
shamoon
278cedf3d0 Merge pull request #1272 from paperless-ngx/fix-1263
Documentation: fix occasional code block color legibility
2022-07-25 09:25:52 -07:00
Michael Shamoon
45a6b5a436 Add redo OCR button to document edit 2022-07-24 20:15:26 -07:00
shamoon
611707a3d1 Merge pull request #1276 from paperless-ngx/bugfix-webp-import
Bugfix: Document import doesn't convert thumbnails to WebP
2022-07-24 19:59:30 -07:00
Trenton Holmes
b4d20d9b9a Fixes document import copying PNG files to .webp extensions without actual conversion 2022-07-24 10:22:53 -07:00
Michael Shamoon
ecc4553e67 fix occasional code block color legibility 2022-07-22 15:12:18 -07:00
Trenton Holmes
ef790ca6f4 Fixes the copy and paste of the log line 2022-07-22 11:08:52 -07:00
shamoon
2d88638da7 Merge pull request #1269 from paperless-ngx/beta-deps-final
Chore: Locks dependencies to the final versions for the beta
2022-07-22 10:45:53 -07:00
Trenton Holmes
91ba0bd0af Locks dependencies to the final versions for the beta 2022-07-22 08:53:02 -07:00
Trenton Holmes
0e2e5f3413 Creates utiliy to ensure all paths in settings are normalized and absolute 2022-07-22 08:48:17 -07:00
Trenton Holmes
7a99dcf693 Adds configuration for database timeout, documentation and troubleshotting suggestion 2022-07-22 08:40:08 -07:00
Michael Shamoon
4e78ca5d82 remove merge error ng-select css 2022-07-20 11:15:35 -07:00
shamoon
83de38e56f Merge pull request #1247 from paperless-ngx/bugfix-pikepdf-ocrmypdf-warnings
Bugfix: Adds pngquant and jbig2dec to Docker image
2022-07-20 08:26:12 -07:00
Quinn Casey
f4be2e4fe7 Merge pull request #1259 from paperless-ngx/chore-add-ci-hadolint
Chore: Add Hadolint job to CI
2022-07-19 21:03:16 -07:00
Trenton Holmes
16b0f7f9ee Removes a Dockerfile I can't find referenced anywhere 2022-07-19 14:18:47 -07:00
Trenton Holmes
27721aef71 Fixes and updates the Hadolint action version 2022-07-19 14:01:47 -07:00
Trenton Holmes
329a317fdf Configure Hadolint in a single location for both hooks and CI 2022-07-19 13:54:33 -07:00
Trenton Holmes
daad634894 Adds a CI job for hadolint over all the Dockerfiles, fixes the minor thing it complained about 2022-07-19 13:50:15 -07:00
shamoon
4444925dea Merge pull request #1249 from paperless-ngx/fix-generated-changelog
[CI] Fix automatic changelog generation on release
2022-07-18 15:55:29 -07:00
Quinn Casey
9c1ae96d33 Create PR for changelog instead of direct commit 2022-07-18 09:48:03 -07:00
Trenton Holmes
b1b6d50af6 Adds a couple packages to the Docker image for ocrmypdf and pikepdf 2022-07-18 09:46:31 -07:00
Quinn Casey
4c697ab50e Bump version to beta 2022-07-17 15:23:28 -07:00
Paperless-ngx Translation Bot [bot]
7450088674 New Crowdin updates (#1238)
* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]
2022-07-17 15:22:35 -07:00
Quinn Casey
b141671d90 Merge pull request #1237 from tooomm/patch-1
chore: Run stale bot only on certain labels
2022-07-17 13:18:57 -07:00
shamoon
2ab2d9127d Use cant-reproduce for stale 2022-07-15 20:19:28 -07:00
tooomm
278453451e only run on certain labels 2022-07-15 21:18:38 +02:00
Paperless-ngx Translation Bot [bot]
91ee7972d2 New Crowdin updates (#1235)
* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations django.po (Chinese Simplified)
[ci skip]
2022-07-15 08:41:29 -07:00
shamoon
d1f59a6590 Merge pull request #1212 from theEndBeta/feature_rootless_and_container_repo
Enable rootless container w/ CI tweaks/bugfixes
2022-07-15 08:41:09 -07:00
Aidan Stein
cdecf8904e move supervisord call into wrapper script 2022-07-15 11:00:46 -04:00
Aidan Stein
3d16266c69 pr comment - documentation edits 2022-07-15 11:00:46 -04:00
Aidan Stein
191676b011 switch from bind mount to COPY to avoid requiring host directory relabeling on selinux enabled systems 2022-07-15 11:00:46 -04:00
Aidan Stein
ea07b261ad negate second gosu command when running as paperless user 2022-07-15 11:00:46 -04:00
Aidan Stein
e86f737320 pr comment(s) - CI typos 2022-07-15 11:00:46 -04:00
Aidan Stein
9a8562c624 add instructions for rootless 2022-07-15 11:00:46 -04:00
Aidan Stein
145c41f462 container repository name must be lowercase 2022-07-15 11:00:45 -04:00
Aidan Stein
1d38367e79 allow podman build 2022-07-15 10:58:41 -04:00
Aidan Stein
f58c2d0a7b allow rootless (as paperless user) 2022-07-15 10:58:41 -04:00
Paperless-ngx Translation Bot [bot]
ca7a6fe1f1 New Crowdin updates (#1234)
* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]
2022-07-14 19:37:51 -07:00
shamoon
95042f73c7 Merge pull request #1154 from ziprandom/feature-use-env-vars-in-pre-post-scripts
Feature use env vars in pre post scripts
2022-07-14 19:37:19 -07:00
Trenton Holmes
678bcb171a Re-adds the script arguments 2022-07-14 08:50:00 -07:00
shamoon
8da7e505c0 Merge pull request #1227 from paperless-ngx/feature-reduce-worker-counts
Chore: Reduces webserver and task worker count to 1 by default
2022-07-12 09:56:21 -07:00
phail
cdd2b99b6b Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-07-12 00:09:10 +02:00
Trenton Holmes
72ce4405d5 Updates all dependencies and re-generates the lock files 2022-07-11 23:29:46 +02:00
Paperless-ngx Translation Bot [bot]
d8e3d91a79 New Crowdin updates (#1214)
* New translations django.po (Croatian)
[ci skip]

* New translations django.po (Croatian)
[ci skip]

* New translations messages.xlf (Croatian)
[ci skip]

* New translations messages.xlf (Croatian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]
2022-07-11 14:02:58 -07:00
Trenton Holmes
edaaedae36 Reduces webserver and task worker count to 1 by default 2022-07-11 13:54:04 -07:00
shamoon
da8246d8c3 Merge pull request #1220 from paperless-ngx/bugfix-oserror-msg
Bugfix: Include the actual OSError string when a file can't be opened for consumption
2022-07-11 12:26:08 -07:00
Trenton Holmes
5243ae80b4 Feature: Don't push feature development branches to DockerHub (#1219)
* Don't push to the DockerHub except for certain refs

* Enables deletetion of feature images

* Adds links to the API docs for the end points

* Makes it clear in the logs a dry-run vs actual deletion event
2022-07-11 12:22:43 -07:00
Trenton Holmes
3aca576a0d Includes the actual OSError string in the log, instead of assuming it's a busy file 2022-07-11 11:57:02 -07:00
Paperless-ngx Translation Bot [bot]
0bb9d91eae New Crowdin updates (#1090)
* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations django.po (Luxembourgish)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (Italian)
[ci skip]

* New translations django.po (Finnish)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Polish)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Spanish)
[ci skip]

* New translations django.po (Spanish)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (Japanese)
[ci skip]

* New translations messages.xlf (Japanese)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations django.po (Chinese Simplified)
[ci skip]

* New translations django.po (Croatian)
[ci skip]

* New translations messages.xlf (Croatian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Croatian)
[ci skip]

* New translations messages.xlf (Croatian)
[ci skip]

* New translations django.po (Romanian)
[ci skip]

* New translations django.po (French)
[ci skip]

* New translations django.po (Belarusian)
[ci skip]

* New translations django.po (Czech)
[ci skip]

* New translations django.po (Danish)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations django.po (Finnish)
[ci skip]

* New translations django.po (Italian)
[ci skip]

* New translations messages.xlf (Japanese)
[ci skip]

* New translations django.po (Dutch)
[ci skip]

* New translations django.po (Polish)
[ci skip]

* New translations django.po (Portuguese)
[ci skip]

* New translations django.po (Russian)
[ci skip]

* New translations django.po (Slovenian)
[ci skip]

* New translations django.po (Swedish)
[ci skip]

* New translations django.po (Turkish)
[ci skip]

* New translations django.po (Portuguese, Brazilian)
[ci skip]

* New translations django.po (Luxembourgish)
[ci skip]

* New translations django.po (Serbian (Latin))
[ci skip]

* New translations django.po (Chinese Simplified)
[ci skip]

* New translations django.po (Japanese)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations django.po (Spanish)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations django.po (Norwegian)
[ci skip]

* New translations messages.xlf (Norwegian)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations django.po (Arabic, Saudi Arabia)
[ci skip]
2022-07-08 15:21:13 -07:00
Michael Shamoon
8825d6b15f Update translation source strings 2022-07-08 14:12:07 -07:00
shamoon
1f73ca21bf Merge pull request #1020 from paperless-ngx/feature-frontend-task-queue
Feature: frontend task queue
2022-07-08 14:06:24 -07:00
Michael Shamoon
2db0854eef fix conflicting migrations 2022-07-08 14:02:43 -07:00
shamoon
f66e589312 Merge pull request #1133 from paperless-ngx/feature-prevent-text-dupe-api-calls
Fix: Prevent duplicate api calls on text filtering
2022-07-08 13:56:45 -07:00
Michael Shamoon
5c9ad3068b simplify filter rule comparison 2022-07-08 13:55:27 -07:00
shamoon
d07b786da6 Merge pull request #1140 from paperless-ngx/chore-image-tag-cleanups 2022-07-07 06:50:47 -07:00
Trenton Holmes
da5d32ed89 Relocks the dependencies following latest updates 2022-07-05 08:20:35 +02:00
Trenton Holmes
55dadea98e No need for a branch here, the loop takes care of it 2022-07-05 08:20:35 +02:00
Trenton Holmes
77fbbe95ff Updates the classifier to catch warnings from scikit-learn and rebuild the model file when this happens 2022-07-05 08:20:35 +02:00
Trenton Holmes
1aeb95396b Updates scikit-learn and fixes the warning this normally generates in the unit tests 2022-07-05 08:20:35 +02:00
shamoon
48dfbbebc6 Merge pull request #1110 from paperless-ngx/update-issue-form 2022-07-03 07:42:20 -07:00
Trenton Holmes
ccf3a9f3b2 Implements reading from a Docker secrets file in place of an environment variable for certain settings 2022-07-03 10:56:01 +02:00
dependabot[bot]
c0cb97bd42 Bump pillow from 9.1.1 to 9.2.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.1.1 to 9.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.1.1...9.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-03 10:47:43 +02:00
shamoon
8efb97ef4e Update stale.yml
[ci skip]
2022-07-02 19:06:32 -07:00
shamoon
d8cda7fc1b Use any-of-labels for stalebot
[ci skip]
2022-07-02 17:51:39 -07:00
shamoon
ee9f1e7b70 Merge pull request #957 from paperless-ngx/feature-created-date
Feature: make frontend timezone un-aware
2022-07-02 16:58:30 -07:00
shamoon
92dd70098c Merge branch 'dev' into feature-frontend-task-queue 2022-07-02 16:54:16 -07:00
shamoon
4bea4c69a4 Merge pull request #1139 from paperless-ngx/feature-redo-ocr
Feature: Management command to redo OCR
2022-07-02 09:02:32 -07:00
Michael Shamoon
7734325b71 Update tasks.py 2022-07-02 08:42:59 -07:00
shamoon
186ae844bc Merge branch 'dev' into feature-redo-ocr 2022-07-02 08:41:18 -07:00
Michael Shamoon
c9bdf1c184 Frontend UI for redo OCR 2022-07-02 08:39:09 -07:00
Michael Shamoon
13ffe468df Extract redo ocr to task 2022-07-02 08:39:09 -07:00
Trenton Holmes
a090cf7a10 Updates following testing of command 2022-07-02 08:39:09 -07:00
Trenton Holmes
b7250477b5 Includes the progress bar 2022-07-02 08:39:09 -07:00
Trenton Holmes
dfd16c5187 Saves work on a new management comment to re-ocr a file 2022-07-02 08:39:09 -07:00
shamoon
4afd6b78af Merge pull request #1122 from paperless-ngx/feature-quick-toggleable-filters
Feature / fix quick toggleable filters
2022-07-02 08:26:42 -07:00
Trenton Holmes
398f6e5b0c Removes variable which was never set, removed unneeded serializer method 2022-07-02 16:19:22 +02:00
Trenton Holmes
d7f7d839f8 Adds invalid storage path format test 2022-07-02 16:19:22 +02:00
Trenton Holmes
49a843dcdd Changes the simple-alpha parsing test to use a tempdir so the original isn't modified in Git 2022-07-02 16:19:22 +02:00
Trenton Holmes
ec045e81f2 Moves the barcode related functionality out of tasks and into its own location. Splits up the testing based on that 2022-07-02 16:19:22 +02:00
Trenton Holmes
d8a7828cb5 Splits tests for the tasks into their own classes 2022-07-02 16:19:22 +02:00
Michael Shamoon
e32cb12ad7 fix content_type on test_api_create_storage_path 2022-07-02 16:19:22 +02:00
Trenton Holmes
ee2847cfea Omit a few files that don't really make sense to cover at all 2022-07-02 16:19:22 +02:00
Trenton Holmes
22e00a7080 Adds a few more test cases for coverage and adds no coverage to some others 2022-07-02 16:19:22 +02:00
Trenton Holmes
cbe567069f Fixes the whitenoise warning in the test suite 2022-07-02 16:19:22 +02:00
Trenton Holmes
53baed0389 Increases test coverage of storage paths 2022-07-02 16:19:22 +02:00
dependabot[bot]
39cb9589c8 Bump watchdog from 2.1.8 to 2.1.9 (#1132) 2022-07-02 14:07:32 +00:00
dependabot[bot]
bde03f3574 Bump scikit-learn from 1.0.2 to 1.1.1 (#992) 2022-07-02 13:44:01 +00:00
dependabot[bot]
8f31d150fd Bump setuptools from 62.3.3 to 62.6.0
Bumps [setuptools](https://github.com/pypa/setuptools) from 62.3.3 to 62.6.0.
- [Release notes](https://github.com/pypa/setuptools/releases)
- [Changelog](https://github.com/pypa/setuptools/blob/main/CHANGES.rst)
- [Commits](https://github.com/pypa/setuptools/compare/v62.3.3...v62.6.0)

---
updated-dependencies:
- dependency-name: setuptools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 15:08:18 +02:00
dependabot[bot]
453dbbb031 Bump django-filter from 21.1 to 22.1
Bumps [django-filter](https://github.com/carltongibson/django-filter) from 21.1 to 22.1.
- [Release notes](https://github.com/carltongibson/django-filter/releases)
- [Changelog](https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst)
- [Commits](https://github.com/carltongibson/django-filter/compare/21.1...22.1)

---
updated-dependencies:
- dependency-name: django-filter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 15:07:27 +02:00
dependabot[bot]
421754fff6 Bump actions/setup-python from 3 to 4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 14:26:49 +02:00
dependabot[bot]
05ec5feacf Bump sphinx from 4.5.0 to 5.0.2
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 4.5.0 to 5.0.2.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/5.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v4.5.0...v5.0.2)

---
updated-dependencies:
- dependency-name: sphinx
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 14:25:57 +02:00
dependabot[bot]
639d9b27c8 Bump docker/metadata-action from 3 to 4
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3 to 4.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 14:25:14 +02:00
dependabot[bot]
2c99d027f3 Bump tj-actions/changed-files from 22.1 to 23.1
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 22.1 to 23.1.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v22.1...v23.1)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-02 14:24:13 +02:00
dependabot[bot]
4f176682dc Merge pull request #1177 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.0.4 2022-07-02 08:09:09 +00:00
Michael Shamoon
13ef41bd42 Update ngbRadioGroups to native buttons 2022-07-02 00:55:18 -07:00
Michael Shamoon
3c6ba80323 Merge branch 'dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.0.4' of github.com:paperless-ngx/paperless-ngx into dependabot/npm_and_yarn/src-ui/dev/angular/cli-14.0.4 2022-07-01 14:15:10 -07:00
Michael Shamoon
fcfa8dfac2 bump angular, ng-bootstrap, ng-select 2022-07-01 14:12:17 -07:00
dependabot[bot]
5b73e9aee6 Bump @angular/cli from 13.3.7 to 14.0.4 in /src-ui
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 13.3.7 to 14.0.4.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/13.3.7...14.0.4)

---
updated-dependencies:
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 14:10:51 -07:00
shamoon
9ead264300 Merge pull request #1187 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.3.0
Bump cypress from 10.0.1 to 10.3.0 in /src-ui
2022-07-01 13:42:06 -07:00
dependabot[bot]
a617eda321 Bump cypress from 10.0.1 to 10.3.0 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 10.0.1 to 10.3.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v10.0.1...v10.3.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:41:20 +00:00
shamoon
c913fa65b2 Merge pull request #1185 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/zone.js-0.11.6
Bump zone.js from 0.11.5 to 0.11.6 in /src-ui
2022-07-01 13:40:40 -07:00
shamoon
497c8c84e5 Merge pull request #1184 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ts-node-10.8.1
Bump ts-node from 10.8.0 to 10.8.1 in /src-ui
2022-07-01 13:39:43 -07:00
dependabot[bot]
c58a94d497 Bump zone.js from 0.11.5 to 0.11.6 in /src-ui
Bumps [zone.js](https://github.com/angular/angular/tree/HEAD/packages/zone.js) from 0.11.5 to 0.11.6.
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/packages/zone.js/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/zone.js-0.11.6/packages/zone.js)

---
updated-dependencies:
- dependency-name: zone.js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:39:16 +00:00
dependabot[bot]
6a853d1fa2 Bump @angular/cli from 13.3.7 to 14.0.4 in /src-ui
Bumps [@angular/cli](https://github.com/angular/angular-cli) from 13.3.7 to 14.0.4.
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/13.3.7...14.0.4)

---
updated-dependencies:
- dependency-name: "@angular/cli"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:38:38 +00:00
dependabot[bot]
c30c58e564 Bump ts-node from 10.8.0 to 10.8.1 in /src-ui
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.8.0 to 10.8.1.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.8.0...v10.8.1)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:38:22 +00:00
shamoon
3b7a4c6b6b Merge pull request #1175 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-environment-jsdom-28.1.2
Bump jest-environment-jsdom from 28.1.0 to 28.1.2 in /src-ui
2022-07-01 13:37:47 -07:00
shamoon
978cdf2514 Merge pull request #1183 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-18.0.0
Bump @types/node from 17.0.38 to 18.0.0 in /src-ui
2022-07-01 13:37:05 -07:00
dependabot[bot]
33609616aa Bump jest-environment-jsdom from 28.1.0 to 28.1.2 in /src-ui
Bumps [jest-environment-jsdom](https://github.com/facebook/jest/tree/HEAD/packages/jest-environment-jsdom) from 28.1.0 to 28.1.2.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/jest-environment-jsdom)

---
updated-dependencies:
- dependency-name: jest-environment-jsdom
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:36:20 +00:00
dependabot[bot]
006f6c998d Bump @types/node from 17.0.38 to 18.0.0 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.38 to 18.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:36:05 +00:00
shamoon
05fd69eae4 Merge pull request #1181 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.2.2
Bump concurrently from 7.2.1 to 7.2.2 in /src-ui
2022-07-01 13:35:12 -07:00
dependabot[bot]
b6b8719efa Bump concurrently from 7.2.1 to 7.2.2 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.2.1 to 7.2.2.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.2.1...v7.2.2)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:33:25 +00:00
shamoon
7e8b9549a1 Merge pull request #1182 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-preset-angular-12.1.0
Bump jest-preset-angular from 12.0.1 to 12.1.0 in /src-ui
2022-07-01 13:32:00 -07:00
dependabot[bot]
032f78e0f5 Bump jest-preset-angular from 12.0.1 to 12.1.0 in /src-ui
Bumps [jest-preset-angular](https://github.com/thymikee/jest-preset-angular) from 12.0.1 to 12.1.0.
- [Release notes](https://github.com/thymikee/jest-preset-angular/releases)
- [Changelog](https://github.com/thymikee/jest-preset-angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/thymikee/jest-preset-angular/compare/v12.0.1...v12.1.0)

---
updated-dependencies:
- dependency-name: jest-preset-angular
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:30:30 +00:00
shamoon
4059bc9ec6 Merge pull request #1180 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-and-types/jest-28.1.2
Bump jest and @types/jest in /src-ui
2022-07-01 13:28:41 -07:00
dependabot[bot]
b85cd0925a Bump jest and @types/jest in /src-ui
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) and [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest). These dependencies needed to be updated together.

Updates `jest` from 28.1.0 to 28.1.2
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.2/packages/jest)

Updates `@types/jest` from 27.5.2 to 28.1.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 20:13:50 +00:00
ziprandom
f20254217f POST_CONSUME_SCRIPT: add documents archive_path 2022-06-22 14:00:20 +00:00
ziprandom
9424b763ca POST_CONSUME_SCRIPT: add document dates to env 2022-06-22 13:58:16 +00:00
ziprandom
08ae3f8771 use env variables in pre-|post-consume scripts
+ instead of positional arguments because it's easier to use in the
shell script and easier to read in the python code.
2022-06-22 13:56:59 +00:00
Felix E
68f0cf419b Merge pull request #1148 from pReya/patch-1
fix: update scanner capability
2022-06-20 14:25:59 +02:00
Moritz Stückler
26b12512b1 fix: update scanner capability
The Brother ADS-A1700W does indeed support SFTP. I've just bought it, and set it up like this.
2022-06-20 12:06:54 +02:00
Michael Shamoon
b98afadd5c python tests for tasks api endpoints 2022-06-17 23:11:29 -04:00
Trenton Holmes
499bd552a1 Fine, I made my own GitHub API interface. With blackjack and ... 2022-06-17 08:11:15 -07:00
Trenton Holmes
0090e27699 Adds a new workflow to cleanup image tags which no longer have an associated branch 2022-06-16 09:20:58 -07:00
shamoon
e568b3000e Add lsio to issue form 2022-06-14 08:31:08 -07:00
Michael Shamoon
7ae8b46ea7 allow PaperlessTask.started null 2022-06-13 16:21:37 -07:00
Michael Shamoon
ffb903841b Prevent duplicate api calls on text filtering 2022-06-13 15:35:00 -07:00
shamoon
72ee904e67 Merge pull request #1127 from paperless-ngx/feature-webp-thumbnails
Feature: Change document thumbnails to WebP
2022-06-12 09:44:53 -07:00
Trenton Holmes
222e1968d8 Removes one last portion of PNG vs WebP 2022-06-12 09:12:02 -07:00
Trenton Holmes
1df517afd3 Removes last vestiges of PNG from the tests, code, docs and samples 2022-06-11 14:20:50 -07:00
Trenton Holmes
cc4cea1a41 Converts the conversion into a database migration 2022-06-11 13:04:21 -07:00
Trenton Holmes
e8868d7ebf Entirely removes the optipng, updates ghostscript fall back to also use WebP. Updates the conversion to use a multiprocessing pool 2022-06-11 08:38:49 -07:00
Trenton Holmes
7d9a9033f9 Fixes the re-generation of thumbnails making webp file, but named as PNG files 2022-06-10 13:17:41 -07:00
Trenton Holmes
87322d7732 Adds quick documentation of new functionality 2022-06-10 11:26:23 -07:00
Trenton Holmes
08c3d6e84b Fixes existing testing, adds test coverage of new command 2022-06-10 10:12:01 -07:00
Trenton Holmes
b50325c3a3 Minor tweak to determining content type 2022-06-10 08:57:36 -07:00
Trenton Holmes
12cdcf7681 Adds information system check for PNG thumbnail existence 2022-06-10 08:56:55 -07:00
Trenton Holmes
34192349be Corrects the functionality of the webp conversion script 2022-06-10 08:56:25 -07:00
Trenton Holmes
153d0bb12a Corrects the logic of thumbnail path to account for both getting existing path or building expected path 2022-06-10 07:59:22 -07:00
Trenton Holmes
20092dadad Adds untested manual conversion command 2022-06-10 07:17:15 -07:00
Trenton Holmes
6844f8f2bf Minor tweaks to getting the document thumbnail path. Adds text thumbnail as webp 2022-06-10 06:56:28 -07:00
Michael Shamoon
58f2c6a5fc webp thumbnail support with png fallback 2022-06-10 02:28:13 -07:00
Michael Shamoon
5f10d86f04 Quick toggle for tags / doctypes etc on doc view 2022-06-09 08:37:40 -07:00
Michael Shamoon
1120e823ed Update tasks e2e tests to cypress 10
and remove debug print
2022-06-08 19:57:34 -07:00
Michael Shamoon
301b384a02 Merge branch 'dev' into feature-frontend-task-queue 2022-06-08 19:44:23 -07:00
Trenton Holmes
e4a26164de Merge pull request #1014 from paperless-ngx/feature-own-django-q
Feature: Fork django-q to update dependencies
2022-06-08 18:57:30 -07:00
Trenton Holmes
56d3e8893f Manually downgrades reportlab, no 3.9 wheel was built yet 2022-06-08 17:04:00 -07:00
Trenton Holmes
99336908f0 Points to the organization fork of django-q, which now includes my replicated changes 2022-06-08 16:04:03 -07:00
Trenton Holmes
090325af35 Adds git as needed for a git link 2022-06-08 15:59:25 -07:00
Trenton Holmes
485be6c3fd Changes to the forked django-q 2022-06-08 15:59:20 -07:00
Trenton Holmes
faa9d36c34 Merge pull request #1118 from paperless-ngx/feature-simplify-library-image
Chore: Simplify building Python wheels
2022-06-08 15:21:51 -07:00
Trenton Holmes
ea8e108cdf Removes references to now not set or used build args 2022-06-08 13:33:17 -07:00
Trenton Holmes
100f5422f6 Updates the wheel builders to let pip handle finding the sdist of the required package and version 2022-06-08 13:33:17 -07:00
Trenton Holmes
15c716e53b Merge pull request #1116 from paperless-ngx/feature-bugfix-reportlab
Chore: Manually downgrade reportlab (and update everything else)
2022-06-08 13:32:51 -07:00
Trenton Holmes
75e77c5e54 Re-locks all dependencies and manually downgrades reportlab to 3.6.9 until piwheels issue is fixed 2022-06-08 12:04:30 -07:00
Trenton Holmes
de4fdc07e0 Merge pull request #1103 from paperless-ngx/dependabot/pip/dev/whitenoise-6.2.0
Bump whitenoise from 6.1.0 to 6.2.0
2022-06-08 07:41:56 -07:00
dependabot[bot]
51edb2fa14 Bump whitenoise from 6.1.0 to 6.2.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/evansd/whitenoise/releases)
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.1.0...6.2.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-06 20:24:26 +00:00
Michael Shamoon
bd995089a8 Use pre_execute signal to specify started vs queued 2022-06-06 01:39:45 -07:00
Michael Shamoon
a90dd2ad1e Update e2e tests for collapsible result 2022-06-05 14:16:15 -07:00
Michael Shamoon
cd44151e16 add collapsible task result output 2022-06-05 14:16:15 -07:00
Trenton Holmes
5715ba1a9a Merge pull request #1091 from adam-ah/dev
Longer (5 vs 0.2s) guard_cycle for Django-Q
2022-06-05 08:11:51 -07:00
shamoon
6f4a1c1751 Merge pull request #1092 from similicious/fix/web-manifest
Fix app name and icons web manifest, optimize svg
2022-06-04 06:27:15 -07:00
similicious
2a1b1eb1a4 Fix app name 2022-06-04 12:29:12 +02:00
Adam H
20c597b1d7 Longer (5 vs 0.2s) guard_cycle for Django-Q
To reduce average CPU load. Given paperless is mostly idling and when not, just spawns long-running operations (e.g., OCR), a 0.2s health-check of the Django-Q cluster is unnecessary. See also #1084
2022-06-04 10:12:53 +10:00
Trenton Holmes
9dc1989507 Merge pull request #1088 from paperless-ngx/bugfix-docker-folder-create
Bugfix: Don't assume default Docker folders
2022-06-03 15:26:32 -07:00
Trenton Holmes
681cb1b978 Makes sure the export folder also exists 2022-06-03 14:02:58 -07:00
Trenton Holmes
332a9fac5a Adds quotes around usages that may be of a user defined directory
Co-authored-by: Felix E <felix@eckhofer.com>
2022-06-03 11:21:13 -07:00
Trenton Holmes
d118f4a3f0 Setup the defined user folders instead of always using the defaults at Docker startup 2022-06-03 09:18:48 -07:00
similicious
7620cd02f0 Optimize svg files with svgo 2022-06-03 11:41:46 +02:00
similicious
fdfd7bd82a Fix: icons and app name in manifest 2022-06-03 10:50:33 +02:00
shamoon
01c17e10cc Merge pull request #1083 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-10.0.1
Bump cypress from 9.6.1 to 10.0.1 in /src-ui
2022-06-02 17:29:51 -07:00
Michael Shamoon
bed03b301b use global fixtures in e2e tests 2022-06-02 15:00:41 -07:00
Michael Shamoon
ef48762da5 Migrate to cypress 10 2022-06-02 14:47:09 -07:00
dependabot[bot]
7978f3f0e6 Bump cypress from 9.6.1 to 10.0.1 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 9.6.1 to 10.0.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v9.6.1...v10.0.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-02 21:36:01 +00:00
shamoon
8d5fad72bf Merge pull request #1076 from paperless-ngx/query-params-e2e-tests
Query params e2e tests
2022-06-02 14:33:14 -07:00
shamoon
04db521851 Merge pull request #1049 from paperless-ngx/bugfix-better-sanity-msgs
Bugfix: Better sanity check messages
2022-06-02 11:17:56 -07:00
shamoon
26d27be161 Merge pull request #1081 from paperless-ngx/fix-pdf-viewer-margins
Fix vertical margins between pages of pdf viewer
2022-06-02 11:17:02 -07:00
Michael Shamoon
1259d06302 Fix vertical margins between pages of pdf viewer 2022-06-02 11:03:54 -07:00
Trenton Holmes
4db3f366ef Merge pull request #1032 from pheerai/feature-mailActionCustomTag
Feature mail action custom tag
2022-06-02 09:46:34 -07:00
Trenton Holmes
1c52c5b673 Merge pull request #1065 from paperless-ngx/dependabot/github_actions/dev/docker/setup-qemu-action-2
Bump docker/setup-qemu-action from 1 to 2
2022-06-01 15:53:16 -07:00
dependabot[bot]
a6a885d4f4 Bump docker/setup-qemu-action from 1 to 2
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 22:25:39 +00:00
Trenton Holmes
b11066cef1 Merge pull request #1064 from paperless-ngx/dependabot/github_actions/dev/docker/setup-buildx-action-2
Bump docker/setup-buildx-action from 1 to 2
2022-06-01 15:25:18 -07:00
Trenton Holmes
1941b0c3ed Merge pull request #1063 from paperless-ngx/dependabot/github_actions/dev/docker/build-push-action-3
Bump docker/build-push-action from 2 to 3
2022-06-01 15:24:15 -07:00
shamoon
9a47fc747f Merge pull request #1075 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress/schematic-2.0.0 2022-06-01 14:53:12 -07:00
Trenton Holmes
a425d3a55b Merge pull request #1062 from paperless-ngx/dependabot/github_actions/dev/tj-actions/changed-files-22.1
Bump tj-actions/changed-files from 19 to 22.1
2022-06-01 14:25:11 -07:00
Michael Shamoon
f03a0f6e73 Add documents query params e2e tests 2022-06-01 14:12:38 -07:00
dependabot[bot]
74d5724092 Bump @cypress/schematic from 1.7.0 to 2.0.0 in /src-ui
Bumps [@cypress/schematic](https://github.com/cypress-io/cypress) from 1.7.0 to 2.0.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/@cypress/schematic-v1.7.0...@cypress/schematic-v2.0.0)

---
updated-dependencies:
- dependency-name: "@cypress/schematic"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 21:10:21 +00:00
shamoon
3df21fcaa3 Merge pull request #1073 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.2.1
Bump concurrently from 7.1.0 to 7.2.1 in /src-ui
2022-06-01 14:09:19 -07:00
shamoon
fbb5de6740 Merge pull request #1074 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/jest-27.5.2
Bump @types/jest from 27.4.1 to 27.5.2 in /src-ui
2022-06-01 14:08:55 -07:00
dependabot[bot]
f7f9096c6e Bump concurrently from 7.1.0 to 7.2.1 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.1.0 to 7.2.1.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.1.0...v7.2.1)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 21:07:51 +00:00
dependabot[bot]
d5a8e1725d Bump @types/jest from 27.4.1 to 27.5.2 in /src-ui
Bumps [@types/jest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jest) from 27.4.1 to 27.5.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jest)

---
updated-dependencies:
- dependency-name: "@types/jest"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 21:07:37 +00:00
shamoon
34413747d5 Merge pull request #1070 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ts-node-10.8.0
Bump ts-node from 10.7.0 to 10.8.0 in /src-ui
2022-06-01 14:06:48 -07:00
dependabot[bot]
18de626919 Bump ts-node from 10.7.0 to 10.8.0 in /src-ui
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 10.7.0 to 10.8.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.7.0...v10.8.0)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 21:05:51 +00:00
shamoon
bef192084f Merge pull request #1071 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-28.1.0
Bump jest from 28.0.3 to 28.1.0 in /src-ui
2022-06-01 14:04:47 -07:00
dependabot[bot]
54eef16bfb Bump jest from 28.0.3 to 28.1.0 in /src-ui
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 28.0.3 to 28.1.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.1.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 21:03:57 +00:00
shamoon
7be49dba69 Merge pull request #1069 from paperless-ngx/npm-updates-220601
Chore: npm package updates 22-06-01
2022-06-01 14:02:13 -07:00
Trenton Holmes
218a6af62a Merge pull request #1061 from paperless-ngx/dependabot/github_actions/dev/docker/login-action-2
Bump docker/login-action from 1 to 2
2022-06-01 14:00:14 -07:00
Michael Shamoon
f0315d5c70 bump packages for angular, popperjs, node, ngx-cookie-service 2022-06-01 13:50:17 -07:00
dependabot[bot]
f82e04201b Bump docker/setup-buildx-action from 1 to 2
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1 to 2.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 20:17:31 +00:00
dependabot[bot]
f41231f017 Bump docker/build-push-action from 2 to 3
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2 to 3.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 20:17:28 +00:00
dependabot[bot]
ae1fb76d13 Bump tj-actions/changed-files from 19 to 22.1
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 19 to 22.1.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v19...v22.1)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 20:17:25 +00:00
dependabot[bot]
fa0023223f Bump docker/login-action from 1 to 2
Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 20:17:21 +00:00
Michael Shamoon
1c80fd17fd Reorganize e2e tests 2022-06-01 12:37:43 -07:00
Paperless-ngx Translation Bot [bot]
48cb347198 New Crowdin updates (#959)
* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Dutch)
[ci skip]

* New translations django.po (French)
[ci skip]

* New translations django.po (Romanian)
[ci skip]

* New translations django.po (Spanish)
[ci skip]

* New translations django.po (Belarusian)
[ci skip]

* New translations django.po (Czech)
[ci skip]

* New translations django.po (Greek)
[ci skip]

* New translations django.po (Finnish)
[ci skip]

* New translations django.po (Hebrew)
[ci skip]

* New translations django.po (Italian)
[ci skip]

* New translations django.po (Polish)
[ci skip]

* New translations django.po (Serbian (Latin))
[ci skip]

* New translations django.po (Portuguese)
[ci skip]

* New translations django.po (Russian)
[ci skip]

* New translations django.po (Slovak)
[ci skip]

* New translations django.po (Slovenian)
[ci skip]

* New translations django.po (Swedish)
[ci skip]

* New translations django.po (Turkish)
[ci skip]

* New translations django.po (Chinese Simplified)
[ci skip]

* New translations django.po (Portuguese, Brazilian)
[ci skip]

* New translations django.po (Luxembourgish)
[ci skip]

* New translations django.po (Danish)
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations django.po (German)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations django.po (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]
2022-06-01 10:20:51 -07:00
shamoon
ffd583ed11 Merge pull request #1043 from slankes/qualify_dockerimages
Qualify images hosted by docker.io in compose files
2022-06-01 09:38:14 -07:00
Michael Shamoon
97bbca3aef fix merge conflict 2022-06-01 09:28:26 -07:00
shamoon
06fd92fd27 Merge pull request #1058 from paperless-ngx/bugfix-enable-django-q-debug
Bugfix: Pass debug setting on to django-q
2022-06-01 09:20:38 -07:00
Trenton Holmes
c0e05a7572 If debug mode is enabled, also pass this setting on to django-q 2022-06-01 08:59:20 -07:00
shamoon
2abe6eec84 Merge pull request #1057 from paperless-ngx/bugfix-document-str
Bugfix: Don't assume the document has a title set
2022-06-01 08:28:22 -07:00
Trenton Holmes
0b6e73840a Fixes formatting 2022-06-01 08:20:04 -07:00
Trenton Holmes
1707fe8990 Updates the Document str to account for a blank title instead of assuming title will be populated 2022-06-01 08:03:38 -07:00
Trenton Holmes
9335b0779c Update no content warning to be more clear it is missing OCR content
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
2022-06-01 07:44:48 -07:00
Trenton Holmes
277b521fad Removes unused import 2022-06-01 07:43:46 -07:00
Trenton Holmes
af1b634d6d Updates to use pathlib instead of os.path 2022-05-31 08:42:11 -07:00
Sven Lankes
cc19008961 We want gotenberg 7.4 and not pin to 7.4.4 2022-05-31 09:48:01 +02:00
Trenton Holmes
be304e37b4 Refines the sanity check header, fixes other test issues 2022-05-30 18:21:24 -07:00
Trenton Holmes
0a34a4a7ad Makes the sanity check messages better for users 2022-05-30 17:03:33 -07:00
Oliver Rümpelein
898564c8d8 Add migration for new rule. 2022-05-29 15:22:50 +02:00
Oliver Rümpelein
708638b97f Merge remote-tracking branch 'upstream/dev' into feature-mailActionCustomTag 2022-05-29 13:51:54 +02:00
Sven Lankes
458e857956 use qualified hostnames for images stored on docker.io 2022-05-29 13:50:58 +02:00
Oliver Rümpelein
ac62bcb7ba Clear cache instead of working around it. 2022-05-27 22:51:32 +02:00
Michael Shamoon
6b1c50b051 Simple e2e test for Tasks component 2022-05-27 01:11:20 -07:00
Michael Shamoon
d4a5376f73 automatically refresh tasks on file socket messages too 2022-05-27 00:45:50 -07:00
Michael Shamoon
71b34aa3bd fix result on empty task 2022-05-27 00:45:50 -07:00
Michael Shamoon
6b4d8b18e0 show failed tasks badge in sidebar 2022-05-27 00:45:50 -07:00
Michael Shamoon
66b2013d23 tasks usability improvements 2022-05-27 00:45:50 -07:00
Michael Shamoon
dc86993c84 mobile improvements, fix dismiss 1 task 2022-05-26 22:15:56 -07:00
Michael Shamoon
00a5c13001 Update 1021_paperlesstask.py 2022-05-26 21:58:02 -07:00
Michael Shamoon
0e34923114 Revert "Merge branch 'feature-frontend-task-queue' of github.com:paperless-ngx/paperless-ngx into feature-frontend-task-queue"
This reverts commit 011164bc32, reversing
changes made to 0a43ce9ced.
2022-05-26 21:24:55 -07:00
Michael Shamoon
011164bc32 Merge branch 'feature-frontend-task-queue' of github.com:paperless-ngx/paperless-ngx into feature-frontend-task-queue 2022-05-26 21:24:45 -07:00
Michael Shamoon
0a43ce9ced fix merge 2022-05-26 21:21:29 -07:00
Michael Shamoon
d925fb38ce Basic tasks frontend view
Update app-frame.component.ts
2022-05-26 21:19:16 -07:00
Michael Shamoon
3dc617277f Task results popover
fix merge
2022-05-26 21:18:39 -07:00
Michael Shamoon
096af09fc4 Basic tasks frontend view
Update app-frame.component.ts
2022-05-26 21:09:11 -07:00
Michael Shamoon
f97f9b857b Task results popover 2022-05-26 21:09:08 -07:00
Michael Shamoon
5c0829b052 Better tasks api endpoint 2022-05-26 21:09:05 -07:00
Michael Shamoon
aa999b34e2 Update frontend for reworked tasks api endpoint 2022-05-26 21:09:05 -07:00
Michael Shamoon
0a06c291e2 acknowledge_tasks endpoint & basic UI
Update tasks.service.ts
2022-05-26 21:09:04 -07:00
Michael Shamoon
4bbaf5f89c update post_save signal receiver 2022-05-26 21:09:04 -07:00
Michael Shamoon
f88e070455 Toggle functionality for tasks list 2022-05-26 21:09:01 -07:00
Michael Shamoon
5c980c31be PaperlessTask and consumption_tasks endpoint 2022-05-26 21:05:24 -07:00
shamoon
9eee37bc68 Merge branch 'dev' into feature-created-date 2022-05-26 14:28:33 -07:00
Quinn Casey
a4927477fb Merge pull request #1008 from paperless-ngx/bugfix-max-pixel-setting
Bugfix: Corrects the setting of max pixel size for OCR
2022-05-26 09:12:24 -07:00
Quinn Casey
d0a6c6a2f3 Merge pull request #1007 from paperless-ngx/improve-date-paste-input
Feature: better date pasting
2022-05-26 08:50:08 -07:00
Quinn Casey
92757c5d8c Merge pull request #1017 from paperless-ngx/alphabetize-tags
Enhancement: Alphabetize tags by default
2022-05-26 08:42:55 -07:00
Oliver Rümpelein
0cc7765f2b Revert accidentally included changes. 2022-05-26 17:40:11 +02:00
Quinn Casey
ee1ef4ff56 Merge pull request #1000 from paperless-ngx/rework-query-params-logic
Fix: Rework query params logic
2022-05-26 08:18:43 -07:00
Quinn Casey
b5eed5e043 Merge pull request #1030 from paperless-ngx/feature-reload-language-change
Enhancement: show note on language change and offer reload
2022-05-26 08:12:43 -07:00
Oliver Rümpelein
62a253f571 Merge remote-tracking branch 'upstream/dev' into feature-mailActionCustomTag 2022-05-26 14:05:48 +02:00
Oliver Rümpelein
080a23dd8c Update docs. 2022-05-26 12:42:29 +02:00
Oliver Rümpelein
c90129957e Make test work. 2022-05-26 12:42:20 +02:00
Michael Shamoon
0fa717fe11 Show note on language change and offer reload 2022-05-25 16:06:59 -07:00
Michael Shamoon
e72766a5bf fix global overlay color 2022-05-25 14:47:05 -07:00
Oliver Rümpelein
104a684514 Revert all changes to tests, will need a more structured approach. 2022-05-25 20:47:43 +02:00
Oliver Rümpelein
5a809d7e31 Add first draft implementation, test broken. 2022-05-25 19:23:52 +02:00
tooomm
ce3f6837e9 Link issues, capitalization and minor fixes 2022-05-25 19:23:52 +02:00
tooomm
3ffd2a745b update heading levels for v1.7.0 2022-05-25 19:23:52 +02:00
shamoon
6b9c07b809 Merge pull request #1025 from paperless-ngx/fix-pytest-api-auth
Fix: use `force_authentication` instead of `force_login` for python api tests
2022-05-24 09:59:14 -07:00
Michael Shamoon
d4e2722586 use force_authenticate in api tests 2022-05-23 23:07:49 -07:00
shamoon
1343767295 Merge pull request #1013 from paperless-ngx/chore-manual-updates
Chore: Manually update dependencies
2022-05-23 20:32:23 -07:00
Michael Shamoon
4b4bfc052f Alphabetize tags by default 2022-05-23 20:25:26 -07:00
shamoon
f7539eb931 Merge pull request #1016 from paperless-ngx/more-redis-wait-info
Feature: Include error information when Redis connection fails
2022-05-23 19:12:49 -07:00
Trenton Holmes
efcfecca10 Also output the exception when the Redis ping fails 2022-05-23 16:53:48 -07:00
shamoon
6a3735822d Merge pull request #1009 from dragere/patch-2
Better handle long tags on small cards
2022-05-23 11:51:07 -07:00
Michael Shamoon
5bbcc7f2f7 Better handle long tag names 2022-05-23 11:24:13 -07:00
Michael Shamoon
400f1d37bf Revert "Allow line breaks in Tags"
This reverts commit 14cbcb4af6.
2022-05-23 11:24:08 -07:00
Trenton Holmes
985b774378 Reworks documentation on the max pixels setting 2022-05-23 10:54:41 -07:00
dragere
14cbcb4af6 Allow line breaks in Tags 2022-05-23 19:28:29 +02:00
Trenton Holmes
18ce86407d Manually updates dependencies 2022-05-23 09:31:31 -07:00
Michael Shamoon
d0ee203265 Update saved-view-widget.component.ts
[ci skip]
2022-05-23 01:54:21 -07:00
Trenton Holmes
fc26fe0ac0 Updates to provide the user provided max pixel size to ocrmypdf 2022-05-22 16:56:08 -07:00
Michael Shamoon
0e0cbe3517 Use NgbDateParserFormatter 2022-05-22 14:38:15 -07:00
Michael Shamoon
8e2cb6d416 Strip some characters from pasted date input 2022-05-22 09:03:26 -07:00
Michael Shamoon
73a6e68e03 Fix conflicting rule type 22 2022-05-21 00:22:36 -07:00
Michael Shamoon
48f9cb09af minor refactor query params utils 2022-05-21 00:22:36 -07:00
Michael Shamoon
1c83f489d1 Use 1/0 instead of true/false 2022-05-21 00:22:35 -07:00
Michael Shamoon
f6d78a0044 fix documents list without query params 2022-05-20 23:18:18 -07:00
Michael Shamoon
e60a7df9a2 Refactor query params service 2022-05-20 23:18:18 -07:00
phail
d0a0ae91c4 Merge branch 'dev' into feature-consume-eml 2022-05-20 19:29:52 +02:00
Quinn Casey
feaf2da834 Merge pull request #995 from paperless-ngx/translate-more-tooltips
Fix: add translation for some un-translated tooltips
2022-05-20 06:05:41 -07:00
Michael Shamoon
bf8703deae Update messages.xlf 2022-05-19 23:54:23 -07:00
Michael Shamoon
1997b7b2d9 Mark various tooltips for translation 2022-05-19 23:50:57 -07:00
Quinn Casey
666b938550 Merge pull request #990 from tooomm/patch-2
Docs: Fix headings and add links to PRs in changelog
2022-05-19 17:23:23 -07:00
Michael Shamoon
4e8f546502 Update django.po 2022-05-19 15:24:43 -07:00
Michael Shamoon
5e9f3586cd Update messages.xlf 2022-05-19 15:22:13 -07:00
Markus
69ef26dab0 Feature: Dynamic document storage pathes (#916)
* Added devcontainer

* Add feature storage pathes

* Exclude tests and add versioning

* Check escaping

* Check escaping

* Check quoting

* Echo

* Escape

* Escape :

* Double escape \

* Escaping

* Remove if

* Escape colon

* Missing \

* Esacpe :

* Escape all

* test

* Remove sed

* Fix exclude

* Remove SED command

* Add LD_LIBRARY_PATH

* Adjusted to v1.7

* Updated test-cases

* Remove devcontainer

* Removed internal build-file

* Run pre-commit

* Corrected flak8 error

* Adjusted to v1.7

* Updated test-cases

* Corrected flak8 error

* Adjusted to new plural translations

* Small adjustments due to code-review backend

* Adjusted line-break

* Removed PAPERLESS prefix from settings variables

* Corrected style change due to search+replace

* First documentation draft

* Revert changes to Pipfile

* Add sphinx-autobuild with keep-outdated

* Revert merge error that results in wrong storage path is evaluated

* Adjust styles of generated files ...

* Adds additional testing to cover dynamic storage path functionality

* Remove unnecessary condition

* Add hint to edit storage path dialog

* Correct spelling of pathes to paths

* Minor documentation tweaks

* Minor typo

* improving wrapping of filter editor buttons with new storage path button

* Update .gitignore

* Fix select border radius in non input-groups

* Better storage path edit hint

* Add note to edit storage path dialog re document_renamer

* Add note to bulk edit storage path re document_renamer

* Rename FILTER_STORAGE_DIRECTORY to PATH

* Fix broken filter rule parsing

* Show default storage if unspecified

* Remove note re storage path on bulk edit

* Add basic validation of filename variables

Co-authored-by: Markus Kling <markus@markus-kling.net>
Co-authored-by: Trenton Holmes <holmes.trenton@gmail.com>
Co-authored-by: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
Co-authored-by: Quinn Casey <quinn@quinncasey.com>
2022-05-19 14:42:25 -07:00
tooomm
163231d307 Link issues, capitalization and minor fixes 2022-05-19 23:12:40 +02:00
phail
c04b9fd7f6 switch to From: Header instead of date to compensate for older libmagic versions 2022-05-19 22:51:17 +02:00
tooomm
e530750fc6 update heading levels for v1.7.0 2022-05-19 22:05:43 +02:00
Quinn Casey
c3997c9f26 Merge pull request #987 from paperless-ngx/canon-mfp-new-config
Docs: Add link to new config option in scanners.rst
2022-05-18 14:48:30 -07:00
Quinn Casey
6d7defa79e Merge pull request #986 from paperless-ngx/fix-npm-optional-flag
Change npm --no-optional to --omit=optional
2022-05-18 14:42:08 -07:00
Quinn Casey
bc232582df Add link to new config option 2022-05-18 14:30:33 -07:00
Quinn Casey
286affea38 Fix formatting 2022-05-18 14:30:16 -07:00
Quinn Casey
5f5c9e2eb3 Merge branch 'main' into dev 2022-05-18 14:26:36 -07:00
Quinn Casey
de5eaf1c2c Merge pull request #985 from paperless-ngx/fix-changelog-links
Fix links in changelog
2022-05-18 14:25:56 -07:00
Quinn Casey
6f3755684e Merge pull request #984 from eingemaischt/canon-maxify-mb5350
Added Maxify MB5350 Documentation
2022-05-18 14:25:18 -07:00
Quinn Casey
6950daca9a Link to configuration values for Canon MFP 2022-05-18 14:03:43 -07:00
Michael Shamoon
b4de83e348 Change npm --no-optional to --omit=optional 2022-05-18 14:01:19 -07:00
Quinn Casey
83a1a32a5e Fix formatting, typo 2022-05-18 13:53:03 -07:00
Michael Shamoon
3cea4804f8 Update .gitignore
[ci skip]
2022-05-18 13:52:31 -07:00
Michael Shamoon
8ce32003d7 Update changelog.md 2022-05-18 13:38:56 -07:00
Philipp
d3191490d9 Added Maxify MB5350 Documentation 2022-05-18 20:59:10 +02:00
Michael Shamoon
f6d5ba56b1 Update custom.css
[ci skip]
2022-05-18 11:41:36 -07:00
shamoon
998ca64c1e Merge pull request #919 from paperless-ngx/feature-settings-saved-to-db
Feature: frontend settings saved to database
2022-05-18 11:33:17 -07:00
shamoon
eaa33744a6 Merge pull request #982 from qcasey/changelog-to-md
Add `myst-parser` to fix readthedocs
2022-05-18 11:01:59 -07:00
Quinn Casey
c0a47ca999 Add myst-parser 2022-05-18 07:48:24 -07:00
Quinn Casey
22bfab840d Merge pull request #878 from dabenzel/patch-1
[documentation] added iOS Shortcut Link for Uploading PDF to paperless
2022-05-18 07:00:28 -07:00
Michael Shamoon
88b7f8ac1e Use zoneinfo instead of tz
Co-Authored-By: Trenton Holmes <797416+stumpylog@users.noreply.github.com>
2022-05-18 03:25:02 -07:00
shamoon
6fbe4404f5 Update api.rst 2022-05-18 03:25:02 -07:00
Michael Shamoon
d5e340d0f6 Consolidate date adapter 2022-05-18 03:25:02 -07:00
Michael Shamoon
94954eeba3 created_date error display 2022-05-18 03:25:02 -07:00
Michael Shamoon
b2911b2eba use created_date in all of frontend 2022-05-18 03:25:02 -07:00
Michael Shamoon
c398f22e76 fix docs update endpoint 2022-05-18 03:25:02 -07:00
Michael Shamoon
063f6c1d5a only pass created_date from frontend 2022-05-18 03:25:02 -07:00
Michael Shamoon
2ca691d3b8 use created_date 2022-05-18 03:25:02 -07:00
shamoon
f2086b3a90 Update shortcut link 2022-05-18 03:19:41 -07:00
Philipp
bb15b744c8 Add "Created" as additional (optional) parameter for post_documents (#965)
* Added "created" as optional parameter for post_documents.

* Fixed Conflict

* After Black Reformatting

* Run "add-trailing-comma"

* The right order between black and trailing comma is important....

* Added required=False

* Adds unit test for optional created in document api POST

* Fixes adding of settings override

* And a mis-added print, sigh

Co-authored-by: Philipp <philipp@invalid.invalid>
Co-authored-by: Trenton Holmes <holmes.trenton@gmail.com>
2022-05-18 02:56:32 -07:00
shamoon
f1e99de59a Merge pull request #979 from paperless-ngx/fix-978
Fix: Title is changed after switching doc quickly
2022-05-18 02:55:24 -07:00
Michael Shamoon
e0999c7ba4 pull frontend lang setting from db if set 2022-05-18 02:41:15 -07:00
Michael Shamoon
89c5aac9ed tap ui settings get to avoid dup 2022-05-17 16:12:59 -07:00
Michael Shamoon
4a7c9a6050 Update settings e2e fixture 2022-05-17 11:14:21 -07:00
Michael Shamoon
e94ce3102e Correct translation string locations 2022-05-17 11:14:21 -07:00
Michael Shamoon
0225faddbb Add ui_settings to exporter 2022-05-17 11:13:58 -07:00
Trenton Holmes
fb10d3a5be Removes accidental printing left in testing 2022-05-17 11:13:58 -07:00
Trenton Holmes
0613e3ab12 Makes minor improvements to ui_settings API testing 2022-05-17 11:13:58 -07:00
Michael Shamoon
b21edde1bc Code suggestions
Co-Authored-By: Trenton Holmes <797416+stumpylog@users.noreply.github.com>
2022-05-17 11:13:58 -07:00
Michael Shamoon
1953a8ecb7 Note JSON1 extension requirement on bare metal installs 2022-05-17 11:13:58 -07:00
Michael Shamoon
c84b592543 Update frontend strings 2022-05-17 11:13:58 -07:00
Michael Shamoon
53f905b88b basic python tests 2022-05-17 11:13:19 -07:00
Michael Shamoon
d057a5076c Remove post_save receiver 2022-05-17 11:13:19 -07:00
Michael Shamoon
bcb9c6ccb0 Properly get username & display name 2022-05-17 11:13:19 -07:00
Michael Shamoon
96f86adfb8 PaperlessUiSettings data object 2022-05-17 11:13:19 -07:00
Michael Shamoon
de89f75707 Refactor to UiSettings 2022-05-17 11:11:39 -07:00
Michael Shamoon
b2307d911e update e2e tests for settings initialization 2022-05-17 11:11:39 -07:00
Michael Shamoon
35a558ec01 include language in db settings 2022-05-17 11:11:39 -07:00
Michael Shamoon
2e97c0a5fb Automatic migration to database 2022-05-17 11:11:39 -07:00
Michael Shamoon
7d9575b7fd Use app initializer to wait on settings 2022-05-17 11:11:38 -07:00
Michael Shamoon
321e0ced2a fix key constraint error 2022-05-17 11:11:38 -07:00
Michael Shamoon
a697eb8530 Basic frontend settings retrieval 2022-05-17 11:11:38 -07:00
Michael Shamoon
4b37c1963b skeleton frontend_settings api endpoint 2022-05-17 11:11:38 -07:00
Michael Shamoon
8f2687e390 frontend settings db migration 2022-05-17 11:11:38 -07:00
Michael Shamoon
c0f799a807 Update settings.service.ts 2022-05-17 11:11:38 -07:00
shamoon
abc5bd98b4 Merge pull request #956 from paperless-ngx/fix-warn-max-open-docs
Fix: warn when closing a document with unsaved changes due to max open docs
2022-05-17 10:43:10 -07:00
Michael Shamoon
a51893c849 Manually dirty check title on doc change 2022-05-17 10:36:43 -07:00
Michael Shamoon
79e218d00a Fix title subscription fires even after doc change 2022-05-17 09:59:14 -07:00
Trenton Holmes
9ae20a6bec Merge pull request #953 from paperless-ngx/bugfix-intoify-debounce
Bugfix: Adds configurable intoify debounce time
2022-05-17 09:25:29 -07:00
Michael Shamoon
2f739ff0b3 close button color with light primary only for toasts 2022-05-17 09:09:38 -07:00
Trenton Holmes
e0a8f4df0d Adds troubleshooting and missing documentation for inotify and polling configuration 2022-05-17 08:56:52 -07:00
shamoon
347d7c07ef Merge pull request #942 from paperless-ngx/bugfix-date-format
Bugfix: Fixes document filename date off by 1 issue
2022-05-16 21:47:56 -07:00
shamoon
42e3cf821b Merge pull request #943 from paperless-ngx/feature-seperate-library-workflow
Feature:  Move installer library images to new workflow
2022-05-16 21:46:35 -07:00
shamoon
574f1be067 Merge pull request #973 from paperless-ngx/feature-chore-deps-update
Chore: Manually update all Python dependencies
2022-05-16 17:25:28 -07:00
Trenton Holmes
cbde0e0286 Manually updates dependency files 2022-05-16 16:05:40 -07:00
benzel
11012c6be1 Update docs/scanners.rst
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-05-16 21:44:34 +02:00
shamoon
432bd83188 Merge pull request #962 from paperless-ngx/add-MIME-pdf-check
fixes #949: change to MIME detection for files
2022-05-16 10:40:43 -07:00
Florian Brandes
f8adfa9873 fixes #949: change to MIME detection for files
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-05-16 17:29:29 +02:00
Michael Shamoon
1efd226f75 let OpenDocumentsService handle nav 2022-05-15 23:44:29 -07:00
Michael Shamoon
ba1bb95935 Update messages.xlf 2022-05-15 23:44:28 -07:00
Michael Shamoon
f5e740f2ec Warn on closing edited doc due to max open docs 2022-05-15 22:55:25 -07:00
benzel
98be7b227f Update scanners.rst 2022-05-15 21:10:03 +02:00
Trenton Holmes
f07cfd4f51 Adds configuration variable to the inotify debounce timing 2022-05-15 11:48:12 -07:00
Trenton Holmes
029d81122b Makes the workflow triggers more specific 2022-05-15 11:25:14 -07:00
shamoon
26eb7ecdb5 Merge pull request #948 from Berjou/docs-typo
docs: fix some typos
2022-05-14 16:00:32 -07:00
Maxime Joubert
3cf3ea4e20 docs: fix some typos 2022-05-15 00:52:37 +02:00
shamoon
84a2937d31 Merge pull request #946 from tooomm/patch-1
[Docs] Fix 2 small typos
2022-05-14 09:11:04 -07:00
Trenton Holmes
1d1f3bde96 Moves the asserts to be closer together 2022-05-14 08:20:55 -07:00
tooomm
329d81ec64 wording 2022-05-14 17:05:52 +02:00
phail
6809b15ce1 workaround for wrong mime detection of .eml files 2022-05-14 16:47:12 +02:00
tooomm
c725f50f07 one more 2022-05-14 15:50:38 +02:00
tooomm
463560c929 small typos 2022-05-14 15:45:03 +02:00
Paperless-ngx Translation Bot [bot]
c7412deb77 New Crowdin updates (#911)
* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations django.po (Polish)
[ci skip]

* New translations django.po (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

Co-authored-by: Michael Shamoon <4887959+shamoon@users.noreply.github.com>
2022-05-13 20:34:51 -07:00
Michael Shamoon
9ed6c78466 Update date.ts
[ci skip]
2022-05-13 11:52:05 -07:00
shamoon
9a1bd9637c Merge pull request #935 from qcasey/changelog-to-md
Convert Changelog to markdown, auto-commit future changelogs
2022-05-13 09:29:07 -07:00
Trenton Holmes
87fd18bee1 Seperates out the library image building into a new, minimal workflow 2022-05-13 09:21:26 -07:00
Trenton Holmes
f3dced3199 Fixes Document public filename so it will use the local date instead of UTC date 2022-05-13 09:10:36 -07:00
shamoon
b36989e8e4 Merge pull request #941 from tooomm/patch-1
[Readme] Fix typo
2022-05-13 08:38:45 -07:00
tooomm
95c45b90a8 fix typo 2022-05-13 17:31:02 +02:00
Michael Shamoon
0bdc132dcf Update messages.xlf
[ci skip]
2022-05-13 08:30:41 -07:00
Quinn Casey
e450391d9b Add links to usernames and PR #s
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-05-13 07:46:49 -07:00
Quinn Casey
38f4bf4e28 Merge pull request #939 from paperless-ngx/fix-management-pages-plurals
Fix: management pages plurals incorrect in other languages
2022-05-13 07:45:41 -07:00
Quinn Casey
109b0ea78b Merge pull request #933 from paperless-ngx/1.7.1-frontend-css-tweaks
Fix: v1.7.1 frontend visual fixes
2022-05-13 07:44:28 -07:00
Michael Shamoon
5061feb7bc Update messages.xlf 2022-05-12 20:39:04 -07:00
Michael Shamoon
52480e0bc4 Use explicit plural strings on management pages 2022-05-12 20:34:32 -07:00
Michael Shamoon
109dd45b56 Update messages.xlf
[ci skip]
2022-05-12 20:32:17 -07:00
Michael Shamoon
c8da513d97 Hide text on large cards on tiny screens 2022-05-12 20:22:40 -07:00
Quinn Casey
06e7e40b15 Use checkout in action 2022-05-12 15:36:46 -07:00
Quinn Casey
f3d6fcb52b Merge pull request #920 from paperless-ngx/frontend-asn-empty
Feature: allow all ASN filtering functions
2022-05-12 10:28:10 -07:00
Quinn Casey
2decae6586 Merge pull request #930 from paperless-ngx/fix-unassigned-filtering-query-params
Fix: unassigned query params ignored
2022-05-12 09:53:00 -07:00
Quinn Casey
6766041328 Add myst_parser for sphinx, changelog to md 2022-05-12 09:15:55 -07:00
Quinn Casey
2d96cec464 Convert changelog to md 2022-05-12 09:13:32 -07:00
Quinn Casey
843d229c3d Append generated changelog to docs 2022-05-12 09:13:21 -07:00
Michael Shamoon
3d5bcd9d75 Visible bg & text color changes on ng-select 2022-05-11 23:20:21 -07:00
Michael Shamoon
b391dd6a3f Improve mobile filter editor layout with long languages 2022-05-11 23:20:21 -07:00
Quinn Casey
c126cf2bc1 Merge pull request #924 from vlcty/enable-ipv6
gunicorn: Allow IPv6 sockets
2022-05-11 16:04:06 -07:00
Michael Shamoon
fcb5beb617 Fix unassigned query params ignored 2022-05-11 15:15:06 -07:00
Michael Shamoon
dad141726c Fix disabled input bg color 2022-05-11 14:44:02 -07:00
Michael Shamoon
48637188a7 Handle all ASN filtering rules 2022-05-11 14:44:02 -07:00
Quinn Casey
5d063e8449 Merge pull request #925 from paperless-ngx/chore-remote-version-tests
Chore: Add testing for remote version checking
2022-05-11 14:16:46 -07:00
Trenton Holmes
2b8a03e93c Adds unit testing for remote version getting 2022-05-11 12:59:38 -07:00
Josef 'veloc1ty' Stautner
213665cea2 gunicorn: Allow ipv6 sockets 2022-05-11 21:00:00 +02:00
shamoon
d230431227 Merge pull request #923 from paperless-ngx/fix-queryparams-comma-splitting
Fix: allow commas in non-multi rules query params
2022-05-11 11:15:39 -07:00
Michael Shamoon
2040c9fe41 allow commas in non-multi rules query params 2022-05-11 10:26:17 -07:00
shamoon
b49821a9f4 Merge pull request #921 from lippoliv/fix-update-notice-typo
fix duplicate v in update notification popup
2022-05-10 23:33:12 -07:00
Oliver Lippert
1701b0afed fix typo in update notification popup
seems like appRemoteVersion.version brings it's own "v"
2022-05-11 08:26:24 +02:00
Michael Shamoon
7785431152 ASN 'is null' from frontend 2022-05-10 21:51:29 -07:00
shamoon
b325233b2d Merge pull request #883 from paperless-ngx/feature-version-export-import
Fix: Include version in export for better error messages
2022-05-10 19:49:46 -07:00
Quinn Casey
3baf29a6b7 Use currently... importing... instead of "vs" 2022-05-10 17:41:09 -07:00
shamoon
2510216f21 Merge pull request #899 from paperless-ngx/feature-dashboard-loading-indicators
Feature: initial app loading indicators
2022-05-10 17:01:37 -07:00
Quinn Casey
e4d7ae9718 Merge pull request #905 from paperless-ngx/qol-changes
Chore: Minor improvements for quality of life
2022-05-10 17:01:01 -07:00
Michael Shamoon
596fabda5d Update environment.prod.ts 2022-05-10 16:48:59 -07:00
Michael Shamoon
e95f34ae13 Merge branch 'main' into dev 2022-05-10 16:47:31 -07:00
shamoon
169cb9424f Merge pull request #903 from paperless-ngx/bugfix-superuser-command
Bugfix: Superuser Management Won't Reset Password
2022-05-10 16:46:14 -07:00
shamoon
536576518e Merge pull request #721 from paperless-ngx/bug-fix-date-ignore
Fix Ignore Date Parsing
2022-05-10 16:45:58 -07:00
Quinn Casey
b034e972b0 Merge pull request #902 from paperless-ngx/v1.7.1
v1.7.1
2022-05-10 16:11:12 -07:00
Quinn Casey
1bf36b6461 Merge pull request #918 from paperless-ngx/manual-dep-updates
Chore: Manually update Python dependencies
2022-05-10 16:10:23 -07:00
Trenton Holmes
58ab269d3d Manually re-locks dependencies 2022-05-10 11:20:00 -07:00
Trenton Holmes
7cbb73be7a Minor improvements for quality of life 2022-05-09 12:05:29 -07:00
Paperless-ngx Translation Bot [bot]
cdbf81c51c New Crowdin updates (#816)
* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations django.po (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (Italian)
[ci skip]

* New translations messages.xlf (Luxembourgish)
[ci skip]

* New translations messages.xlf (Portuguese, Brazilian)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]

* New translations messages.xlf (Turkish)
[ci skip]

* New translations messages.xlf (Swedish)
[ci skip]

* New translations messages.xlf (Slovenian)
[ci skip]

* New translations messages.xlf (Slovak)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]

* New translations messages.xlf (Dutch)
[ci skip]

* New translations messages.xlf (Hebrew)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]

* New translations messages.xlf (Finnish)
[ci skip]

* New translations messages.xlf (Greek)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Czech)
[ci skip]

* New translations messages.xlf (Belarusian)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Romanian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Serbian (Latin))
[ci skip]

* New translations messages.xlf (Arabic, Saudi Arabia)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (German)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (Spanish)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations messages.xlf (Chinese Simplified)
[ci skip]
2022-05-09 11:29:26 -07:00
Trenton Holmes
cc54368658 Removes unused imports from test case 2022-05-09 09:49:11 -07:00
Quinn Casey
d81e4dbe99 Bump version 2022-05-09 09:48:48 -07:00
Trenton Holmes
4fd075aafa Updates the superuser management command to better handle existing super users 2022-05-09 09:38:17 -07:00
Trenton Holmes
a789649d97 Merge pull request #890 from paperless-ngx/feature-pyupgrade
(chore) Runs pyupgrade to Python 3.8+
2022-05-09 08:08:54 -07:00
Trenton Holmes
1817d014ef Fixes missing f on an f-string 2022-05-08 16:57:35 -07:00
Trenton Holmes
8f1f0f5475 Further updates documentation to note a date sep string is needed 2022-05-08 16:57:35 -07:00
Trenton Holmes
b406a2430d Updates the documentation for ignoring dates 2022-05-08 16:57:35 -07:00
Trenton Holmes
431edb0e67 Updates the documentation for ignore dates 2022-05-08 16:57:35 -07:00
Trenton Holmes
5b96944940 Updates the ignore date parsing to utilize the settings defined date order, instead of guessing a bit 2022-05-08 16:57:35 -07:00
Trenton Holmes
8a6aaf4e2d Adds additional testing for both date parsing and consumed document created date 2022-05-08 16:57:35 -07:00
Michael Shamoon
b30c4275ef dashboard loading indicator, remove duplicate call to saved views 2022-05-08 14:17:11 -07:00
Michael Shamoon
7f7ec625c8 loading indicators for sidebar saved views 2022-05-08 14:16:37 -07:00
Michael Shamoon
010f1f2bd1 loading indicator for dashboard widgets 2022-05-08 09:12:29 -07:00
Michael Shamoon
ce32089cc4 fix back button double history bug 2022-05-07 00:08:34 -07:00
shamoon
f0ee2e14fb Merge pull request #888 from paperless-ngx/feature-docker-improvements
Feature: Dockerfile Organization & Enhancements
2022-05-06 14:45:54 -07:00
Quinn Casey
9b8a490061 Merge pull request #881 from paperless-ngx/feature-fix-saved-view-query-params
Feature / fix saved view & sort field query params
2022-05-06 12:45:22 -07:00
benzel
f4e8ab27fa Update docs/scanners.rst
Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
2022-05-06 20:48:06 +02:00
Michael Shamoon
4da49c8d59 Ensure retain all params when loading saved views 2022-05-06 11:27:18 -07:00
Trenton Holmes
3960093231 Organizes the Dockerfile from top to bottom in order of least changing. Uses RUN bind mounts to avoid copies of the installer being included in the final image 2022-05-06 10:27:18 -07:00
Trenton Holmes
3003bdd507 Runs pyupgrade to Python 3.8+ and adds a hook for it 2022-05-06 09:04:08 -07:00
Quinn Casey
7909b30b4b Merge pull request #853 from lippoliv/bugfix-document_exporter-document-dates-are-off-by-one-day-#267
Bugfix document exporter document dates are off by one day #267
2022-05-05 09:59:11 -07:00
Trenton Holmes
915382f2c7 Adds documentation note about version matching 2022-05-05 09:23:15 -07:00
Quinn Casey
905a34188d Merge pull request #882 from paperless-ngx/bugfix-q-cluster-setting
Fix: Minor update to Q Cluster Configuration
2022-05-05 09:22:17 -07:00
Trenton Holmes
c907d690b7 Improves the output to the user 2022-05-05 09:17:51 -07:00
Michael Shamoon
261cab8450 support sort fields & some refactoring 2022-05-05 08:36:18 -07:00
Quinn Casey
7c2137fcda Merge pull request #873 from paperless-ngx/feature-mobile-friendlier-manage-pages
Feature: mobile friendlier manage pages
2022-05-05 07:41:09 -07:00
Trenton Holmes
2c3cb7f516 Adds stopasgroup to the qcluster run command, as recommended by the documentation 2022-05-05 07:37:53 -07:00
Trenton Holmes
dd4d903f69 Uses the correct styling for output messages 2022-05-05 07:30:02 -07:00
Trenton Holmes
a823b8f70c Includes a version.json file with the current version in export. On import, catch certain errors and check the version if possible 2022-05-05 07:30:02 -07:00
Quinn Casey
3d7aa7a4b9 Merge pull request #880 from paperless-ngx/feature-improve-healthcheck
Add timeout to healthcheck
2022-05-05 06:23:10 -07:00
Michael Shamoon
3e8bff03e7 Refactor query param handling to service 2022-05-05 00:23:06 -07:00
Michael Shamoon
584082a1df Add query params for saved views 2022-05-04 22:31:09 -07:00
Michael Shamoon
49644ce18a Add timeout to healthcheck 2022-05-04 18:58:58 -07:00
phail
c317eca1ca add attachment size to pdf 2022-05-05 00:20:32 +02:00
Trenton Holmes
7432ef9e19 Accounts for Python 3.8 backported zoneinfo 2022-05-04 15:13:17 -07:00
phail
466afa8203 fix consumption of mails without html
split pdf generation functions
2022-05-04 23:42:59 +02:00
benzel
ca40e39da4 I have created a shortcut to Upload PDF files
//
2022-05-04 22:22:39 +02:00
phail
c2e3dc76d9 add parsing of inline attachments
remove insecure chromium option
fix html parsing
2022-05-03 23:21:33 +02:00
Michael Shamoon
7e271129c7 fix management test failing due to hidden button 2022-05-03 13:14:19 -07:00
Michael Shamoon
b5f95a351c ng extract-i18n 2022-05-03 13:04:28 -07:00
Michael Shamoon
5e10befe28 Mobile friendly management tables 2022-05-03 13:00:42 -07:00
phail
5a899664f8 remove .eml parser from tika 2022-05-03 18:02:08 +02:00
phail
990e905a04 Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-05-03 17:42:56 +02:00
Quinn Casey
98ebb095cc Merge pull request #851 from paperless-ngx/feature-semver-tags
Feature: Use semver for release process
2022-05-03 06:30:11 -07:00
Oliver Lippert
c3b5b47b22 use zoneinfo instead of pytz
Signed-off-by: Oliver Lippert <info@trusty.codes>

#267
2022-05-03 08:08:28 +02:00
Trenton Holmes
3c133c36bd Merge pull request #830 from paperless-ngx/dependabot/github_actions/dev/tj-actions/changed-files-19
Bump tj-actions/changed-files from 18.7 to 19
2022-05-02 16:13:58 -07:00
dependabot[bot]
9ceb2e6084 Bump tj-actions/changed-files from 18.7 to 19
Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 18.7 to 19.
- [Release notes](https://github.com/tj-actions/changed-files/releases)
- [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/changed-files/compare/v18.7...v19)

---
updated-dependencies:
- dependency-name: tj-actions/changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 23:00:56 +00:00
Quinn Casey
2b322b638e Merge pull request #866 from paperless-ngx/feature-arm-tika-consolidate
Deployment: Consolidate tika compose files
2022-05-02 15:56:02 -07:00
phail
0d298d743a Add log messages for mail errors (#727)
* adapt to starttls interface change in imap_tools
pin imap-tools version to avoid breaking changes
improve mail log

* fix unittest

* remove uneeded print and fix merge fail

* bump to next version
2022-05-02 15:54:51 -07:00
shamoon
ec5d80585d Merge pull request #869 from paperless-ngx/feature-update-deps
Chore: Update dependency lock file
2022-05-02 15:44:38 -07:00
Trenton Holmes
88e71e12b1 Manually updates dependencies 2022-05-02 15:11:45 -07:00
Quinn Casey
63bb72caab Merge pull request #867 from paperless-ngx/dependabot/pip/dev/asgiref-3.5.1
Bump asgiref from 3.5.0 to 3.5.1
2022-05-02 14:27:40 -07:00
dependabot[bot]
240c7913e9 Bump asgiref from 3.5.0 to 3.5.1
Bumps [asgiref](https://github.com/django/asgiref) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/django/asgiref/releases)
- [Changelog](https://github.com/django/asgiref/blob/main/CHANGELOG.txt)
- [Commits](https://github.com/django/asgiref/compare/3.5.0...3.5.1)

---
updated-dependencies:
- dependency-name: asgiref
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 20:38:20 +00:00
Quinn Casey
582629a996 Chore: Improve Bug Report template (#859)
* Try to get architecture in BR

* Move screenshots to Description

* Add link to search

* Specify doc page

* Clarify bug report intro

* Add missing period

* Other missing periods for consistiency

* Add line breaks, architecture req

* Expand Currently...

* Removing trailing quote
2022-05-02 11:35:06 -07:00
Quinn Casey
939dd17910 Update Gotenberg to 7.4 2022-05-02 09:16:42 -07:00
Quinn Casey
d58b1a7de7 Update Tika documentation 2022-05-02 09:02:29 -07:00
Quinn Casey
a938895e5e Use our arm compatible tika container 2022-05-02 08:23:04 -07:00
Quinn Casey
9d9111e4d8 Merge pull request #864 from paperless-ngx/fix-863
Always accept yyyy-mm-dd date inputs
2022-05-02 08:10:49 -07:00
shamoon
79dbfce36f Merge pull request #860 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/jest-28.0.3
Bump jest from 27.5.1 to 28.0.3 in /src-ui and related packages
2022-05-02 01:29:43 -07:00
shamoon
e7f162e5e5 setup-jest compatibility with v28 2022-05-02 01:24:24 -07:00
shamoon
f23d10f000 Add jest-environment-jsdom, update jest-preset-angular 2022-05-02 01:24:24 -07:00
dependabot[bot]
67dd86988b Bump jest from 27.5.1 to 28.0.3 in /src-ui
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 27.5.1 to 28.0.3.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v28.0.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 01:21:57 -07:00
Michael Shamoon
e16ab324f4 Always accept yyyy-mm-dd date inputs 2022-05-01 21:38:04 -07:00
Quinn Casey
317926f379 Merge pull request #849 from paperless-ngx/feature-fix-image-local-build
Fix local Docker image building
2022-05-01 16:02:56 -07:00
Quinn Casey
fe61ca2c97 Merge pull request #862 from paperless-ngx/fix-date-input-errors
Fix: show errors on invalid date input
2022-05-01 15:48:32 -07:00
Michael Shamoon
2940686fba show errors on invalid date input 2022-05-01 14:07:31 -07:00
Trenton Holmes
2ef2a561ef Fixes beta or rcs from updating the latest Docker tag 2022-05-01 13:58:24 -07:00
shamoon
7ae31def4f Merge pull request #852 from paperless-ngx/fix-818
Fix: Older dates do not display on frontend
2022-05-01 13:36:55 -07:00
shamoon
8f038d7d26 Merge pull request #861 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ng-bootstrap/ng-bootstrap-12.1.1
Bump @ng-bootstrap/ng-bootstrap from 12.1.0 to 12.1.1 in /src-ui
2022-05-01 13:36:33 -07:00
Trenton Holmes
b9a2652013 Fixing up more locations of the old tag naming style 2022-05-01 13:21:10 -07:00
Trenton Holmes
dce4166bc8 First changes for using semver everywhere 2022-05-01 13:21:10 -07:00
dependabot[bot]
3c5f509bc7 Bump @ng-bootstrap/ng-bootstrap from 12.1.0 to 12.1.1 in /src-ui
Bumps [@ng-bootstrap/ng-bootstrap](https://github.com/ng-bootstrap/ng-bootstrap) from 12.1.0 to 12.1.1.
- [Release notes](https://github.com/ng-bootstrap/ng-bootstrap/releases)
- [Changelog](https://github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ng-bootstrap/ng-bootstrap/compare/12.1.0...12.1.1)

---
updated-dependencies:
- dependency-name: "@ng-bootstrap/ng-bootstrap"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-01 20:07:08 +00:00
Oliver Lippert
182cea3385 always use datetime.date.isoformat to generate filename
fixes #267

Signed-off-by: Oliver Lippert <info@trusty.codes>
2022-05-01 08:54:41 +02:00
Oliver Lippert
0ba1ba55bd add test for filename expectation with modified timezone
Signed-off-by: Oliver Lippert <info@trusty.codes>

#267
2022-05-01 08:41:38 +02:00
Michael Shamoon
45440eec1d handle very old date strings 2022-04-30 22:01:04 -07:00
Trenton Holmes
49fad14920 Updates the Dockerfile to facilitate local image builds, adds documentation for how to build, adds registry caching for final image too 2022-04-30 10:33:09 -07:00
phail
6b7155a849 merge migrations 2022-04-30 17:33:12 +02:00
phail
47851ddd3f Merge remote-tracking branch 'paperless/dev' into feature-consume-eml 2022-04-29 23:52:56 +02:00
phail
47189643ff add eml parser to paperless_mail 2022-04-29 22:58:11 +02:00
Quinn Casey
0f1e31643d Merge pull request #725 from paperless-ngx/bugfix-imap-utf8-login
Fixes IMAP UTF8 Authenication
2022-04-29 10:31:38 -07:00
Quinn Casey
c17c291b1c Merge pull request #840 from paperless-ngx/fix-password-field-remains-visible
Fix password field remains visible
2022-04-29 07:08:51 -07:00
Michael Shamoon
666641f990 reset password field visibility 2022-04-28 21:07:25 -07:00
Michael Shamoon
268f99f8ac Bump angular to 13.3.5, builders to 13.3.4, types/node to 17.0.30
Supersedes #831, #832, #838, #839
2022-04-28 20:34:35 -07:00
shamoon
216f048466 Merge pull request #833 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/types/node-17.0.29
Bump @types/node from 17.0.27 to 17.0.29 in /src-ui
2022-04-28 20:11:12 -07:00
shamoon
ed8d5f1a80 Merge pull request #834 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/ng-bootstrap/ng-bootstrap-12.1.0
Bump @ng-bootstrap/ng-bootstrap from 12.0.2 to 12.1.0 in /src-ui
2022-04-28 20:10:24 -07:00
dependabot[bot]
27a1ef25a5 Bump @ng-bootstrap/ng-bootstrap from 12.0.2 to 12.1.0 in /src-ui
Bumps [@ng-bootstrap/ng-bootstrap](https://github.com/ng-bootstrap/ng-bootstrap) from 12.0.2 to 12.1.0.
- [Release notes](https://github.com/ng-bootstrap/ng-bootstrap/releases)
- [Changelog](https://github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ng-bootstrap/ng-bootstrap/compare/12.0.2...12.1.0)

---
updated-dependencies:
- dependency-name: "@ng-bootstrap/ng-bootstrap"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 21:27:25 +00:00
dependabot[bot]
ecbc8165d5 Bump @types/node from 17.0.27 to 17.0.29 in /src-ui
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 17.0.27 to 17.0.29.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 21:27:05 +00:00
shamoon
128594584e Merge pull request #829 from paperless-ngx/fix-missing-labels-dep
Fix `dependabot.yml` config
2022-04-28 14:25:13 -07:00
Quinn Casey
8b798013c1 Merge pull request #828 from paperless-ngx/feature-docker-hub-push
Enable Docker Hub push
2022-04-28 13:40:55 -07:00
Quinn Casey
8c19c2c2e9 Fix comment directory 2022-04-28 12:52:20 -07:00
Quinn Casey
6f0fee4c43 Assign GHA bumps to CI/CD team 2022-04-28 12:51:43 -07:00
Quinn Casey
a5b4a7caad Add back review groups 2022-04-28 12:49:44 -07:00
Quinn Casey
c1b9db19c6 Add back labels removed in 30834e 2022-04-28 12:47:37 -07:00
Trenton Holmes
40f88faf37 Updates the workflow to enable Docker Hub pushing 2022-04-28 12:18:25 -07:00
Trenton Holmes
81e6228ab3 Merge pull request #806 from paperless-ngx/dependabot/pip/dev/pytest-7.1.2
Bump pytest from 7.1.1 to 7.1.2
2022-04-28 07:28:15 -07:00
dependabot[bot]
157951343b Bump pytest from 7.1.1 to 7.1.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.1...7.1.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 13:33:34 +00:00
Quinn Casey
9325eff6fc Merge pull request #815 from paperless-ngx/feature-fix-pillow-libs
Fixes Pillow build for armv7
2022-04-27 20:27:12 -07:00
Quinn Casey
8c8f366e0f Merge pull request #766 from paperless-ngx/feature-barcode-tiff-support
Feature barcode tiff support
2022-04-27 19:46:16 -07:00
Trenton Holmes
542221a38d Merge pull request #792 from paperless-ngx/dependabot/github_actions/github/codeql-action-2
Bump github/codeql-action from 1 to 2
2022-04-27 19:33:25 -07:00
dependabot[bot]
aa7faaaa72 Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-28 01:10:48 +00:00
Trenton Holmes
c96db31006 Merge pull request #821 from aruhier/pr_docker
docker: set default postgresql port back to 5432
2022-04-27 18:09:07 -07:00
Anthony Ruhier
c66de5931c docker: set default postgresql port back to 5432
Postgresql default port in the docker prepare script has been changed by
mistake to 5342 in commit c2c8a2754. Set it back to 5432.
2022-04-28 02:04:19 +02:00
Trenton Holmes
fdec13ef81 Updates the Pillow link to a better anchor 2022-04-27 15:48:19 -07:00
Trenton Holmes
9aee44f363 Adds extra system libraries for pikepdf/Pillow building 2022-04-27 15:48:19 -07:00
Trenton Holmes
2caa2d5b32 Merge pull request #820 from paperless-ngx/feature-rebuild-inter-images
Updates GHA workflow to rebuild intermediate images on changes
2022-04-27 15:47:32 -07:00
phail
c1efe11cf3 improve pdf generation 2022-04-27 23:32:10 +02:00
Trenton Holmes
66c7f44bea Changes the intermediate image building steps to use registry caching, allowig us to always rebuild them, but do so very quickly when nothing has changed 2022-04-27 11:28:55 -07:00
phail
0e40ef5f35 add css for pdf generation 2022-04-27 19:52:59 +02:00
Quinn Casey
99e4a79cb8 Merge pull request #814 from paperless-ngx/update-i18n
Update frontend localization source file
2022-04-26 15:27:14 -07:00
Michael Shamoon
f7f0df60ec Update messages.xlf 2022-04-26 14:46:37 -07:00
phail
c8081595c4 improve pdf generation 2022-04-26 23:25:48 +02:00
Quinn Casey
e012262301 Merge pull request #813 from paperless-ngx/remove-expected-behavior
Remove expected behavior section
2022-04-26 14:21:33 -07:00
phail
a2b5b3b253 moved files 2022-04-26 23:12:36 +02:00
Quinn Casey
5676155e4e Remove expected behavior section 2022-04-26 11:15:26 -07:00
Quinn Casey
d98bfa5bed Merge pull request #777 from paperless-ngx/bugfix-install-ocr-settings
Fix install script extra OCR languages format
2022-04-26 11:12:19 -07:00
Quinn Casey
7ccac8053b Merge pull request #788 from paperless-ngx/feature-wait-for-redis
Adds simple Python to wait for Redis broker to be ready
2022-04-26 11:10:01 -07:00
Quinn Casey
40cf46fe7d Merge pull request #758 from paperless-ngx/dependabot/pip/dev/imap-tools-0.54.0
Bump imap-tools from 0.53.0 to 0.54.0
2022-04-26 10:46:32 -07:00
Trenton Holmes
f5c05e1283 Fixes newly added mail tests to account for model change 2022-04-26 10:03:41 -07:00
Trenton Holmes
330e47f0b7 Adds some logging so we know which login method has failed 2022-04-26 09:41:36 -07:00
Trenton Holmes
1e9378b429 Implements a fallback to AUTH=PLAIN in the event of a UnicodeEncodeError during a normal login 2022-04-26 09:41:36 -07:00
Trenton Holmes
af58fb5fa3 Empty, dummy commit because GHA? 2022-04-26 09:41:08 -07:00
Trenton Holmes
3d6fb2383a Updates install script to split + seperated OCR languages to spaces for installation script 2022-04-26 09:41:08 -07:00
Trenton Holmes
2407798d2e Adds simple Python to wait for Redis broker to be ready (with minor Dockerfile improvements) 2022-04-26 08:46:03 -07:00
Trenton Holmes
f9194bd28c Merge pull request #761 from paperless-ngx/feature-build-all-images
Update GHA workflow to build all Docker images
2022-04-26 08:31:13 -07:00
Trenton Holmes
816f020cc3 Fixes tests with imap-tools 0.54.0 changes to the EmailAddress class 2022-04-26 08:11:25 -07:00
dependabot[bot]
9191aa32df Bump imap-tools from 0.53.0 to 0.54.0
Bumps [imap-tools](https://github.com/ikvk/imap_tools) from 0.53.0 to 0.54.0.
- [Release notes](https://github.com/ikvk/imap_tools/releases)
- [Changelog](https://github.com/ikvk/imap_tools/blob/master/docs/release_notes.rst)
- [Commits](https://github.com/ikvk/imap_tools/compare/v0.53.0...v0.54.0)

---
updated-dependencies:
- dependency-name: imap-tools
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-26 13:30:32 +00:00
Trenton Holmes
0a6395507e Merge pull request #757 from paperless-ngx/dependabot/pip/dev/ocrmypdf-13.4.3
Bump ocrmypdf from 13.4.2 to 13.4.3
2022-04-25 17:25:41 -07:00
shamoon
eff68c601c Merge pull request #804 from paperless-ngx/dependabot-gha-target-dev
Updates the target branch for GHA updates to be dev
2022-04-25 16:29:50 -07:00
dependabot[bot]
3f5540f35b Bump ocrmypdf from 13.4.2 to 13.4.3
Bumps [ocrmypdf](https://github.com/jbarlow83/ocrmypdf) from 13.4.2 to 13.4.3.
- [Release notes](https://github.com/jbarlow83/ocrmypdf/releases)
- [Changelog](https://github.com/ocrmypdf/OCRmyPDF/blob/master/docs/release_notes.rst)
- [Commits](https://github.com/jbarlow83/ocrmypdf/compare/v13.4.2...v13.4.3)

---
updated-dependencies:
- dependency-name: ocrmypdf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 23:26:26 +00:00
Trenton Holmes
e5f5030e9c Updates the target branch for GHA updates to be dev 2022-04-25 15:27:15 -07:00
Trenton Holmes
df39d37ca9 Merge pull request #756 from paperless-ngx/dependabot/pip/dev/importlib-resources-5.7.1
Bump importlib-resources from 5.6.0 to 5.7.1
2022-04-25 14:19:49 -07:00
dependabot[bot]
bea81d0449 Bump importlib-resources from 5.6.0 to 5.7.1
Bumps [importlib-resources](https://github.com/python/importlib_resources) from 5.6.0 to 5.7.1.
- [Release notes](https://github.com/python/importlib_resources/releases)
- [Changelog](https://github.com/python/importlib_resources/blob/main/CHANGES.rst)
- [Commits](https://github.com/python/importlib_resources/compare/v5.6.0...v5.7.1)

---
updated-dependencies:
- dependency-name: importlib-resources
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 20:54:20 +00:00
Trenton Holmes
d261845fc6 Merge pull request #692 from paperless-ngx/dependabot/pip/dev/tox-3.25.0
Bump tox from 3.24.5 to 3.25.0
2022-04-25 13:49:42 -07:00
dependabot[bot]
eac0b295d2 Bump tox from 3.24.5 to 3.25.0
Bumps [tox](https://github.com/tox-dev/tox) from 3.24.5 to 3.25.0.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/master/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/3.24.5...3.25.0)

---
updated-dependencies:
- dependency-name: tox
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 19:19:35 +00:00
shamoon
f4eefcea13 Merge pull request #800 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/cypress-9.6.0
Bump cypress from 9.5.3 to 9.6.0 in /src-ui
2022-04-25 12:18:54 -07:00
dependabot[bot]
268715711f Bump cypress from 9.5.3 to 9.6.0 in /src-ui
Bumps [cypress](https://github.com/cypress-io/cypress) from 9.5.3 to 9.6.0.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v9.5.3...v9.6.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 19:14:24 +00:00
shamoon
c5f70b4401 Merge pull request #799 from paperless-ngx/bump-angular-250422
Bump angular & tools to 13.3.4 or 13.3.3
2022-04-25 12:12:50 -07:00
Michael Shamoon
912caf84a6 Bump angular & tools to 13.3.4 or 13.3.3 2022-04-25 12:09:54 -07:00
shamoon
448fa4d35f Merge pull request #797 from paperless-ngx/dependabot/npm_and_yarn/src-ui/dev/concurrently-7.1.0
Bump concurrently from 7.0.0 to 7.1.0 in /src-ui
2022-04-25 12:08:48 -07:00
phail
790bcf05ed add prototype archive pdf 2022-04-25 20:55:00 +02:00
Trenton Holmes
cd8d4c357d Fixes the merge issues 2022-04-25 11:39:05 -07:00
Trenton Holmes
bdcc6f861d Converts tabs to spaces and update EditorConfig for the new files 2022-04-25 11:32:55 -07:00
Trenton Holmes
d9d6b7b151 Updates the utlity build script to actually support all the images 2022-04-25 11:32:55 -07:00
Trenton Holmes
4517692c20 Updates the utility script to allow building of other Dockerfiles for building any image locally. Adds a single point to configure non-Python versions 2022-04-25 11:32:55 -07:00
Trenton Holmes
609b9e3369 Adds utility script for building the Docker image locally 2022-04-25 11:32:54 -07:00
Trenton Holmes
be8ca110f4 Fixes spelling 2022-04-25 11:32:54 -07:00
Trenton Holmes
f1da37dd12 Minor fixes for local building 2022-04-25 11:32:53 -07:00
Trenton Holmes
ecca51dbdd Ports over the improvements to the frontend compilation from other PR 2022-04-25 11:32:53 -07:00
Trenton Holmes
d19015579c Instead of using a full image name, use the repo and version to build the image to pull from. Removes building of the frontend for multiple platforms 2022-04-25 11:32:53 -07:00
Trenton Holmes
6179ca5668 Fixes final WORKDIR directive 2022-04-25 11:32:52 -07:00
Trenton Holmes
6c70db31bd Incorporates the base image building back into the main repo with multi stage building 2022-04-25 11:32:52 -07:00
shamoon
b0790d7010 Merge pull request #798 from paperless-ngx/hotfix-mail-tests
Fix Backend Mail Tests
2022-04-25 11:29:31 -07:00
Trenton Holmes
eb8158673f Fixes backend testing of mail on dev 2022-04-25 11:10:32 -07:00
Michael Shamoon
409f17980f Update environment.prod.ts 2022-04-25 10:34:20 -07:00
Michael Shamoon
654ef06682 Merge branch 'main' into dev 2022-04-25 10:33:40 -07:00
dependabot[bot]
bca95a4972 Bump concurrently from 7.0.0 to 7.1.0 in /src-ui
Bumps [concurrently](https://github.com/open-cli-tools/concurrently) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/open-cli-tools/concurrently/releases)
- [Commits](https://github.com/open-cli-tools/concurrently/compare/v7.0.0...v7.1.0)

---
updated-dependencies:
- dependency-name: concurrently
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 17:27:16 +00:00
Michael Shamoon
4df065d8d5 v1.7.0 2022-04-25 10:26:49 -07:00
shamoon
a358477cda Merge pull request #695 from paperless-ngx/beta
[Beta] Paperless-ngx v1.7.0 Release Candidate 1
2022-04-25 10:24:27 -07:00
shamoon
44d6db8c47 Merge pull request #772 from paperless-ngx/fix-dark-mode-delay-btn-progress
Fix dark mode delay button progress bar not visible
2022-04-22 08:15:30 -07:00
Quinn Casey
49e627d2fd Merge pull request #785 from paperless-ngx/fix-docs-darkmode-toggle
Fix docs dark mode toggle blocks menu button
2022-04-22 07:24:28 -07:00
shamoon
c3a8d93eb4 fix docs dark mode toggle blocks menu button 2022-04-22 01:00:19 -07:00
Paperless-ngx Translation Bot [bot]
7a648c6465 New Crowdin updates (#781)
* New translations messages.xlf (Russian)
[ci skip]

* New translations messages.xlf (Russian)
[ci skip]
2022-04-21 20:33:16 -07:00
Quinn Casey
5c1c5b5b0d Merge pull request #782 from paperless-ngx/add-python-3-10
Adds Python 3.10 to the backend test matrix
2022-04-21 11:13:50 -07:00
Trenton Holmes
811da4bac5 Adds Python 3.10 to the backend test matrix 2022-04-21 10:28:13 -07:00
Michael Shamoon
23b2fbef45 Fix dark mode delay button progress bar not visible 2022-04-19 19:25:24 -07:00
shamoon
f1b52b495a Merge pull request #769 from chrpme/fix/preview-link
Open preview link in new browser tab
2022-04-19 17:49:55 -07:00
Quinn Casey
0bff3891bd Merge pull request #767 from paperless-ngx/bug-fix-list-folders
List Email Account Folders In Event of Error Changing Folder
2022-04-19 15:57:31 -07:00
Florian Brandes
a7b1658ee1 code review changes
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-20 00:55:45 +02:00
Trenton Holmes
c274bbcddf Tweaks documentation around mail fetching sub-folders 2022-04-19 15:35:45 -07:00
Trenton Holmes
57f32e5360 Includes exception information during exception listing folders
Co-authored-by: Florian <florian.brandes@posteo.de>
2022-04-19 13:40:04 -07:00
Mike Unke
b4ecf8e28e Open preview link in new browser tab 2022-04-19 21:47:49 +02:00
phail
d8d2d53c59 fix Mail actions mixup 2022-04-19 20:14:31 +02:00
Trenton Holmes
06cfba8c7e Updates the documentation 2022-04-19 09:05:30 -07:00
Trenton Holmes
5603834282 Only output the folder names 2022-04-19 09:03:08 -07:00
Trenton Holmes
33134d4529 In the event of an error when setting the mail account folder, attempt to list the account's folders to the log 2022-04-19 08:32:34 -07:00
Florian Brandes
bf57b6e4a2 more improvements to tiff support
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-19 13:08:40 +02:00
Paperless-ngx Translation Bot [bot]
b63f87a5b5 New translations messages.xlf (French) (#764)
[ci skip]
2022-04-18 19:48:23 -07:00
shamoon
68e3612d36 Merge pull request #765 from p-h-a-i-l/fix-mail-action-mixup
fix Mail actions mixup
2022-04-18 16:23:34 -07:00
phail
616a826b8a fix Mail actions mixup 2022-04-19 00:59:57 +02:00
phail
027897ff03 work in progress Mail parsing 2022-04-19 00:39:00 +02:00
shamoon
09d62d76b2 Merge pull request #745 from paperless-ngx/1.7.0-rc1-css-fixes-1
Beta 1.7.0 rc1 CSS Fixes #1
2022-04-18 12:02:14 -07:00
Quinn Casey
deab7794d6 Merge pull request #751 from paperless-ngx/feature-ci-concurrency
Adds workflow level concurrency group
2022-04-17 17:17:28 -07:00
Trenton Holmes
bc892059a1 Adds workflow level concurrency group with cancelling of in progress jobs to the CI 2022-04-17 15:29:50 -07:00
Florian Brandes
6d0fdc7510 add tests
fix indention
add more documentation

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-17 16:10:53 +02:00
Michael Shamoon
dd1d4b86d2 use var in input check / radio svgs 2022-04-17 00:49:34 -07:00
Michael Shamoon
65eeea9453 toasts should respect close button coloring 2022-04-17 00:48:57 -07:00
Michael Shamoon
b2b202586c fix settings mobile display bugs 2022-04-17 00:36:47 -07:00
Michael Shamoon
49341260dc fix popover carats 2022-04-17 00:25:39 -07:00
Michael Shamoon
dfcef81001 fix dark mode progress showing in light mode 2022-04-17 00:25:28 -07:00
Michael Shamoon
a834a6c874 remove single-use css vars 2022-04-17 00:25:10 -07:00
Florian Brandes
ad5188a280 add TIFF barcode support
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-16 21:59:03 +02:00
Paperless-ngx Translation Bot [bot]
53c2a0c724 New translations messages.xlf (Serbian (Latin)) (#735)
[ci skip]
2022-04-16 00:39:08 -07:00
Michael Shamoon
3a8cc31f1b fix some css specificity issues, unused vars 2022-04-16 00:23:15 -07:00
Quinn Casey
0f6b452d17 Merge pull request #737 from paperless-ngx/add-missing-packages-to-doc
add barcode packages to setup.rst
2022-04-15 06:32:47 -07:00
phail
cca576f518 add feature to consume imap mail als .eml 2022-04-15 14:40:02 +02:00
Florian Brandes
e994bcf737 add barcode packages to setup.rst
fixes #730

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-15 08:32:53 +02:00
Michael Shamoon
5432700b0d Add note for malformed package-lock in 1.6.0 2022-04-13 20:43:42 -07:00
Paperless-ngx Translation Bot [bot]
7b7534c952 New Crowdin updates (#699)
* New translations django.po (Polish)
[ci skip]

* New translations messages.xlf (Polish)
[ci skip]

* New translations django.po (Polish)
[ci skip]

* New translations messages.xlf (Danish)
[ci skip]
2022-04-13 20:33:15 -07:00
phail
5fcf1b5434 remove uneeded print and fix merge fail 2022-04-14 00:19:30 +02:00
phail
942b5aa9df Merge branch 'dev' into fix-mail-starttls 2022-04-13 23:55:38 +02:00
phail
c05b39a056 fix unittest 2022-04-13 23:37:21 +02:00
shamoon
b4570545ef Merge pull request #717 from paperless-ngx/fix-custom-theme-color-contrast
Fix custom theme color contrast
2022-04-13 13:31:24 -07:00
Michael Shamoon
6478db13e6 miscellaneous css fixes / reorganization 2022-04-13 13:30:02 -07:00
Michael Shamoon
1d7ddcc10d Remove unneeded imports since change to css vars 2022-04-13 08:43:35 -07:00
shamoon
30508c6c2c Merge pull request #702 from paperless-ngx/stalebot-unconfirmed
Chore: Only stale unconfirmed issues
2022-04-13 08:35:31 -07:00
Quinn Casey
18f43c5757 Merge pull request #722 from paperless-ngx/fix-gotenberg
Fix: use correct gotenberg image for sqlite-tika.arm.yml
2022-04-13 08:34:40 -07:00
shamoon
52498efd14 Merge pull request #723 from paperless-ngx/bugfix-remove-tag-match
Fix docker/metadata-action creation of latest tag
2022-04-13 08:28:44 -07:00
Trenton Holmes
40cb721d16 Removes the matching regex from the docker/metadata-action as it will create a new :latest even for release candidates 2022-04-13 08:20:30 -07:00
Michael Shamoon
1c2699b16e Refactor contrast to use luminance function 2022-04-13 08:18:10 -07:00
Michael Shamoon
d98a016087 Initial build of primary color contrast 2022-04-13 08:18:09 -07:00
Quinn Casey
bc5b6db031 Fix gotenberg image 2022-04-13 08:16:35 -07:00
Quinn Casey
4a4f252ad8 Merge branch 'main' into beta 2022-04-13 08:13:32 -07:00
Quinn Casey
c81dd1a478 Merge pull request #720 from alumpe/docs-typo-fixes
Corrects some spelling mistakes in docs
2022-04-13 07:11:36 -07:00
Adrian Lumpe
31016156be corrects some spelling mistakes in docs 2022-04-13 15:39:49 +02:00
shamoon
dad352f05e Update changelog.rst
[ci skip]
2022-04-13 03:14:43 -07:00
shamoon
95e94618d8 Merge pull request #270 from jonasc/dev
Allow setting more than one tag in mail rules
2022-04-13 03:11:38 -07:00
shamoon
045a401cd7 Merge pull request #705 from paperless-ngx/fix-startls
bugfix for imap using starttls
2022-04-12 18:51:46 -07:00
Quinn Casey
d5d7e2edbc Merge pull request #715 from paperless-ngx/nginx-proxy-config-variable
Add required PAPERLESS_URL to nginx proxy docs
2022-04-12 15:17:22 -07:00
Quinn Casey
64e1a6ec7e Merge pull request #713 from paperless-ngx/fix-1.7.0-rc1-tags-input-color
Fix: v1.7.0-rc1 Tags input should use body color
2022-04-12 15:11:05 -07:00
Quinn Casey
2221b425ad Add required PAPERLESS_URL to nginx proxy docs 2022-04-12 15:06:32 -07:00
Michael Shamoon
86b2ccae94 Tags input should use body color 2022-04-12 14:45:47 -07:00
shamoon
0bd67a54ab Merge pull request #704 from paperless-ngx/breaking-changes-changelog
Chore: Add Breaking Changes to release notes
2022-04-12 10:19:15 -07:00
Quinn Casey
306f254218 Add Breaking Changes 2022-04-12 07:37:49 -07:00
Quinn Casey
449add88a6 Bump header level 2022-04-12 07:37:02 -07:00
Quinn Casey
941ba8d689 Only stale unconfirmed issues 2022-04-12 07:31:14 -07:00
shamoon
813335f8eb Update changelog.rst
[ci skip]
2022-04-12 07:30:16 -07:00
shamoon
f0cef2f42f Update changelog.rst
[ci skip]
2022-04-12 07:29:07 -07:00
shamoon
e767eb38f4 Merge pull request #700 from paperless-ngx/fix-healthcheck
add "localhost" to ALLOWED_HOSTS
2022-04-12 07:25:09 -07:00
Florian Brandes
71cbef4c13 fixes #697
Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-12 15:54:18 +02:00
jonasc
834ad1ef84 reformat migration with black 2022-04-12 15:06:38 +02:00
Florian Brandes
753e6661bc add "localhost" to ALLOWED_HOSTS
if PAPERLESS_URL is set and ALLOWED_HOSTS is NOT set

Signed-off-by: Florian Brandes <florian.brandes@posteo.de>
2022-04-12 14:39:08 +02:00
jonasc
1ce19f5444 merge migrations 2022-04-12 10:51:19 +02:00
jonasc
0de1230a1a Reset related_name (was set to prevent duplicate) 2022-04-12 10:45:56 +02:00
jonasc
5ff304324d Add backwards data migration
The documents.tests.test_migration_mime_type test suite failes if no
backwards migration is provided. This simple backwards migration sets
the old assign_tag field with a tag if exactly one is set in
assign_tags.
2022-04-12 10:45:56 +02:00
jonasc
37f7ef41f2 Save MailRule and MailAccount objects in tests
This fixes the errors in the tests that the new many-to-many
assign_tags property cannot be accessed due to MailRule not having an
id. In one case it it necessary to give additional names to both objects
as several are created.
2022-04-12 10:45:52 +02:00
jonasc
4022284059 Allow setting more than one tag in mail rules
The three migrations do the following to preserve existing data in
assign_tag:
1. Add the new many-to-many field assign_tags.
2. Copy existing data from the assign_tag field to the assign_tags.
3. Delete the existing assign_tag field.
2022-04-12 10:41:08 +02:00
shamoon
dde6a2eb7d Merge branch 'main' into beta 2022-04-11 23:37:21 -07:00
Michael Shamoon
1083ed4e40 Update .pre-commit-config.yaml
[ci skip]
2022-04-11 23:32:37 -07:00
Michael Shamoon
c111825b1e Minor merge conflicts
[ci skip]
2022-04-11 23:31:20 -07:00
Michael Shamoon
e36c22d29a Update changelog.rst
[ci skip]
2022-04-11 23:05:16 -07:00
Michael Shamoon
c192931015 Update changelog.rst
[ci skip]
2022-04-11 22:58:08 -07:00
Michael Shamoon
ae895a4aec Create release-drafter.yml
[ci skip]
2022-04-11 22:05:55 -07:00
Michael Shamoon
493d9875d4 tiny docs css fix
[ci skip]
2022-04-11 14:14:15 -07:00
shamoon
3fb8d05f0d Merge pull request #684 from paperless-ngx/docs-dark-mode
Documentation dark mode
2022-04-11 14:10:23 -07:00
Michael Shamoon
04acce4916 dark mode toggle, css vars 2022-04-09 22:10:03 -07:00
phail
3c8196527f adapt to starttls interface change in imap_tools
pin imap-tools version to avoid breaking changes
improve mail log
2022-04-09 13:07:14 +02:00
Michael Shamoon
1b7a304149 initial docs dark mode css 2022-04-08 22:49:45 -07:00
shamoon
f3c8211ba4 Merge pull request #672 from paperless-ngx/update-screenshots 2022-04-08 10:25:51 -07:00
Michael Shamoon
908fc8573a Merge dev changes to PULL_REQUEST_TEMPLATE.md
[ci skip]
2022-04-08 00:41:55 -07:00
Michael Shamoon
93ad5433e4 Updated screenshots 2022-04-07 15:28:54 -07:00
Michael Shamoon
5ead8de0bb Add global drag-n-drop note
[ci skip]
2022-04-07 15:21:49 -07:00
Michael Shamoon
c062eb751e another tiny doc style fix
[ci skip]
2022-04-07 12:47:48 -07:00
Michael Shamoon
e273a594ba tiny doc style fixes for rtd tools
[ci skip]
2022-04-07 12:44:08 -07:00
shamoon
ebb724e687 Merge pull request #652 from paperless-ngx/documentation-style
Documentation style
2022-04-07 12:35:06 -07:00
Michael Shamoon
b14bf8a96d prettier docs 2022-04-07 11:38:48 -07:00
shamoon
a728502988 Update bug-report.yml 2022-04-04 15:30:40 -07:00
shamoon
9419f74d13 Update bug-report.yml 2022-04-04 15:30:15 -07:00
shamoon
50523c1566 Update bug-report.yml 2022-04-04 15:18:59 -07:00
shamoon
e9ef3e270d Update bug-report.yml 2022-04-04 15:18:12 -07:00
shamoon
9078f7beef Update bug-report.yml 2022-04-04 15:03:35 -07:00
shamoon
ac2c5abb09 Create config.yml 2022-04-04 15:02:41 -07:00
shamoon
a02235eb2b Delete other.md 2022-04-04 14:59:09 -07:00
shamoon
7658761940 Update bug-report.yml 2022-04-04 14:57:58 -07:00
shamoon
3f03f076cf Create bug-report.yml 2022-04-04 14:56:55 -07:00
shamoon
141e6de88f Delete bug_report.md 2022-04-04 14:56:21 -07:00
Trenton Holmes
fab7abb85b Merge pull request #622 from fantasticle/patch-2
fix 404 for post-consumption-example
2022-04-03 08:45:13 -07:00
fantasticle
07f2c9c1c6 Update docs/advanced_usage.rst
Co-authored-by: Felix E <felix@eckhofer.com>
2022-04-02 18:25:56 +02:00
fantasticle
6cc2fa5306 fix 404 for post-consumption-example
still pointed to jonas' repository
2022-04-02 15:56:03 +02:00
shamoon
ed2524cbbb Merge pull request #582 from paperless-ngx/fix-black-main-branch
[ci skip]
2022-03-30 10:44:33 -07:00
Trenton Holmes
76a4ae2aae Merge pull request #552 from stumpylog/bugfix-black
Bump version of black in CI/pre-commit

Revert "Merge pull request #552 from stumpylog/bugfix-black"

This reverts commit 9e8ac05f72.

Merge pull request #552 from stumpylog/bugfix-black

Bump version of black in CI/pre-commit
2022-03-30 10:35:02 -07:00
shamoon
f3d1bd25ad Merge pull request #577 from Prominence/patch-1
add ocr fails for XX to troubleshooting.rst
2022-03-30 06:42:19 -07:00
Alexey Zinchenko
3ed6d4bc7a Update troubleshooting.rst 2022-03-30 13:27:09 +03:00
shamoon
15488fbfd0 Add note for target branch
[ci skip]
2022-03-30 00:03:48 -07:00
shamoon
94afd4f1e2 Merge pull request #561 from MichaelYochpaz/main
Fix reference from Paperless-ngx to Paperless-ng [ci skip]
2022-03-29 11:15:56 -07:00
Michael
1218944680 Fix reference from Paperless-ngx to Paperless-ng 2022-03-29 21:09:09 +03:00
shamoon
eda69dc881 Merge pull request #537 from Stormheg/patch-1
Fix typo in api documentation
2022-03-26 14:42:34 -07:00
Storm Heg
500e5c41ff Fix typo in api.rst 2022-03-26 22:34:50 +01:00
527 changed files with 154837 additions and 61021 deletions

9
.build-config.json Normal file
View File

@@ -0,0 +1,9 @@
{
"qpdf": {
"version": "11.2.0"
},
"jbig2enc": {
"version": "0.29",
"git_tag": "0.29"
}
}

View File

@@ -27,11 +27,14 @@ indent_style = space
[*.md]
indent_style = space
[Pipfile.lock]
indent_style = space
# Tests don't get a line width restriction. It's still a good idea to follow
# the 79 character rule, but in the interests of clarity, tests often need to
# violate it.
[**/test_*.py]
max_line_length = off
[Dockerfile]
[Dockerfile*]
indent_style = space

97
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@@ -0,0 +1,97 @@
name: Bug report
description: Something is not working
title: "[BUG] Concise description of the issue"
labels: ["bug", "unconfirmed"]
body:
- type: markdown
attributes:
value: |
Have a question? 👉 [Start a new discussion](https://github.com/paperless-ngx/paperless-ngx/discussions/new) or [ask in chat](https://matrix.to/#/#paperlessngx:matrix.org).
Before opening an issue, please double check:
- [The troubleshooting documentation](https://docs.paperless-ngx.com/troubleshooting/).
- [The installation instructions](https://docs.paperless-ngx.com/setup/#installation).
- [Existing issues and discussions](https://github.com/paperless-ngx/paperless-ngx/search?q=&type=issues).
- Disable any customer container initialization scripts, if using any
If you encounter issues while installing or configuring Paperless-ngx, please post in the ["Support" section of the discussions](https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=support).
- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem.
placeholder: |
Currently Paperless does not work when...
[Screenshot if applicable]
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. See error
validations:
required: true
- type: textarea
id: logs
attributes:
label: Webserver logs
description: Logs from the web server related to your issue.
render: bash
validations:
required: true
- type: textarea
id: logs_browser
attributes:
label: Browser logs
description: Logs from the web browser related to your issue, if needed
render: bash
- type: input
id: version
attributes:
label: Paperless-ngx version
placeholder: e.g. 1.6.0
validations:
required: true
- type: input
id: host-os
attributes:
label: Host OS
description: Host OS of the machine running paperless-ngx. Please add the architecture (uname -m) if applicable.
placeholder: e.g. Archlinux / Ubuntu 20.04 / Raspberry Pi `arm64`
validations:
required: true
- type: dropdown
id: install-method
attributes:
label: Installation method
options:
- Docker - official image
- Docker - linuxserver.io image
- Bare metal
- Other (please describe above)
description: Note there are significant differences from the official image and linuxserver.io, please check if your issue is specific to the third-party image.
validations:
required: true
- type: input
id: browser
attributes:
label: Browser
description: Which browser you are using, if relevant.
placeholder: e.g. Chrome, Safari
- type: input
id: config-changes
attributes:
label: Configuration changes
description: Any configuration changes you made in `docker-compose.yml`, `docker-compose.env` or `paperless.conf`.
- type: input
id: other
attributes:
label: Other
description: Any other relevant details.

View File

@@ -1,50 +0,0 @@
---
name: Bug report
about: Something is not working
title: '[BUG] Concise description of the issue'
labels: ''
assignees: ''
---
<!---
=> Before opening an issue, please check the documentation and see if it helps you resolve your issue: https://paperless-ngx.readthedocs.io/en/latest/troubleshooting.html
=> Please also make sure that you followed the installation instructions.
=> Please search the issues and look for similar issues before opening a bug report.
=> If you would like to submit a feature request please submit one under https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests
=> If you encounter issues while installing of configuring Paperless-ngx, please post that in the "Support" section of the discussions. Remember that Paperless successfully runs on a variety of different systems. If paperless does not start, it's probably an issue with your system, and not an issue of paperless.
=> Don't remove the [BUG] prefix from the title.
-->
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Webserver logs**
```
If available, post any logs from the web server related to your issue.
```
**Relevant information**
- Host OS of the machine running paperless: [e.g. Archlinux / Ubuntu 20.04]
- Browser [e.g. chrome, safari]
- Version [e.g. 1.0.0]
- Installation method: [docker / bare metal]
- Any configuration changes you made in `docker-compose.yml`, `docker-compose.env` or `paperless.conf`.

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: 🤔 Questions and Help
url: https://github.com/paperless-ngx/paperless-ngx/discussions
about: This issue tracker is not for support questions. Please refer to our Discussions.
- name: 💬 Chat
url: https://matrix.to/#/#paperlessngx:matrix.org
about: Want to discuss Paperless-ngx with others? Check out our chat.
- name: 🚀 Feature Request
url: https://github.com/paperless-ngx/paperless-ngx/discussions/new?category=feature-requests
about: Remember to search for existing feature requests and "up-vote" any you like

View File

@@ -1,19 +0,0 @@
---
name: Other
about: Anything that is not a feature request or bug.
title: '[Other] Title of your issue'
labels: ''
assignees: ''
---
<!--
=> Discussions, Feedback and other suggestions belong in the "Discussion" section and not on the issue tracker.
=> If you would like to submit a feature request please submit one under https://github.com/paperless-ngx/paperless-ngx/discussions/categories/feature-requests
=> If you encounter issues while installing of configuring Paperless-ngx, please post that in the "Support" section of the discussions. Remember that Paperless successfully runs on a variety of different systems. If paperless does not start, it's probably is an issue with your system, and not an issue of paperless.
=> Don't remove the [Other] prefix from the title.
-->

View File

@@ -26,7 +26,7 @@ NOTE: Please check only one box!
- [ ] I have read & agree with the [contributing guidelines](https://github.com/paperless-ngx/paperless-ngx/blob/main/CONTRIBUTING.md).
- [ ] If applicable, I have tested my code for new features & regressions on both mobile & desktop devices, using the latest version of major browsers.
- [ ] If applicable, I have checked that all tests pass, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#back-end-development).
- [ ] I have run all `pre-commit` hooks, see [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html#code-formatting-with-pre-commit-hooks).
- [ ] If applicable, I have checked that all tests pass, see [documentation](https://docs.paperless-ngx.com/development/#back-end-development).
- [ ] I have run all `pre-commit` hooks, see [documentation](https://docs.paperless-ngx.com/development/#code-formatting-with-pre-commit-hooks).
- [ ] I have made corresponding changes to the documentation as needed.
- [ ] I have checked my modifications for any breaking changes.

View File

@@ -6,11 +6,14 @@ updates:
# Enable version updates for npm
- package-ecosystem: "npm"
target-branch: "dev"
# Look for `package.json` and `lock` files in the `root` directory
# Look for `package.json` and `lock` files in the `/src-ui` directory
directory: "/src-ui"
# Check the npm registry for updates every month
schedule:
interval: "monthly"
labels:
- "frontend"
- "dependencies"
# Add reviewers
reviewers:
- "paperless-ngx/frontend"
@@ -26,9 +29,13 @@ updates:
labels:
- "backend"
- "dependencies"
# Add reviewers
reviewers:
- "paperless-ngx/backend"
# Enable updates for Github Actions
- package-ecosystem: "github-actions"
target-branch: "dev"
directory: "/"
schedule:
# Check for updates to GitHub Actions every month
@@ -38,4 +45,4 @@ updates:
- "dependencies"
# Add reviewers
reviewers:
- "paperless-ngx/backend"
- "paperless-ngx/ci-cd"

View File

@@ -1,4 +1,22 @@
autolabeler:
- label: "bug"
branch:
- '/^fix/'
title:
- "/^fix/i"
- "/^Bugfix/i"
- label: "enhancement"
branch:
- '/^feature/'
title:
- "/^feature/i"
categories:
- title: 'Breaking Changes'
labels:
- 'breaking-change'
- title: 'Notable Changes'
labels:
- 'notable'
- title: 'Features'
labels:
- 'enhancement'
@@ -6,15 +24,23 @@ categories:
labels:
- 'bug'
- title: 'Documentation'
label: 'documentation'
labels:
- 'documentation'
- title: 'Maintenance'
labels:
- 'chore'
- 'deployment'
- 'translation'
- 'ci-cd'
- title: 'Dependencies'
collapse-after: 3
label: 'dependencies'
labels:
- 'dependencies'
- title: 'All App Changes'
labels:
- 'frontend'
- 'backend'
collapse-after: 0
include-labels:
- 'enhancement'
- 'bug'
@@ -22,13 +48,16 @@ include-labels:
- 'deployment'
- 'translation'
- 'dependencies'
replacers: # Changes "Feature: Update checker" to "Update checker"
- search: '/Feature:|Feat:|\[feature\]/gi'
replace: ''
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
- 'documentation'
- 'frontend'
- 'backend'
- 'ci-cd'
- 'breaking-change'
- 'notable'
category-template: '### $TITLE'
change-template: '- $TITLE @$AUTHOR ([#$NUMBER]($URL))'
change-title-escapes: '\<*_&#@'
tag-prefix: "ngx-"
template: |
## Changelog
## paperless-ngx $RESOLVED_VERSION
$CHANGES

402
.github/scripts/cleanup-tags.py vendored Normal file
View File

@@ -0,0 +1,402 @@
#!/usr/bin/env python3
import json
import logging
import os
import shutil
import subprocess
from argparse import ArgumentParser
from typing import Dict
from typing import Final
from typing import List
from typing import Optional
from common import get_log_level
from github import ContainerPackage
from github import GithubBranchApi
from github import GithubContainerRegistryApi
logger = logging.getLogger("cleanup-tags")
class DockerManifest2:
"""
Data class wrapping the Docker Image Manifest Version 2.
See https://docs.docker.com/registry/spec/manifest-v2-2/
"""
def __init__(self, data: Dict) -> None:
self._data = data
# This is the sha256: digest string. Corresponds to GitHub API name
# if the package is an untagged package
self.digest = self._data["digest"]
platform_data_os = self._data["platform"]["os"]
platform_arch = self._data["platform"]["architecture"]
platform_variant = self._data["platform"].get(
"variant",
"",
)
self.platform = f"{platform_data_os}/{platform_arch}{platform_variant}"
class RegistryTagsCleaner:
"""
This is the base class for the image registry cleaning. Given a package
name, it will keep all images which are tagged and all untagged images
referred to by a manifest. This results in only images which have been untagged
and cannot be referenced except by their SHA in being removed. None of these
images should be referenced, so it is fine to delete them.
"""
def __init__(
self,
package_name: str,
repo_owner: str,
repo_name: str,
package_api: GithubContainerRegistryApi,
branch_api: Optional[GithubBranchApi],
):
self.actually_delete = False
self.package_api = package_api
self.branch_api = branch_api
self.package_name = package_name
self.repo_owner = repo_owner
self.repo_name = repo_name
self.tags_to_delete: List[str] = []
self.tags_to_keep: List[str] = []
# Get the information about all versions of the given package
# These are active, not deleted, the default returned from the API
self.all_package_versions = self.package_api.get_active_package_versions(
self.package_name,
)
# Get a mapping from a tag like "1.7.0" or "feature-xyz" to the ContainerPackage
# tagged with it. It makes certain lookups easy
self.all_pkgs_tags_to_version: Dict[str, ContainerPackage] = {}
for pkg in self.all_package_versions:
for tag in pkg.tags:
self.all_pkgs_tags_to_version[tag] = pkg
logger.info(
f"Located {len(self.all_package_versions)} versions of package {self.package_name}",
)
self.decide_what_tags_to_keep()
def clean(self):
"""
This method will delete image versions, based on the selected tags to delete
"""
for tag_to_delete in self.tags_to_delete:
package_version_info = self.all_pkgs_tags_to_version[tag_to_delete]
if self.actually_delete:
logger.info(
f"Deleting {tag_to_delete} (id {package_version_info.id})",
)
self.package_api.delete_package_version(
package_version_info,
)
else:
logger.info(
f"Would delete {tag_to_delete} (id {package_version_info.id})",
)
else:
logger.info("No tags to delete")
def clean_untagged(self, is_manifest_image: bool):
"""
This method will delete untagged images, that is those which are not named. It
handles if the image tag is actually a manifest, which points to images that look otherwise
untagged.
"""
def _clean_untagged_manifest():
"""
Handles the deletion of untagged images, but where the package is a manifest, ie a multi
arch image, which means some "untagged" images need to exist still.
Ok, bear with me, these are annoying.
Our images are multi-arch, so the manifest is more like a pointer to a sha256 digest.
These images are untagged, but pointed to, and so should not be removed (or every pull fails).
So for each image getting kept, parse the manifest to find the digest(s) it points to. Then
remove those from the list of untagged images. The final result is the untagged, not pointed to
version which should be safe to remove.
Example:
Tag: ghcr.io/paperless-ngx/paperless-ngx:1.7.1 refers to
amd64: sha256:b9ed4f8753bbf5146547671052d7e91f68cdfc9ef049d06690b2bc866fec2690
armv7: sha256:81605222df4ba4605a2ba4893276e5d08c511231ead1d5da061410e1bbec05c3
arm64: sha256:374cd68db40734b844705bfc38faae84cc4182371de4bebd533a9a365d5e8f3b
each of which appears as untagged image, but isn't really.
So from the list of untagged packages, remove those digests. Once all tags which
are being kept are checked, the remaining untagged packages are actually untagged
with no referrals in a manifest to them.
"""
# Simplify the untagged data, mapping name (which is a digest) to the version
# At the moment, these are the images which APPEAR untagged.
untagged_versions = {}
for x in self.all_package_versions:
if x.untagged:
untagged_versions[x.name] = x
skips = 0
# Parse manifests to locate digests pointed to
for tag in sorted(self.tags_to_keep):
full_name = f"ghcr.io/{self.repo_owner}/{self.package_name}:{tag}"
logger.info(f"Checking manifest for {full_name}")
try:
proc = subprocess.run(
[
shutil.which("docker"),
"manifest",
"inspect",
full_name,
],
capture_output=True,
)
manifest_list = json.loads(proc.stdout)
for manifest_data in manifest_list["manifests"]:
manifest = DockerManifest2(manifest_data)
if manifest.digest in untagged_versions:
logger.info(
f"Skipping deletion of {manifest.digest},"
f" referred to by {full_name}"
f" for {manifest.platform}",
)
del untagged_versions[manifest.digest]
skips += 1
except Exception as err:
self.actually_delete = False
logger.exception(err)
return
logger.info(
f"Skipping deletion of {skips} packages referred to by a manifest",
)
# Delete the untagged and not pointed at packages
logger.info(f"Deleting untagged packages of {self.package_name}")
for to_delete_name in untagged_versions:
to_delete_version = untagged_versions[to_delete_name]
if self.actually_delete:
logger.info(
f"Deleting id {to_delete_version.id} named {to_delete_version.name}",
)
self.package_api.delete_package_version(
to_delete_version,
)
else:
logger.info(
f"Would delete {to_delete_name} (id {to_delete_version.id})",
)
def _clean_untagged_non_manifest():
"""
If the package is not a multi-arch manifest, images without tags are safe to delete.
"""
for package in self.all_package_versions:
if package.untagged:
if self.actually_delete:
logger.info(
f"Deleting id {package.id} named {package.name}",
)
self.package_api.delete_package_version(
package,
)
else:
logger.info(
f"Would delete {package.name} (id {package.id})",
)
else:
logger.info(
f"Not deleting tag {package.tags[0]} of package {self.package_name}",
)
logger.info("Beginning untagged image cleaning")
if is_manifest_image:
_clean_untagged_manifest()
else:
_clean_untagged_non_manifest()
def decide_what_tags_to_keep(self):
"""
This method holds the logic to delete what tags to keep and there fore
what tags to delete.
By default, any image with at least 1 tag will be kept
"""
# By default, keep anything which is tagged
self.tags_to_keep = list(set(self.all_pkgs_tags_to_version.keys()))
class MainImageTagsCleaner(RegistryTagsCleaner):
def decide_what_tags_to_keep(self):
"""
Overrides the default logic for deciding what images to keep. Images tagged as "feature-"
will be removed, if the corresponding branch no longer exists.
"""
# Default to everything gets kept still
super().decide_what_tags_to_keep()
# Locate the feature branches
feature_branches = {}
for branch in self.branch_api.get_branches(
repo=self.repo_name,
):
if branch.name.startswith("feature-"):
logger.debug(f"Found feature branch {branch.name}")
feature_branches[branch.name] = branch
logger.info(f"Located {len(feature_branches)} feature branches")
if not len(feature_branches):
# Our work here is done, delete nothing
return
# Filter to packages which are tagged with feature-*
packages_tagged_feature: List[ContainerPackage] = []
for package in self.all_package_versions:
if package.tag_matches("feature-"):
packages_tagged_feature.append(package)
# Map tags like "feature-xyz" to a ContainerPackage
feature_pkgs_tags_to_versions: Dict[str, ContainerPackage] = {}
for pkg in packages_tagged_feature:
for tag in pkg.tags:
feature_pkgs_tags_to_versions[tag] = pkg
logger.info(
f'Located {len(feature_pkgs_tags_to_versions)} versions of package {self.package_name} tagged "feature-"',
)
# All the feature tags minus all the feature branches leaves us feature tags
# with no corresponding branch
self.tags_to_delete = list(
set(feature_pkgs_tags_to_versions.keys()) - set(feature_branches.keys()),
)
# All the tags minus the set of going to be deleted tags leaves us the
# tags which will be kept around
self.tags_to_keep = list(
set(self.all_pkgs_tags_to_version.keys()) - set(self.tags_to_delete),
)
logger.info(
f"Located {len(self.tags_to_delete)} versions of package {self.package_name} to delete",
)
class LibraryTagsCleaner(RegistryTagsCleaner):
"""
Exists for the off change that someday, the installer library images
will need their own logic
"""
pass
def _main():
parser = ArgumentParser(
description="Using the GitHub API locate and optionally delete container"
" tags which no longer have an associated feature branch",
)
# Requires an affirmative command to actually do a delete
parser.add_argument(
"--delete",
action="store_true",
default=False,
help="If provided, actually delete the container tags",
)
# When a tagged image is updated, the previous version remains, but it no longer tagged
# Add this option to remove them as well
parser.add_argument(
"--untagged",
action="store_true",
default=False,
help="If provided, delete untagged containers as well",
)
# If given, the package is assumed to be a multi-arch manifest. Cache packages are
# not multi-arch, all other types are
parser.add_argument(
"--is-manifest",
action="store_true",
default=False,
help="If provided, the package is assumed to be a multi-arch manifest following schema v2",
)
# Allows configuration of log level for debugging
parser.add_argument(
"--loglevel",
default="info",
help="Configures the logging level",
)
# Get the name of the package being processed this round
parser.add_argument(
"package",
help="The package to process",
)
args = parser.parse_args()
logging.basicConfig(
level=get_log_level(args),
datefmt="%Y-%m-%d %H:%M:%S",
format="%(asctime)s %(levelname)-8s %(message)s",
)
# Must be provided in the environment
repo_owner: Final[str] = os.environ["GITHUB_REPOSITORY_OWNER"]
repo: Final[str] = os.environ["GITHUB_REPOSITORY"]
gh_token: Final[str] = os.environ["TOKEN"]
# Find all branches named feature-*
# Note: Only relevant to the main application, but simpler to
# leave in for all packages
with GithubBranchApi(gh_token) as branch_api:
with GithubContainerRegistryApi(gh_token, repo_owner) as container_api:
if args.package in {"paperless-ngx", "paperless-ngx/builder/cache/app"}:
cleaner = MainImageTagsCleaner(
args.package,
repo_owner,
repo,
container_api,
branch_api,
)
else:
cleaner = LibraryTagsCleaner(
args.package,
repo_owner,
repo,
container_api,
None,
)
# Set if actually doing a delete vs dry run
cleaner.actually_delete = args.delete
# Clean images with tags
cleaner.clean()
# Clean images which are untagged
cleaner.clean_untagged(args.is_manifest)
if __name__ == "__main__":
_main()

48
.github/scripts/common.py vendored Normal file
View File

@@ -0,0 +1,48 @@
#!/usr/bin/env python3
import logging
def get_image_tag(
repo_name: str,
pkg_name: str,
pkg_version: str,
) -> str:
"""
Returns a string representing the normal image for a given package
"""
return f"ghcr.io/{repo_name.lower()}/builder/{pkg_name}:{pkg_version}"
def get_cache_image_tag(
repo_name: str,
pkg_name: str,
pkg_version: str,
branch_name: str,
) -> str:
"""
Returns a string representing the expected image cache tag for a given package
Registry type caching is utilized for the builder images, to allow fast
rebuilds, generally almost instant for the same version
"""
return f"ghcr.io/{repo_name.lower()}/builder/cache/{pkg_name}:{pkg_version}"
def get_log_level(args) -> int:
"""
Returns a logging level, based
:param args:
:return:
"""
levels = {
"critical": logging.CRITICAL,
"error": logging.ERROR,
"warn": logging.WARNING,
"warning": logging.WARNING,
"info": logging.INFO,
"debug": logging.DEBUG,
}
level = levels.get(args.loglevel.lower())
if level is None:
level = logging.INFO
return level

92
.github/scripts/get-build-json.py vendored Executable file
View File

@@ -0,0 +1,92 @@
#!/usr/bin/env python3
"""
This is a helper script for the mutli-stage Docker image builder.
It provides a single point of configuration for package version control.
The output JSON object is used by the CI workflow to determine what versions
to build and pull into the final Docker image.
Python package information is obtained from the Pipfile.lock. As this is
kept updated by dependabot, it usually will need no further configuration.
The sole exception currently is pikepdf, which has a dependency on qpdf,
and is configured here to use the latest version of qpdf built by the workflow.
Other package version information is configured directly below, generally by
setting the version and Git information, if any.
"""
import argparse
import json
import os
from pathlib import Path
from typing import Final
from common import get_cache_image_tag
from common import get_image_tag
def _main():
parser = argparse.ArgumentParser(
description="Generate a JSON object of information required to build the given package, based on the Pipfile.lock",
)
parser.add_argument(
"package",
help="The name of the package to generate JSON for",
)
PIPFILE_LOCK_PATH: Final[Path] = Path("Pipfile.lock")
BUILD_CONFIG_PATH: Final[Path] = Path(".build-config.json")
# Read the main config file
build_json: Final = json.loads(BUILD_CONFIG_PATH.read_text())
# Read Pipfile.lock file
pipfile_data: Final = json.loads(PIPFILE_LOCK_PATH.read_text())
args: Final = parser.parse_args()
# Read from environment variables set by GitHub Actions
repo_name: Final[str] = os.environ["GITHUB_REPOSITORY"]
branch_name: Final[str] = os.environ["GITHUB_REF_NAME"]
# Default output values
version = None
extra_config = {}
if args.package in pipfile_data["default"]:
# Read the version from Pipfile.lock
pkg_data = pipfile_data["default"][args.package]
pkg_version = pkg_data["version"].split("==")[-1]
version = pkg_version
# Any extra/special values needed
if args.package == "pikepdf":
extra_config["qpdf_version"] = build_json["qpdf"]["version"]
elif args.package in build_json:
version = build_json[args.package]["version"]
else:
raise NotImplementedError(args.package)
# The JSON object we'll output
output = {
"name": args.package,
"version": version,
"image_tag": get_image_tag(repo_name, args.package, version),
"cache_tag": get_cache_image_tag(
repo_name,
args.package,
version,
branch_name,
),
}
# Add anything special a package may need
output.update(extra_config)
# Output the JSON info to stdout
print(json.dumps(output))
if __name__ == "__main__":
_main()

274
.github/scripts/github.py vendored Normal file
View File

@@ -0,0 +1,274 @@
#!/usr/bin/env python3
"""
This module contains some useful classes for interacting with the Github API.
The full documentation for the API can be found here: https://docs.github.com/en/rest
Mostly, this focusses on two areas, repo branches and repo packages, as the use case
is cleaning up container images which are no longer referred to.
"""
import functools
import logging
import re
import urllib.parse
from typing import Dict
from typing import List
from typing import Optional
import httpx
logger = logging.getLogger("github-api")
class _GithubApiBase:
"""
A base class for interacting with the Github API. It
will handle the session and setting authorization headers.
"""
def __init__(self, token: str) -> None:
self._token = token
self._client: Optional[httpx.Client] = None
def __enter__(self) -> "_GithubApiBase":
"""
Sets up the required headers for auth and response
type from the API
"""
self._client = httpx.Client()
self._client.headers.update(
{
"Accept": "application/vnd.github.v3+json",
"Authorization": f"token {self._token}",
},
)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
"""
Ensures the authorization token is cleaned up no matter
the reason for the exit
"""
if "Accept" in self._client.headers:
del self._client.headers["Accept"]
if "Authorization" in self._client.headers:
del self._client.headers["Authorization"]
# Close the session as well
self._client.close()
self._client = None
def _read_all_pages(self, endpoint):
"""
Helper function to read all pages of an endpoint, utilizing the
next.url until exhausted. Assumes the endpoint returns a list
"""
internal_data = []
while True:
resp = self._client.get(endpoint)
if resp.status_code == 200:
internal_data += resp.json()
if "next" in resp.links:
endpoint = resp.links["next"]["url"]
else:
logger.debug("Exiting pagination loop")
break
else:
logger.warning(f"Request to {endpoint} return HTTP {resp.status_code}")
resp.raise_for_status()
return internal_data
class _EndpointResponse:
"""
For all endpoint JSON responses, store the full
response data, for ease of extending later, if need be.
"""
def __init__(self, data: Dict) -> None:
self._data = data
class GithubBranch(_EndpointResponse):
"""
Simple wrapper for a repository branch, only extracts name information
for now.
"""
def __init__(self, data: Dict) -> None:
super().__init__(data)
self.name = self._data["name"]
class GithubBranchApi(_GithubApiBase):
"""
Wrapper around branch API.
See https://docs.github.com/en/rest/branches/branches
"""
def __init__(self, token: str) -> None:
super().__init__(token)
self._ENDPOINT = "https://api.github.com/repos/{REPO}/branches"
def get_branches(self, repo: str) -> List[GithubBranch]:
"""
Returns all current branches of the given repository owned by the given
owner or organization.
"""
# The environment GITHUB_REPOSITORY already contains the owner in the correct location
endpoint = self._ENDPOINT.format(REPO=repo)
internal_data = self._read_all_pages(endpoint)
return [GithubBranch(branch) for branch in internal_data]
class ContainerPackage(_EndpointResponse):
"""
Data class wrapping the JSON response from the package related
endpoints
"""
def __init__(self, data: Dict):
super().__init__(data)
# This is a numerical ID, required for interactions with this
# specific package, including deletion of it or restoration
self.id: int = self._data["id"]
# A string name. This might be an actual name or it could be a
# digest string like "sha256:"
self.name: str = self._data["name"]
# URL to the package, including its ID, can be used for deletion
# or restoration without needing to build up a URL ourselves
self.url: str = self._data["url"]
# The list of tags applied to this image. Maybe an empty list
self.tags: List[str] = self._data["metadata"]["container"]["tags"]
@functools.cached_property
def untagged(self) -> bool:
"""
Returns True if the image has no tags applied to it, False otherwise
"""
return len(self.tags) == 0
@functools.cache
def tag_matches(self, pattern: str) -> bool:
"""
Returns True if the image has at least one tag which matches the given regex,
False otherwise
"""
for tag in self.tags:
if re.match(pattern, tag) is not None:
return True
return False
def __repr__(self):
return f"Package {self.name}"
class GithubContainerRegistryApi(_GithubApiBase):
"""
Class wrapper to deal with the Github packages API. This class only deals with
container type packages, the only type published by paperless-ngx.
"""
def __init__(self, token: str, owner_or_org: str) -> None:
super().__init__(token)
self._owner_or_org = owner_or_org
if self._owner_or_org == "paperless-ngx":
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-an-organization
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-package-version-for-an-organization
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/orgs/{ORG}/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
else:
# https://docs.github.com/en/rest/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user
self._PACKAGES_VERSIONS_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions"
# https://docs.github.com/en/rest/packages#delete-a-package-version-for-the-authenticated-user
self._PACKAGE_VERSION_DELETE_ENDPOINT = "https://api.github.com/user/packages/{PACKAGE_TYPE}/{PACKAGE_NAME}/versions/{PACKAGE_VERSION_ID}"
self._PACKAGE_VERSION_RESTORE_ENDPOINT = (
f"{self._PACKAGE_VERSION_DELETE_ENDPOINT}/restore"
)
def get_active_package_versions(
self,
package_name: str,
) -> List[ContainerPackage]:
"""
Returns all the versions of a given package (container images) from
the API
"""
package_type: str = "container"
# Need to quote this for slashes in the name
package_name = urllib.parse.quote(package_name, safe="")
endpoint = self._PACKAGES_VERSIONS_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_type,
PACKAGE_NAME=package_name,
)
pkgs = []
for data in self._read_all_pages(endpoint):
pkgs.append(ContainerPackage(data))
return pkgs
def get_deleted_package_versions(
self,
package_name: str,
) -> List[ContainerPackage]:
package_type: str = "container"
# Need to quote this for slashes in the name
package_name = urllib.parse.quote(package_name, safe="")
endpoint = (
self._PACKAGES_VERSIONS_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_type,
PACKAGE_NAME=package_name,
)
+ "?state=deleted"
)
pkgs = []
for data in self._read_all_pages(endpoint):
pkgs.append(ContainerPackage(data))
return pkgs
def delete_package_version(self, package_data: ContainerPackage):
"""
Deletes the given package version from the GHCR
"""
resp = self._client.delete(package_data.url)
if resp.status_code != 204:
logger.warning(
f"Request to delete {package_data.url} returned HTTP {resp.status_code}",
)
def restore_package_version(
self,
package_name: str,
package_data: ContainerPackage,
):
package_type: str = "container"
endpoint = self._PACKAGE_VERSION_RESTORE_ENDPOINT.format(
ORG=self._owner_or_org,
PACKAGE_TYPE=package_type,
PACKAGE_NAME=package_name,
PACKAGE_VERSION_ID=package_data.id,
)
resp = self._client.post(endpoint)
if resp.status_code != 204:
logger.warning(
f"Request to delete {endpoint} returned HTTP {resp.status_code}",
)

15
.github/stale.yml vendored
View File

@@ -1,18 +1,23 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 30
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- fixpending
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: [cant-reproduce]
# Label to use when marking an issue as stale
staleLabel: stale
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
# See https://github.com/marketplace/stale for more info on the app
# and https://github.com/probot/stale for the configuration docs

View File

@@ -3,8 +3,10 @@ name: ci
on:
push:
tags:
- ngx-*
- beta-*
# https://semver.org/#spec-item-2
- 'v[0-9]+.[0-9]+.[0-9]+'
# https://semver.org/#spec-item-9
- 'v[0-9]+.[0-9]+.[0-9]+-beta.rc[0-9]+'
branches-ignore:
- 'translations**'
pull_request:
@@ -12,118 +14,120 @@ on:
- 'translations**'
jobs:
pre-commit:
name: Linting Checks
runs-on: ubuntu-22.04
steps:
-
name: Checkout repository
uses: actions/checkout@v3
-
name: Install tools
uses: actions/setup-python@v4
with:
python-version: "3.9"
-
name: Check files
uses: pre-commit/action@v3.0.0
documentation:
name: "Build Documentation"
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
needs:
- pre-commit
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install pipenv
run: pipx install pipenv
run: |
pipx install pipenv==2022.11.30
-
name: Set up Python
uses: actions/setup-python@v3
uses: actions/setup-python@v4
with:
python-version: 3.9
python-version: 3.8
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install dependencies
run: |
pipenv sync --dev
-
name: List installed Python dependencies
run: |
pipenv run pip list
-
name: Make documentation
run: |
cd docs/
pipenv run make html
pipenv run mkdocs build --config-file ./mkdocs.yml
-
name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: documentation
path: docs/_build/html/
path: site/
code-checks-backend:
name: "Backend Code Checks"
runs-on: ubuntu-20.04
documentation-deploy:
name: "Deploy Documentation"
runs-on: ubuntu-22.04
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
needs:
- documentation
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install checkers
run: |
pipx install reorder-python-imports
pipx install yesqa
pipx install add-trailing-comma
pipx install flake8
-
name: Run reorder-python-imports
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs reorder-python-imports
-
name: Run yesqa
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs yesqa
-
name: Run add-trailing-comma
run: |
find src/ -type f -name '*.py' ! -path "*/migrations/*" | xargs add-trailing-comma
# black is placed after add-trailing-comma because it may format differently
# if a trailing comma is added
-
name: Run black
uses: psf/black@stable
with:
options: "--check --diff"
version: "22.3.0"
-
name: Run flake8 checks
run: |
cd src/
flake8 --max-line-length=88 --ignore=E203,W503
code-checks-frontend:
name: "Frontend Code Checks"
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16'
-
name: Install prettier
run: |
npm install prettier
-
name: Run prettier
run:
npx prettier --check --ignore-path Pipfile.lock **/*.js **/*.ts *.md **/*.md
name: Deploy docs
uses: mhausenblas/mkdocs-deploy-gh-pages@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CUSTOM_DOMAIN: docs.paperless-ngx.com
CONFIG_FILE: mkdocs.yml
EXTRA_PACKAGES: build-base
tests-backend:
needs: [code-checks-backend]
name: "Backend Tests (${{ matrix.python-version }})"
runs-on: ubuntu-20.04
name: "Tests (${{ matrix.python-version }})"
runs-on: ubuntu-22.04
needs:
- pre-commit
strategy:
matrix:
python-version: ['3.8', '3.9']
python-version: ['3.8', '3.9', '3.10']
fail-fast: false
env:
# Enable Tika end to end testing
TIKA_LIVE: 1
# Enable paperless_mail testing against real server
PAPERLESS_MAIL_TEST_HOST: ${{ secrets.TEST_MAIL_HOST }}
PAPERLESS_MAIL_TEST_USER: ${{ secrets.TEST_MAIL_USER }}
PAPERLESS_MAIL_TEST_PASSWD: ${{ secrets.TEST_MAIL_PASSWD }}
# Skip Tests which require convert
PAPERLESS_TEST_SKIP_CONVERT: 1
# Enable Gotenberg end to end testing
GOTENBERG_LIVE: 1
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
fetch-depth: 0
-
name: Start containers
run: |
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml pull --quiet
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml up --detach
-
name: Install pipenv
run: pipx install pipenv
run: |
pipx install pipenv==2022.11.30
-
name: Set up Python
uses: actions/setup-python@v3
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"
cache: "pipenv"
@@ -132,20 +136,24 @@ jobs:
name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends unpaper tesseract-ocr imagemagick ghostscript optipng libzbar0 poppler-utils
sudo apt-get install -qq --no-install-recommends unpaper tesseract-ocr imagemagick ghostscript libzbar0 poppler-utils
-
name: Install Python dependencies
run: |
pipenv sync --dev
-
name: List installed Python dependencies
run: |
pipenv run pip list
-
name: Tests
run: |
cd src/
pipenv run pytest
pipenv run pytest -rfEp
-
name: Get changed files
id: changed-files-specific
uses: tj-actions/changed-files@v18.1
uses: tj-actions/changed-files@v34
with:
files: |
src/**
@@ -164,59 +172,179 @@ jobs:
run: |
cd src/
pipenv run coveralls --service=github
-
name: Stop containers
if: always()
run: |
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml logs
docker compose --file ${GITHUB_WORKSPACE}/docker/compose/docker-compose.ci-test.yml down
tests-frontend:
needs: [code-checks-frontend]
name: "Frontend Tests"
runs-on: ubuntu-20.04
name: "Tests Frontend"
runs-on: ubuntu-22.04
needs:
- pre-commit
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
-
name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: cd src-ui && npm ci
- run: cd src-ui && npm run lint
- run: cd src-ui && npm run test
- run: cd src-ui && npm run e2e:ci
prepare-docker-build:
name: Prepare Docker Pipeline Data
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || contains(github.ref, 'beta.rc') || startsWith(github.ref, 'refs/tags/v'))
runs-on: ubuntu-22.04
# If the push triggered the installer library workflow, wait for it to
# complete here. This ensures the required versions for the final
# image have been built, while not waiting at all if the versions haven't changed
concurrency:
group: build-installer-library
cancel-in-progress: false
needs:
- documentation
- tests-backend
- tests-frontend
steps:
-
name: Set ghcr repository name
id: set-ghcr-repository
run: |
ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }')
echo "repository=${ghcr_name}" >> $GITHUB_OUTPUT
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
-
name: Setup qpdf image
id: qpdf-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py qpdf)
echo ${build_json}
echo "qpdf-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup psycopg2 image
id: psycopg2-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py psycopg2)
echo ${build_json}
echo "psycopg2-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup pikepdf image
id: pikepdf-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py pikepdf)
echo ${build_json}
echo "pikepdf-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup jbig2enc image
id: jbig2enc-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py jbig2enc)
echo ${build_json}
echo "jbig2enc-json=${build_json}" >> $GITHUB_OUTPUT
outputs:
ghcr-repository: ${{ steps.set-ghcr-repository.outputs.repository }}
qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }}
pikepdf-json: ${{ steps.pikepdf-setup.outputs.pikepdf-json }}
psycopg2-json: ${{ steps.psycopg2-setup.outputs.psycopg2-json }}
jbig2enc-json: ${{ steps.jbig2enc-setup.outputs.jbig2enc-json}}
# build and push image to docker hub.
build-docker-image:
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/beta' || startsWith(github.ref, 'refs/tags/ngx-') || startsWith(github.ref, 'refs/tags/beta-'))
runs-on: ubuntu-20.04
needs: [tests-backend, tests-frontend]
runs-on: ubuntu-22.04
concurrency:
group: ${{ github.workflow }}-build-docker-image-${{ github.ref_name }}
cancel-in-progress: true
needs:
- prepare-docker-build
steps:
-
name: Check pushing to Docker Hub
id: docker-hub
# Only push to Dockerhub from the main repo AND the ref is either:
# main
# dev
# beta
# a tag
# Otherwise forks would require a Docker Hub account and secrets setup
run: |
if [[ ${{ needs.prepare-docker-build.outputs.ghcr-repository }} == "paperless-ngx/paperless-ngx" && ( ${{ github.ref_name }} == "main" || ${{ github.ref_name }} == "dev" || ${{ github.ref_name }} == "beta" || ${{ startsWith(github.ref, 'refs/tags/v') }} == "true" ) ]] ; then
echo "Enabling DockerHub image push"
echo "enable=true" >> $GITHUB_OUTPUT
else
echo "Not pushing to DockerHub"
echo "enable=false" >> $GITHUB_OUTPUT
fi
-
name: Gather Docker metadata
id: docker-meta
uses: docker/metadata-action@v3
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ github.repository }}
images: |
ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}
name=paperlessngx/paperless-ngx,enable=${{ steps.docker-hub.outputs.enable }}
tags: |
type=match,pattern=ngx-(\d.\d.\d),group=1
# Tag branches with branch name
type=ref,event=branch
type=ref,event=tag
# Process semver tags
# For a tag x.y.z or vX.Y.Z, output an x.y.z and x.y image tag
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@v2
-
name: Login to Github Container Registry
uses: docker/login-action@v1
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Login to Docker Hub
uses: docker/login-action@v2
# Don't attempt to login is not pushing to Docker Hub
if: steps.docker-hub.outputs.enable == 'true'
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
uses: docker/build-push-action@v3
with:
context: .
file: ./Dockerfile
@@ -224,8 +352,19 @@ jobs:
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker-meta.outputs.tags }}
labels: ${{ steps.docker-meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
JBIG2ENC_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.jbig2enc-json).version }}
QPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.qpdf-json).version }}
PIKEPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.pikepdf-json).version }}
PSYCOPG2_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.psycopg2-json).version }}
# Get cache layers from this branch, then dev, then main
# This allows new branches to get at least some cache benefits, generally from dev
cache-from: |
type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:${{ github.ref_name }}
type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:dev
type=registry,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:main
cache-to: |
type=registry,mode=max,ref=ghcr.io/${{ needs.prepare-docker-build.outputs.ghcr-repository }}/builder/cache/app:${{ github.ref_name }}
-
name: Inspect image
run: |
@@ -243,24 +382,34 @@ jobs:
path: src/documents/static/frontend/
build-release:
needs: [build-docker-image, documentation]
runs-on: ubuntu-20.04
needs:
- build-docker-image
runs-on: ubuntu-22.04
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Install pipenv
run: |
pip3 install --upgrade pip setuptools wheel pipx
pipx install pipenv
-
name: Set up Python
uses: actions/setup-python@v3
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Install dependencies
name: Install Python dependencies
run: |
pipenv sync --dev
-
name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -qq --no-install-recommends gettext liblept5
pip3 install --upgrade pip setuptools wheel
pip3 install -r requirements.txt
-
name: Download frontend artifact
uses: actions/download-artifact@v3
@@ -273,34 +422,38 @@ jobs:
with:
name: documentation
path: docs/_build/html/
-
name: Generate requirements file
run: |
pipenv requirements > requirements.txt
-
name: Compile messages
run: |
cd src/
pipenv run python3 manage.py compilemessages
-
name: Collect static files
run: |
cd src/
pipenv run python3 manage.py collectstatic --no-input
-
name: Move files
run: |
mkdir dist
mkdir dist/paperless-ngx
mkdir dist/paperless-ngx/scripts
cp .dockerignore .env Dockerfile Pipfile Pipfile.lock LICENSE README.md requirements.txt dist/paperless-ngx/
cp .dockerignore .env Dockerfile Pipfile Pipfile.lock requirements.txt LICENSE README.md dist/paperless-ngx/
cp paperless.conf.example dist/paperless-ngx/paperless.conf
cp gunicorn.conf.py dist/paperless-ngx/gunicorn.conf.py
cp docker/ dist/paperless-ngx/docker -r
cp -r docker/ dist/paperless-ngx/docker
cp scripts/*.service scripts/*.sh dist/paperless-ngx/scripts/
cp src/ dist/paperless-ngx/src -r
cp docs/_build/html/ dist/paperless-ngx/docs -r
-
name: Compile messages
run: |
cd dist/paperless-ngx/src
python3 manage.py compilemessages
-
name: Collect static files
run: |
cd dist/paperless-ngx/src
python3 manage.py collectstatic --no-input
cp -r src/ dist/paperless-ngx/src
cp -r docs/_build/html/ dist/paperless-ngx/docs
mv static dist/paperless-ngx
-
name: Make release package
run: |
cd dist
find . -name __pycache__ | xargs rm -r
tar -cJf paperless-ngx.tar.xz paperless-ngx/
-
name: Upload release artifact
@@ -310,9 +463,14 @@ jobs:
path: dist/paperless-ngx.tar.xz
publish-release:
runs-on: ubuntu-20.04
needs: build-release
if: contains(github.ref, 'refs/tags/ngx-') || contains(github.ref, 'refs/tags/beta-')
runs-on: ubuntu-22.04
outputs:
prerelease: ${{ steps.get_version.outputs.prerelease }}
changelog: ${{ steps.create-release.outputs.body }}
version: ${{ steps.get_version.outputs.version }}
needs:
- build-release
if: github.ref_type == 'tag' && (startsWith(github.ref_name, 'v') || contains(github.ref_name, '-beta.rc'))
steps:
-
name: Download release artifact
@@ -324,20 +482,19 @@ jobs:
name: Get version
id: get_version
run: |
if [[ $GITHUB_REF == refs/tags/ngx-* ]]; then
echo ::set-output name=version::${GITHUB_REF#refs/tags/ngx-}
echo ::set-output name=prerelease::false
elif [[ $GITHUB_REF == refs/tags/beta-* ]]; then
echo ::set-output name=version::${GITHUB_REF#refs/tags/beta-}
echo ::set-output name=prerelease::true
echo "version=${{ github.ref_name }}" >> $GITHUB_OUTPUT
if [[ ${{ contains(github.ref_name, '-beta.rc') }} == 'true' ]]; then
echo "prerelease=true" >> $GITHUB_OUTPUT
else
echo "prerelease=false" >> $GITHUB_OUTPUT
fi
-
name: Create Release and Changelog
id: create-release
uses: release-drafter/release-drafter@v5
uses: paperless-ngx/release-drafter@master
with:
name: Paperless-ngx ${{ steps.get_version.outputs.version }}
tag: ngx-${{ steps.get_version.outputs.version }}
tag: ${{ steps.get_version.outputs.version }}
version: ${{ steps.get_version.outputs.version }}
prerelease: ${{ steps.get_version.outputs.prerelease }}
publish: true # ensures release is not marked as draft
@@ -346,11 +503,72 @@ jobs:
-
name: Upload release archive
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: shogo82148/actions-upload-release-asset@v1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ./paperless-ngx.tar.xz
asset_name: paperless-ngx-${{ steps.get_version.outputs.version }}.tar.xz
asset_content_type: application/x-xz
append-changelog:
runs-on: ubuntu-22.04
needs:
- publish-release
if: needs.publish-release.outputs.prerelease == 'false'
steps:
-
name: Checkout
uses: actions/checkout@v3
with:
ref: main
-
name: Install pipenv
run: |
pip3 install --upgrade pip setuptools wheel pipx
pipx install pipenv
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: "pipenv"
cache-dependency-path: 'Pipfile.lock'
-
name: Append Changelog to docs
id: append-Changelog
working-directory: docs
run: |
git branch ${{ needs.publish-release.outputs.version }}-changelog
git checkout ${{ needs.publish-release.outputs.version }}-changelog
echo -e "# Changelog\n\n${{ needs.publish-release.outputs.changelog }}\n" > changelog-new.md
echo "Manually linking usernames"
sed -i -r 's|@(.+?) \(\[#|[@\1](https://github.com/\1) ([#|ig' changelog-new.md
CURRENT_CHANGELOG=`tail --lines +2 changelog.md`
echo -e "$CURRENT_CHANGELOG" >> changelog-new.md
mv changelog-new.md changelog.md
pipenv run pre-commit run --files changelog.md || true
git config --global user.name "github-actions"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git commit -am "Changelog ${{ needs.publish-release.outputs.version }} - GHA"
git push origin ${{ needs.publish-release.outputs.version }}-changelog
-
name: Create Pull Request
uses: actions/github-script@v6
with:
script: |
const { repo, owner } = context.repo;
const result = await github.rest.pulls.create({
title: '[Documentation] Add ${{ needs.publish-release.outputs.version }} changelog',
owner,
repo,
head: '${{ needs.publish-release.outputs.version }}-changelog',
base: 'main',
body: 'This PR is auto-generated by CI.'
});
github.rest.issues.addLabels({
owner,
repo,
issue_number: result.data.number,
labels: ['documentation']
});

93
.github/workflows/cleanup-tags.yml vendored Normal file
View File

@@ -0,0 +1,93 @@
# This workflow runs on certain conditions to check for and potentially
# delete container images from the GHCR which no longer have an associated
# code branch.
# Requires a PAT with the correct scope set in the secrets.
#
# This workflow will not trigger runs on forked repos.
name: Cleanup Image Tags
on:
delete:
push:
paths:
- ".github/workflows/cleanup-tags.yml"
- ".github/scripts/cleanup-tags.py"
- ".github/scripts/github.py"
- ".github/scripts/common.py"
concurrency:
group: registry-tags-cleanup
cancel-in-progress: false
jobs:
cleanup-images:
name: Cleanup Image Tags for ${{ matrix.primary-name }}
if: github.repository_owner == 'paperless-ngx'
runs-on: ubuntu-22.04
strategy:
matrix:
include:
- primary-name: "paperless-ngx"
cache-name: "paperless-ngx/builder/cache/app"
- primary-name: "paperless-ngx/builder/qpdf"
cache-name: "paperless-ngx/builder/cache/qpdf"
- primary-name: "paperless-ngx/builder/pikepdf"
cache-name: "paperless-ngx/builder/cache/pikepdf"
- primary-name: "paperless-ngx/builder/jbig2enc"
cache-name: "paperless-ngx/builder/cache/jbig2enc"
- primary-name: "paperless-ngx/builder/psycopg2"
cache-name: "paperless-ngx/builder/cache/psycopg2"
env:
# Requires a personal access token with the OAuth scope delete:packages
TOKEN: ${{ secrets.GHA_CONTAINER_DELETE_TOKEN }}
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Login to Github Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
-
name: Install httpx
run: |
python -m pip install httpx
#
# Clean up primary package
#
-
name: Cleanup for package "${{ matrix.primary-name }}"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --untagged --is-manifest --delete "${{ matrix.primary-name }}"
#
# Clean up registry cache package
#
-
name: Cleanup for package "${{ matrix.cache-name }}"
if: "${{ env.TOKEN != '' }}"
run: |
python ${GITHUB_WORKSPACE}/.github/scripts/cleanup-tags.py --untagged --delete "${{ matrix.cache-name }}"
#
# Verify tags which are left still pull
#
-
name: Check all tags still pull
run: |
ghcr_name=$(echo "ghcr.io/${GITHUB_REPOSITORY_OWNER}/${{ matrix.primary-name }}" | awk '{ print tolower($0) }')
echo "Pulling all tags of ${ghcr_name}"
docker pull --quiet --all-tags ${ghcr_name}
docker image list

View File

@@ -23,7 +23,7 @@ on:
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
permissions:
actions: read
contents: read
@@ -38,11 +38,11 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -51,4 +51,4 @@ jobs:
# queries: ./path/to/local/query, your-org/your-repo/queries@main
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

171
.github/workflows/installer-library.yml vendored Normal file
View File

@@ -0,0 +1,171 @@
# This workflow will run to update the installer library of
# Docker images. These are the images which provide updated wheels
# .deb installation packages or maybe just some compiled library
name: Build Image Library
on:
push:
# Must match one of these branches AND one of the paths
# to be triggered
branches:
- "main"
- "dev"
- "library-*"
- "feature-*"
paths:
# Trigger the workflow if a Dockerfile changed
- "docker-builders/**"
# Trigger if a package was updated
- ".build-config.json"
- "Pipfile.lock"
# Also trigger on workflow changes related to the library
- ".github/workflows/installer-library.yml"
- ".github/workflows/reusable-workflow-builder.yml"
- ".github/scripts/**"
# Set a workflow level concurrency group so primary workflow
# can wait for this to complete if needed
# DO NOT CHANGE without updating main workflow group
concurrency:
group: build-installer-library
cancel-in-progress: false
jobs:
prepare-docker-build:
name: Prepare Docker Image Version Data
runs-on: ubuntu-22.04
steps:
-
name: Set ghcr repository name
id: set-ghcr-repository
run: |
ghcr_name=$(echo "${GITHUB_REPOSITORY}" | awk '{ print tolower($0) }')
echo "repository=${ghcr_name}" >> $GITHUB_OUTPUT
-
name: Checkout
uses: actions/checkout@v3
-
name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
-
name: Install jq
run: |
sudo apt-get update
sudo apt-get install jq
-
name: Setup qpdf image
id: qpdf-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py qpdf)
echo ${build_json}
echo "qpdf-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup psycopg2 image
id: psycopg2-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py psycopg2)
echo ${build_json}
echo "psycopg2-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup pikepdf image
id: pikepdf-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py pikepdf)
echo ${build_json}
echo "pikepdf-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup jbig2enc image
id: jbig2enc-setup
run: |
build_json=$(python ${GITHUB_WORKSPACE}/.github/scripts/get-build-json.py jbig2enc)
echo ${build_json}
echo "jbig2enc-json=${build_json}" >> $GITHUB_OUTPUT
-
name: Setup other versions
id: cache-bust-setup
run: |
pillow_version=$(jq ".default.pillow.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
lxml_version=$(jq ".default.lxml.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
echo "Pillow is ${pillow_version}"
echo "lxml is ${lxml_version}"
echo "pillow-version=${pillow_version}" >> $GITHUB_OUTPUT
echo "lxml-version=${lxml_version}" >> $GITHUB_OUTPUT
outputs:
ghcr-repository: ${{ steps.set-ghcr-repository.outputs.repository }}
qpdf-json: ${{ steps.qpdf-setup.outputs.qpdf-json }}
pikepdf-json: ${{ steps.pikepdf-setup.outputs.pikepdf-json }}
psycopg2-json: ${{ steps.psycopg2-setup.outputs.psycopg2-json }}
jbig2enc-json: ${{ steps.jbig2enc-setup.outputs.jbig2enc-json }}
pillow-version: ${{ steps.cache-bust-setup.outputs.pillow-version }}
lxml-version: ${{ steps.cache-bust-setup.outputs.lxml-version }}
build-qpdf-debs:
name: qpdf
needs:
- prepare-docker-build
uses: ./.github/workflows/reusable-workflow-builder.yml
with:
dockerfile: ./docker-builders/Dockerfile.qpdf
build-platforms: linux/amd64
build-json: ${{ needs.prepare-docker-build.outputs.qpdf-json }}
build-args: |
QPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.qpdf-json).version }}
build-jbig2enc:
name: jbig2enc
needs:
- prepare-docker-build
uses: ./.github/workflows/reusable-workflow-builder.yml
with:
dockerfile: ./docker-builders/Dockerfile.jbig2enc
build-json: ${{ needs.prepare-docker-build.outputs.jbig2enc-json }}
build-args: |
JBIG2ENC_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.jbig2enc-json).version }}
build-psycopg2-wheel:
name: psycopg2
needs:
- prepare-docker-build
uses: ./.github/workflows/reusable-workflow-builder.yml
with:
dockerfile: ./docker-builders/Dockerfile.psycopg2
build-json: ${{ needs.prepare-docker-build.outputs.psycopg2-json }}
build-args: |
PSYCOPG2_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.psycopg2-json).version }}
build-pikepdf-wheel:
name: pikepdf
needs:
- prepare-docker-build
- build-qpdf-debs
uses: ./.github/workflows/reusable-workflow-builder.yml
with:
dockerfile: ./docker-builders/Dockerfile.pikepdf
build-json: ${{ needs.prepare-docker-build.outputs.pikepdf-json }}
build-args: |
REPO=${{ needs.prepare-docker-build.outputs.ghcr-repository }}
QPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.qpdf-json).version }}
PIKEPDF_VERSION=${{ fromJSON(needs.prepare-docker-build.outputs.pikepdf-json).version }}
PILLOW_VERSION=${{ needs.prepare-docker-build.outputs.pillow-version }}
LXML_VERSION=${{ needs.prepare-docker-build.outputs.lxml-version }}

View File

@@ -13,6 +13,9 @@ on:
- main
- dev
permissions:
contents: read
env:
todo: Todo
done: Done
@@ -21,11 +24,11 @@ env:
jobs:
issue_opened_or_reopened:
name: issue_opened_or_reopened
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
if: github.event_name == 'issues' && (github.event.action == 'opened' || github.event.action == 'reopened')
steps:
- name: Set issue status to ${{ env.todo }}
uses: leonsteinhaeuser/project-beta-automations@v1.2.1
- name: Add issue to project and set status to ${{ env.todo }}
uses: leonsteinhaeuser/project-beta-automations@v2.0.1
with:
gh_token: ${{ secrets.GH_TOKEN }}
organization: paperless-ngx
@@ -34,14 +37,21 @@ jobs:
status_value: ${{ env.todo }} # Target status
pr_opened_or_reopened:
name: pr_opened_or_reopened
runs-on: ubuntu-latest
if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened')
runs-on: ubuntu-22.04
permissions:
# write permission is required for autolabeler
pull-requests: write
if: github.event_name == 'pull_request_target' && (github.event.action == 'opened' || github.event.action == 'reopened') && github.event.pull_request.user.login != 'dependabot'
steps:
- name: Set PR status to ${{ env.in_progress }}
uses: leonsteinhaeuser/project-beta-automations@v1.2.1
- name: Add PR to project and set status to "Needs Review"
uses: leonsteinhaeuser/project-beta-automations@v2.0.1
with:
gh_token: ${{ secrets.GH_TOKEN }}
organization: paperless-ngx
project_id: 2
resource_node_id: ${{ github.event.pull_request.node_id }}
status_value: ${{ env.in_progress }} # Target status
status_value: "Needs Review" # Target status
- name: Label PR with release-drafter
uses: release-drafter/release-drafter@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

31
.github/workflows/release-chart.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
---
name: Release Charts
on:
push:
tags:
- v*
jobs:
release_chart:
name: "Release Chart"
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v3
with:
version: v3.10.0
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.4.1
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -0,0 +1,57 @@
name: Reusable Image Builder
on:
workflow_call:
inputs:
dockerfile:
required: true
type: string
build-json:
required: true
type: string
build-args:
required: false
default: ""
type: string
build-platforms:
required: false
default: linux/amd64,linux/arm64,linux/arm/v7
type: string
concurrency:
group: ${{ github.workflow }}-${{ fromJSON(inputs.build-json).name }}-${{ fromJSON(inputs.build-json).version }}
cancel-in-progress: false
jobs:
build-image:
name: Build ${{ fromJSON(inputs.build-json).name }} @ ${{ fromJSON(inputs.build-json).version }}
runs-on: ubuntu-22.04
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Login to Github Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Build ${{ fromJSON(inputs.build-json).name }}
uses: docker/build-push-action@v3
with:
context: .
file: ${{ inputs.dockerfile }}
tags: ${{ fromJSON(inputs.build-json).image_tag }}
platforms: ${{ inputs.build-platforms }}
build-args: ${{ inputs.build-args }}
push: true
cache-from: type=registry,ref=${{ fromJSON(inputs.build-json).cache_tag }}
cache-to: type=registry,mode=max,ref=${{ fromJSON(inputs.build-json).cache_tag }}

15
.gitignore vendored
View File

@@ -51,8 +51,8 @@ coverage.xml
# Django stuff:
*.log
# Sphinx documentation
docs/_build/
# MkDocs documentation
site/
# PyBuilder
target/
@@ -63,11 +63,14 @@ target/
# VS Code
.vscode
/src-ui/.vscode
/docs/.vscode
# Other stuff that doesn't belong
.virtualenv
virtualenv
/venv
.venv/
/docker-compose.env
/docker-compose.yml
@@ -84,8 +87,12 @@ scripts/nuke
/paperless.conf
/consume/
/export/
/src-ui/.vscode
# this is where the compiled frontend is moved to.
/src/documents/static/frontend/
/docs/.vscode/settings.json
# mac os
.DS_Store
# celery schedule file
celerybeat-schedule*

8
.hadolint.yml Normal file
View File

@@ -0,0 +1,8 @@
failure-threshold: warning
ignored:
# https://github.com/hadolint/hadolint/wiki/DL3008
- DL3008
# https://github.com/hadolint/hadolint/wiki/DL3013
- DL3013
# https://github.com/hadolint/hadolint/wiki/DL3003
- DL3003

View File

@@ -5,19 +5,20 @@
repos:
# General hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.2.0
rev: v4.4.0
hooks:
- id: check-docstring-first
- id: check-json
exclude: "tsconfig.*json"
- id: check-yaml
exclude: "charts/paperless-ngx/templates/common.yaml"
- id: check-toml
- id: check-executables-have-shebangs
- id: end-of-file-fixer
exclude_types:
- svg
- pofile
exclude: "(^LICENSE$)"
exclude: "^(LICENSE|charts/paperless-ngx/README.md)$"
- id: mixed-line-ending
args:
- "--fix=lf"
@@ -27,46 +28,53 @@ repos:
- id: check-case-conflict
- id: detect-private-key
- repo: https://github.com/pre-commit/mirrors-prettier
rev: "v2.6.2"
rev: "v2.7.1"
hooks:
- id: prettier
types_or:
- javascript
- ts
- markdown
exclude: "(^Pipfile\\.lock$)"
exclude: "(^Pipfile\\.lock$)|(^charts/paperless-ngx/README.md$)"
# Python hooks
- repo: https://github.com/asottile/reorder_python_imports
rev: v3.0.1
rev: v3.9.0
hooks:
- id: reorder-python-imports
exclude: "(migrations)"
- repo: https://github.com/asottile/yesqa
rev: "v1.3.0"
rev: "v1.4.0"
hooks:
- id: yesqa
exclude: "(migrations)"
- repo: https://github.com/asottile/add-trailing-comma
rev: "v2.2.2"
rev: "v2.4.0"
hooks:
- id: add-trailing-comma
exclude: "(migrations)"
- repo: https://gitlab.com/pycqa/flake8
rev: 3.9.2
- repo: https://github.com/PyCQA/flake8
rev: 6.0.0
hooks:
- id: flake8
files: ^src/
args:
- "--config=./src/setup.cfg"
- repo: https://github.com/psf/black
rev: 22.3.0
rev: 22.12.0
hooks:
- id: black
# Dockerfile hooks
- repo: https://github.com/pryorda/dockerfilelint-precommit-hooks
rev: "v0.1.0"
- repo: https://github.com/asottile/pyupgrade
rev: v3.3.1
hooks:
- id: dockerfilelint
- id: pyupgrade
exclude: "(migrations)"
args:
- "--py38-plus"
# Dockerfile hooks
- repo: https://github.com/AleksaC/hadolint-py
rev: v2.10.0
hooks:
- id: hadolint
# Shell script hooks
- repo: https://github.com/lovesegfault/beautysh
rev: v6.2.1
@@ -75,6 +83,6 @@ repos:
args:
- "--tab"
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: "v0.8.0.4"
rev: "v0.9.0.2"
hooks:
- id: shellcheck

View File

@@ -1,16 +0,0 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# Optionally set the version of Python and requirements required to build your docs
python:
version: "3.8"
install:
- requirements: docs/requirements.txt

View File

@@ -7,4 +7,3 @@
/src/ @paperless-ngx/backend
Pipfile* @paperless-ngx/backend
*.py @paperless-ngx/backend
requirements.txt @paperless-ngx/backend

View File

@@ -27,11 +27,11 @@ Please format and test your code! I know it's a hassle, but it makes sure that y
To test your code, execute `pytest` in the src/ directory. This also generates a html coverage report, which you can use to see if you missed anything important during testing.
Before you can run `pytest`, ensure to [properly set up your local environment](https://paperless-ngx.readthedocs.io/en/latest/extending.html#initial-setup-and-first-start).
Before you can run `pytest`, ensure to [properly set up your local environment](https://docs.paperless-ngx.com/development/#initial-setup-and-first-start).
## More info:
... is available in the documentation. https://paperless-ngx.readthedocs.io/en/latest/extending.html
... is available [in the documentation](https://docs.paperless-ngx.com/development).
# Merging PRs

View File

@@ -1,58 +1,258 @@
FROM node:16 AS compile-frontend
# syntax=docker/dockerfile:1.4
COPY . /src
# Pull the installer images from the library
# These are all built previously
# They provide either a .deb or .whl
ARG JBIG2ENC_VERSION
ARG QPDF_VERSION
ARG PIKEPDF_VERSION
ARG PSYCOPG2_VERSION
FROM ghcr.io/paperless-ngx/paperless-ngx/builder/jbig2enc:${JBIG2ENC_VERSION} as jbig2enc-builder
FROM ghcr.io/paperless-ngx/paperless-ngx/builder/qpdf:${QPDF_VERSION} as qpdf-builder
FROM ghcr.io/paperless-ngx/paperless-ngx/builder/pikepdf:${PIKEPDF_VERSION} as pikepdf-builder
FROM ghcr.io/paperless-ngx/paperless-ngx/builder/psycopg2:${PSYCOPG2_VERSION} as psycopg2-builder
FROM --platform=$BUILDPLATFORM node:16-bullseye-slim AS compile-frontend
# This stage compiles the frontend
# This stage runs once for the native platform, as the outputs are not
# dependent on target arch
# Inputs: None
COPY ./src-ui /src/src-ui
WORKDIR /src/src-ui
RUN npm update npm -g && npm ci --no-optional
RUN ./node_modules/.bin/ng build --configuration production
RUN set -eux \
&& npm update npm -g \
&& npm ci --omit=optional
RUN set -eux \
&& ./node_modules/.bin/ng build --configuration production
FROM ghcr.io/paperless-ngx/builder/ngx-base:1.7.0 as main-app
FROM --platform=$BUILDPLATFORM python:3.9-slim-bullseye as pipenv-base
# This stage generates the requirements.txt file using pipenv
# This stage runs once for the native platform, as the outputs are not
# dependent on target arch
# This way, pipenv dependencies are not left in the final image
# nor can pipenv mess up the final image somehow
# Inputs: None
WORKDIR /usr/src/pipenv
COPY Pipfile* ./
RUN set -eux \
&& echo "Installing pipenv" \
&& python3 -m pip install --no-cache-dir --upgrade pipenv==2022.11.30 \
&& echo "Generating requirement.txt" \
&& pipenv requirements > requirements.txt
FROM python:3.9-slim-bullseye as main-app
LABEL org.opencontainers.image.authors="paperless-ngx team <hello@paperless-ngx.com>"
LABEL org.opencontainers.image.documentation="https://paperless-ngx.readthedocs.io/en/latest/"
LABEL org.opencontainers.image.documentation="https://docs.paperless-ngx.com/"
LABEL org.opencontainers.image.source="https://github.com/paperless-ngx/paperless-ngx"
LABEL org.opencontainers.image.url="https://github.com/paperless-ngx/paperless-ngx"
LABEL org.opencontainers.image.licenses="GPL-3.0-only"
WORKDIR /usr/src/paperless/src/
ARG DEBIAN_FRONTEND=noninteractive
# Buildx provided
ARG TARGETARCH
ARG TARGETVARIANT
COPY requirements.txt ../
# Workflow provided
ARG QPDF_VERSION
# Python dependencies
RUN apt-get update \
# python-Levenshtein still needs to be compiled here
&& apt-get -y --no-install-recommends install \
build-essential \
&& python3 -m pip install --upgrade --no-cache-dir pip wheel \
&& python3 -m pip install --default-timeout=1000 --upgrade --no-cache-dir supervisor \
&& python3 -m pip install --default-timeout=1000 --no-cache-dir -r ../requirements.txt \
&& apt-get -y purge build-essential \
&& apt-get -y autoremove --purge \
&& rm -rf /var/lib/apt/lists/*
#
# Begin installation and configuration
# Order the steps below from least often changed to most
#
# copy jbig2enc
# Basically will never change again
COPY --from=jbig2enc-builder /usr/src/jbig2enc/src/.libs/libjbig2enc* /usr/local/lib/
COPY --from=jbig2enc-builder /usr/src/jbig2enc/src/jbig2 /usr/local/bin/
COPY --from=jbig2enc-builder /usr/src/jbig2enc/src/*.h /usr/local/include/
# Packages need for running
ARG RUNTIME_PACKAGES="\
# Python
python3 \
python3-pip \
python3-setuptools \
# General utils
curl \
# Docker specific
gosu \
# Timezones support
tzdata \
# fonts for text file thumbnail generation
fonts-liberation \
gettext \
ghostscript \
gnupg \
icc-profiles-free \
imagemagick \
# Image processing
liblept5 \
liblcms2-2 \
libtiff5 \
libfreetype6 \
libwebp6 \
libopenjp2-7 \
libimagequant0 \
libraqm0 \
libjpeg62-turbo \
# PostgreSQL
libpq5 \
postgresql-client \
# MySQL / MariaDB
mariadb-client \
# For Numpy
libatlas3-base \
# OCRmyPDF dependencies
tesseract-ocr \
tesseract-ocr-eng \
tesseract-ocr-deu \
tesseract-ocr-fra \
tesseract-ocr-ita \
tesseract-ocr-spa \
unpaper \
pngquant \
# pikepdf / qpdf
jbig2dec \
libxml2 \
libxslt1.1 \
libgnutls30 \
# Mime type detection
file \
libmagic1 \
media-types \
zlib1g \
# Barcode splitter
libzbar0 \
poppler-utils \
# RapidFuzz on armv7
libatomic1"
# Install basic runtime packages.
# These change very infrequently
RUN set -eux \
echo "Installing system packages" \
&& apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${RUNTIME_PACKAGES} \
&& rm -rf /var/lib/apt/lists/* \
&& echo "Installing supervisor" \
&& python3 -m pip install --default-timeout=1000 --upgrade --no-cache-dir supervisor==4.2.4
# Copy gunicorn config
# Changes very infrequently
WORKDIR /usr/src/paperless/
COPY gunicorn.conf.py .
# setup docker-specific things
COPY docker/ ./docker/
# Use mounts to avoid copying installer files into the image
# These change sometimes, but rarely
WORKDIR /usr/src/paperless/src/docker/
RUN cd docker \
&& cp imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \
&& mkdir /var/log/supervisord /var/run/supervisord \
&& cp supervisord.conf /etc/supervisord.conf \
&& cp docker-entrypoint.sh /sbin/docker-entrypoint.sh \
&& chmod 755 /sbin/docker-entrypoint.sh \
&& cp docker-prepare.sh /sbin/docker-prepare.sh \
&& chmod 755 /sbin/docker-prepare.sh \
&& chmod +x install_management_commands.sh \
&& ./install_management_commands.sh \
&& cd .. \
&& rm -rf docker/
COPY [ \
"docker/imagemagick-policy.xml", \
"docker/supervisord.conf", \
"docker/docker-entrypoint.sh", \
"docker/docker-prepare.sh", \
"docker/paperless_cmd.sh", \
"docker/wait-for-redis.py", \
"docker/management_script.sh", \
"docker/flower-conditional.sh", \
"docker/install_management_commands.sh", \
"/usr/src/paperless/src/docker/" \
]
COPY gunicorn.conf.py ../
RUN set -eux \
&& echo "Configuring ImageMagick" \
&& mv imagemagick-policy.xml /etc/ImageMagick-6/policy.xml \
&& echo "Configuring supervisord" \
&& mkdir /var/log/supervisord /var/run/supervisord \
&& mv supervisord.conf /etc/supervisord.conf \
&& echo "Setting up Docker scripts" \
&& mv docker-entrypoint.sh /sbin/docker-entrypoint.sh \
&& chmod 755 /sbin/docker-entrypoint.sh \
&& mv docker-prepare.sh /sbin/docker-prepare.sh \
&& chmod 755 /sbin/docker-prepare.sh \
&& mv wait-for-redis.py /sbin/wait-for-redis.py \
&& chmod 755 /sbin/wait-for-redis.py \
&& mv paperless_cmd.sh /usr/local/bin/paperless_cmd.sh \
&& chmod 755 /usr/local/bin/paperless_cmd.sh \
&& mv flower-conditional.sh /usr/local/bin/flower-conditional.sh \
&& chmod 755 /usr/local/bin/flower-conditional.sh \
&& echo "Installing managment commands" \
&& chmod +x install_management_commands.sh \
&& ./install_management_commands.sh
# copy app
COPY --from=compile-frontend /src/src/ ./
# Install the built packages from the installer library images
# Use mounts to avoid copying installer files into the image
# These change sometimes
RUN --mount=type=bind,from=qpdf-builder,target=/qpdf \
--mount=type=bind,from=psycopg2-builder,target=/psycopg2 \
--mount=type=bind,from=pikepdf-builder,target=/pikepdf \
set -eux \
&& echo "Installing qpdf" \
&& apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/${QPDF_VERSION}/${TARGETARCH}${TARGETVARIANT}/libqpdf29_*.deb \
&& apt-get install --yes --no-install-recommends /qpdf/usr/src/qpdf/${QPDF_VERSION}/${TARGETARCH}${TARGETVARIANT}/qpdf_*.deb \
&& echo "Installing pikepdf and dependencies" \
&& python3 -m pip install --no-cache-dir /pikepdf/usr/src/wheels/*.whl \
&& python3 -m pip list \
&& echo "Installing psycopg2" \
&& python3 -m pip install --no-cache-dir /psycopg2/usr/src/wheels/psycopg2*.whl \
&& python3 -m pip list
WORKDIR /usr/src/paperless/src/
# Python dependencies
# Change pretty frequently
COPY --from=pipenv-base /usr/src/pipenv/requirements.txt ./
# Packages needed only for building a few quick Python
# dependencies
ARG BUILD_PACKAGES="\
build-essential \
git \
default-libmysqlclient-dev \
python3-dev"
RUN set -eux \
&& echo "Installing build system packages" \
&& apt-get update \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& python3 -m pip install --no-cache-dir --upgrade wheel \
&& echo "Installing Python requirements" \
&& python3 -m pip install --default-timeout=1000 --no-cache-dir --requirement requirements.txt \
&& echo "Installing NLTK data" \
&& python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/local/share/nltk_data" snowball_data \
&& python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/local/share/nltk_data" stopwords \
&& python3 -W ignore::RuntimeWarning -m nltk.downloader -d "/usr/local/share/nltk_data" punkt \
&& echo "Cleaning up image" \
&& apt-get -y purge ${BUILD_PACKAGES} \
&& apt-get -y autoremove --purge \
&& apt-get clean --yes \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /tmp/* \
&& rm -rf /var/tmp/* \
&& rm -rf /var/cache/apt/archives/* \
&& truncate -s 0 /var/log/*log
# copy backend
COPY ./src ./
# copy frontend
COPY --from=compile-frontend /src/src/documents/static/frontend/ ./documents/static/frontend/
# add users, setup scripts
RUN addgroup --gid 1000 paperless \
RUN set -eux \
&& addgroup --gid 1000 paperless \
&& useradd --uid 1000 --gid paperless --home-dir /usr/src/paperless paperless \
&& chown -R paperless:paperless ../ \
&& gosu paperless python3 manage.py collectstatic --clear --no-input \
@@ -67,4 +267,4 @@ ENTRYPOINT ["/sbin/docker-entrypoint.sh"]
EXPOSE 8000
CMD ["/usr/local/bin/supervisord", "-c", "/etc/supervisord.conf"]
CMD ["/usr/local/bin/paperless_cmd.sh"]

57
Pipfile
View File

@@ -10,41 +10,37 @@ name = "piwheels"
[packages]
dateparser = "~=1.1"
django = "~=4.0"
django = "~=4.1"
django-cors-headers = "*"
django-extensions = "*"
django-filter = "~=21.1"
django-q = "~=1.3"
djangorestframework = "~=3.13"
django-filter = "~=22.1"
djangorestframework = "~=3.14"
filelock = "*"
fuzzywuzzy = {extras = ["speedup"], version = "*"}
gunicorn = "*"
imap-tools = "*"
langdetect = "*"
pathvalidate = "*"
pillow = "~=9.1"
# Any version update to pikepdf requires a base image update
pikepdf = "~=5.1"
pillow = "~=9.3"
pikepdf = "*"
python-gnupg = "*"
python-dotenv = "*"
python-dateutil = "*"
python-magic = "*"
# Any version update to psycopg2 requires a base image update
psycopg2 = "*"
redis = "*"
# Pinned because aarch64 wheels and updates cause warnings when loading the classifier model.
scikit-learn="==1.0.2"
whitenoise = "~=6.0.0"
watchdog = "~=2.1.0"
whoosh="~=2.7.4"
rapidfuzz = "*"
redis = {extras = ["hiredis"], version = "*"}
scikit-learn = "~=1.1"
numpy = "*"
whitenoise = "~=6.2"
watchdog = "~=2.1"
whoosh="~=2.7"
inotifyrecursive = "~=0.3"
ocrmypdf = "~=13.4"
ocrmypdf = "~=14.0"
tqdm = "*"
tika = "*"
# TODO: This will sadly also install daphne+dependencies,
# which an ASGI server we don't need. Adds about 15MB image size.
channels = "~=3.0"
channels-redis = "*"
uvicorn = {extras = ["standard"], version = "*"}
concurrent-log-handler = "*"
"pdfminer.six" = "*"
@@ -52,7 +48,28 @@ concurrent-log-handler = "*"
"importlib-resources" = {version = "*", markers = "python_version < '3.9'"}
zipp = {version = "*", markers = "python_version < '3.9'"}
pyzbar = "*"
mysqlclient = "*"
celery = {extras = ["redis"], version = "*"}
django-celery-results = "*"
setproctitle = "*"
nltk = "*"
pdf2image = "*"
flower = "*"
bleach = "*"
#
# Packages locked due to issues (try to check if these are fixed in a release every so often)
#
# Pin this until piwheels is building 1.9 (see https://www.piwheels.org/project/scipy/)
scipy = "==1.8.1"
# Newer versions aren't builting yet (see https://www.piwheels.org/project/cryptography/)
cryptography = "==38.0.1"
# Locked version until https://github.com/django/channels_redis/issues/332
# is resolved
channels-redis = "==3.4.1"
[dev-packages]
coveralls = "*"
@@ -64,8 +81,10 @@ pytest-django = "*"
pytest-env = "*"
pytest-sugar = "*"
pytest-xdist = "*"
sphinx = "~=4.5.0"
sphinx_rtd_theme = "*"
tox = "*"
black = "*"
pre-commit = "*"
sphinx-autobuild = "*"
myst-parser = "*"
imagehash = "*"
mkdocs-material = "*"

2871
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,9 @@
[![ci](https://github.com/paperless-ngx/paperless-ngx/workflows/ci/badge.svg)](https://github.com/paperless-ngx/paperless-ngx/actions)
[![Crowdin](https://badges.crowdin.net/paperless-ngx/localized.svg)](https://crowdin.com/project/paperless-ngx)
[![Documentation Status](https://readthedocs.org/projects/paperless-ngx/badge/?version=latest)](https://paperless-ngx.readthedocs.io/en/latest/?badge=latest)
[![Documentation Status](https://img.shields.io/github/deployments/paperless-ngx/paperless-ngx/github-pages?label=docs)](https://docs.paperless-ngx.com)
[![Coverage Status](https://coveralls.io/repos/github/paperless-ngx/paperless-ngx/badge.svg?branch=master)](https://coveralls.io/github/paperless-ngx/paperless-ngx?branch=master)
[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#paperless:adnidor.de)
[![Chat on Matrix](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/%23paperlessngx%3Amatrix.org)
[![demo](https://cronitor.io/badges/ve7ItY/production/W5E_B9jkelG9ZbDiNHUPQEVH3MY.svg)](https://demo.paperless-ngx.com)
<p align="center">
<img src="https://github.com/paperless-ngx/paperless-ngx/raw/main/resources/logo/web/png/Black%20logo%20-%20no%20background.png#gh-light-mode-only" width="50%" />
@@ -32,13 +33,13 @@ A demo is available at [demo.paperless-ngx.com](https://demo.paperless-ngx.com)
# Features
![Dashboard](https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docs/_static/screenshots/documents-wchrome.png#gh-light-mode-only)
![Dashboard](https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docs/_static/screenshots/documents-wchrome-dark.png#gh-dark-mode-only)
![Dashboard](https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docs/assets/screenshots/documents-smallcards.png#gh-light-mode-only)
![Dashboard](https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/docs/assets/screenshots/documents-smallcards-dark.png#gh-dark-mode-only)
- Organize and index your scanned documents with tags, correspondents, types, and more.
- Performs OCR on your documents, adds selectable text to image only documents and adds tags, correspondents and document types to your documents.
- Supports PDF documents, images, plain text files, and Office documents (Word, Excel, Powerpoint, and LibreOffice equivalents).
- Office document support is optional and provided by Apache Tika (see [configuration](https://paperless-ngx.readthedocs.io/en/latest/configuration.html#tika-settings))
- Office document support is optional and provided by Apache Tika (see [configuration](https://docs.paperless-ngx.com/configuration/#tika))
- Paperless stores your documents plain on disk. Filenames and folders are managed by paperless and their format can be configured freely.
- Single page application front end.
- Includes a dashboard that shows basic statistics and has document upload.
@@ -56,7 +57,7 @@ A demo is available at [demo.paperless-ngx.com](https://demo.paperless-ngx.com)
- Paperless-ngx learns from your documents and will be able to automatically assign tags, correspondents and types to documents once you've stored a few documents in paperless.
- Optimized for multi core systems: Paperless-ngx consumes multiple documents in parallel.
- The integrated sanity checker makes sure that your document archive is in good health.
- [More screenshots are available in the documentation](https://paperless-ngx.readthedocs.io/en/latest/screenshots.html).
- [More screenshots are available in the documentation](https://docs.paperless-ngx.com/#screenshots).
# Getting started
@@ -68,19 +69,19 @@ If you'd like to jump right in, you can configure a docker-compose environment w
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
```
Alternatively, you can install the dependencies and setup apache and a database server yourself. The [documentation](https://paperless-ngx.readthedocs.io/en/latest/setup.html#installation) has a step by step guide on how to do it.
Alternatively, you can install the dependencies and setup apache and a database server yourself. The [documentation](https://docs.paperless-ngx.com/setup/#installation) has a step by step guide on how to do it.
Migrating from Paperless-ng is easy, just drop in the new docker image! See the [documentation on migrating](https://paperless-ngx.readthedocs.io/en/latest/setup.html#migrating-from-paperless-ng) for more details.
Migrating from Paperless-ng is easy, just drop in the new docker image! See the [documentation on migrating](https://docs.paperless-ngx.com/setup/#migrating-to-paperless-ngx) for more details.
<!-- omit in toc -->
### Documentation
The documentation for Paperless-ngx is available on [ReadTheDocs](https://paperless-ngx.readthedocs.io/).
The documentation for Paperless-ngx is available at [https://docs.paperless-ngx.com](https://docs.paperless-ngx.com/).
# Contributing
If you feel like contributing to the project, please do! Bug fixes, enhancements, visual fixes etc. are always welcome. If you want to implement something big: Please start a discussion about that! The [documentation](https://paperless-ngx.readthedocs.io/en/latest/extending.html) has some basic information on how to get started.
If you feel like contributing to the project, please do! Bug fixes, enhancements, visual fixes etc. are always welcome. If you want to implement something big: Please start a discussion about that! The [documentation](https://docs.paperless-ngx.com/development/) has some basic information on how to get started.
## Community Support
@@ -102,9 +103,10 @@ For bugs please [open an issue](https://github.com/paperless-ngx/paperless-ngx/i
Paperless has been around a while now, and people are starting to build stuff on top of it. If you're one of those people, we can add your project to this list:
- [Paperless App](https://github.com/bauerj/paperless_app): An Android/iOS app for Paperless-ngx. Also works with the original Paperless and Paperless-ngx.
- [Paperless App](https://github.com/bauerj/paperless_app): An Android/iOS app for Paperless-ngx. Also works with the original Paperless and Paperless-ng.
- [Paperless Share](https://github.com/qcasey/paperless_share). Share any files from your Android application with paperless. Very simple, but works with all of the mobile scanning apps out there that allow you to share scanned documents.
- [Scan to Paperless](https://github.com/sbrunner/scan-to-paperless): Scan and prepare (crop, deskew, OCR, ...) your documents for Paperless.
- [Paperless Mobile](https://github.com/astubenbord/paperless-mobile): A modern, feature rich mobile application for Paperless.
These projects also exist, but their status and compatibility with paperless-ngx is unknown.

81
build-docker-image.sh Executable file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env bash
# Helper script for building the Docker image locally.
# Parses and provides the nessecary versions of other images to Docker
# before passing in the rest of script args.
# First Argument: The Dockerfile to build
# Other Arguments: Additional arguments to docker build
# Example Usage:
# ./build-docker-image.sh Dockerfile -t paperless-ngx:my-awesome-feature
set -eu
if ! command -v jq &> /dev/null ; then
echo "jq required"
exit 1
elif [ ! -f "$1" ]; then
echo "$1 is not a file, please provide the Dockerfile"
exit 1
fi
# Get the branch name (used for caching)
branch_name=$(git rev-parse --abbrev-ref HEAD)
# Parse eithe Pipfile.lock or the .build-config.json
jbig2enc_version=$(jq ".jbig2enc.version" .build-config.json | sed 's/"//g')
qpdf_version=$(jq ".qpdf.version" .build-config.json | sed 's/"//g')
psycopg2_version=$(jq ".default.psycopg2.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
pikepdf_version=$(jq ".default.pikepdf.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
pillow_version=$(jq ".default.pillow.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
lxml_version=$(jq ".default.lxml.version" Pipfile.lock | sed 's/=//g' | sed 's/"//g')
base_filename="$(basename -- "${1}")"
build_args_str=""
cache_from_str=""
case "${base_filename}" in
*.jbig2enc)
build_args_str="--build-arg JBIG2ENC_VERSION=${jbig2enc_version}"
cache_from_str="--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/jbig2enc:${jbig2enc_version}"
;;
*.psycopg2)
build_args_str="--build-arg PSYCOPG2_VERSION=${psycopg2_version}"
cache_from_str="--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/psycopg2:${psycopg2_version}"
;;
*.qpdf)
build_args_str="--build-arg QPDF_VERSION=${qpdf_version}"
cache_from_str="--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/qpdf:${qpdf_version}"
;;
*.pikepdf)
build_args_str="--build-arg QPDF_VERSION=${qpdf_version} --build-arg PIKEPDF_VERSION=${pikepdf_version} --build-arg PILLOW_VERSION=${pillow_version} --build-arg LXML_VERSION=${lxml_version}"
cache_from_str="--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/pikepdf:${pikepdf_version}"
;;
Dockerfile)
build_args_str="--build-arg QPDF_VERSION=${qpdf_version} --build-arg PIKEPDF_VERSION=${pikepdf_version} --build-arg PSYCOPG2_VERSION=${psycopg2_version} --build-arg JBIG2ENC_VERSION=${jbig2enc_version}"
cache_from_str="--cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/app:${branch_name} --cache-from ghcr.io/paperless-ngx/paperless-ngx/builder/cache/app:dev"
;;
*)
echo "Unable to match ${base_filename}"
exit 1
;;
esac
read -r -a build_args_arr <<< "${build_args_str}"
read -r -a cache_from_arr <<< "${cache_from_str}"
set -eux
docker buildx build --file "${1}" \
--progress=plain \
--output=type=docker \
"${cache_from_arr[@]}" \
"${build_args_arr[@]}" \
"${@:2}" .

View File

@@ -0,0 +1,26 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl

View File

@@ -0,0 +1,35 @@
---
apiVersion: v2
appVersion: "1.9.2"
description: Paperless-ngx - Index and archive all of your scanned paper documents
name: paperless
version: 10.0.1
kubeVersion: ">=1.16.0-0"
keywords:
- paperless
- paperless-ngx
- dms
- document
home: https://github.com/paperless-ngx/paperless-ngx/tree/main/charts/paperless-ngx
icon: https://github.com/paperless-ngx/paperless-ngx/raw/main/resources/logo/web/svg/square.svg
sources:
- https://github.com/paperless-ngx/paperless-ngx
maintainers:
- name: Paperless-ngx maintainers
dependencies:
- name: common
repository: https://library-charts.k8s-at-home.com
version: 4.5.2
- name: postgresql
version: 11.6.12
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled
- name: redis
version: 16.13.1
repository: https://charts.bitnami.com/bitnami
condition: redis.enabled
deprecated: false
annotations:
artifacthub.io/changes: |
- kind: changed
description: Moved to Paperless-ngx ownership

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2020 k8s@Home
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -0,0 +1,50 @@
# paperless
![Version: 10.0.0](https://img.shields.io/badge/Version-10.0.0-informational?style=flat-square) ![AppVersion: 1.9.2](https://img.shields.io/badge/AppVersion-1.9.2-informational?style=flat-square)
Paperless-ngx - Index and archive all of your scanned paper documents
**Homepage:** <https://github.com/paperless-ngx/paperless-ngx/tree/main/charts/paperless-ngx>
## Maintainers
| Name | Email | Url |
| ---- | ------ | --- |
| Paperless-ngx maintainers | | |
## Source Code
* <https://github.com/paperless-ngx/paperless-ngx>
## Requirements
Kubernetes: `>=1.16.0-0`
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | postgresql | 11.6.12 |
| https://charts.bitnami.com/bitnami | redis | 16.13.1 |
| https://library-charts.k8s-at-home.com | common | 4.5.2 |
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| env | object | See below | See the following files for additional environment variables: https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose/ https://github.com/paperless-ngx/paperless-ngx/blob/main/paperless.conf.example |
| env.COMPOSE_PROJECT_NAME | string | `"paperless"` | Project name |
| env.PAPERLESS_DBHOST | string | `nil` | Database host to use |
| env.PAPERLESS_OCR_LANGUAGE | string | `"eng"` | OCR languages to install |
| env.PAPERLESS_PORT | int | `8000` | Port to use |
| env.PAPERLESS_REDIS | string | `nil` | Redis to use |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"ghcr.io/paperless-ngx/paperless-ngx"` | image repository |
| image.tag | string | chart.appVersion | image tag |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| persistence.consume | object | See values.yaml | Configure volume to monitor for new documents. |
| persistence.data | object | See values.yaml | Configure persistence for data. |
| persistence.export | object | See values.yaml | Configure export volume. |
| persistence.media | object | See values.yaml | Configure persistence for media. |
| postgresql | object | See values.yaml | Enable and configure postgresql database subchart under this key. For more options see [postgresql chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/postgresql) |
| redis | object | See values.yaml | Enable and configure redis subchart under this key. For more options see [redis chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/redis) |
| service | object | See values.yaml | Configures service settings for the chart. |

View File

@@ -0,0 +1,8 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}

View File

@@ -0,0 +1,26 @@
env:
PAPERLESS_REDIS: redis://paperless-redis-headless:6379
persistence:
data:
enabled: true
type: emptyDir
media:
enabled: true
type: emptyDir
consume:
enabled: true
type: emptyDir
export:
enabled: true
type: emptyDir
redis:
enabled: true
architecture: standalone
auth:
enabled: false
master:
persistence:
enabled: false
fullnameOverride: paperless-redis

View File

@@ -0,0 +1,4 @@
{{- include "common.notes.defaultNotes" . }}
2. Create a super user by running the command:
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "common.names.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
kubectl exec -it --namespace {{ .Release.Namespace }} $POD_NAME -- bash -c "python manage.py createsuperuser"

View File

@@ -0,0 +1,11 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* Append the hardcoded settings */}}
{{- define "paperless.harcodedValues" -}}
env:
PAPERLESS_URL: http{{if ne ( len .Values.ingress.main.tls ) 0 }}s{{end}}://{{ (first .Values.ingress.main.hosts).host }}
{{- end -}}
{{- $_ := merge .Values (include "paperless.harcodedValues" . | fromYaml) -}}
{{ include "common.all" . }}

View File

@@ -0,0 +1,107 @@
#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
#
image:
# -- image repository
repository: ghcr.io/paperless-ngx/paperless-ngx
# -- image pull policy
pullPolicy: IfNotPresent
# -- image tag
# @default -- chart.appVersion
tag:
# -- See the following files for additional environment variables:
# https://github.com/paperless-ngx/paperless-ngx/tree/main/docker/compose/
# https://github.com/paperless-ngx/paperless-ngx/blob/main/paperless.conf.example
# @default -- See below
env:
# -- Project name
COMPOSE_PROJECT_NAME: paperless
# -- Redis to use
PAPERLESS_REDIS:
# -- OCR languages to install
PAPERLESS_OCR_LANGUAGE: eng
# USERMAP_UID: 1000
# USERMAP_GID: 1000
# PAPERLESS_TIME_ZONE: Europe/London
# -- Database host to use
PAPERLESS_DBHOST:
# -- Port to use
PAPERLESS_PORT: 8000
# -- Username for the root user
# PAPERLESS_ADMIN_USER: admin
# -- Password for the root user
# PAPERLESS_ADMIN_PASSWORD: admin
# PAPERLESS_URL: <set to main ingress by default>
# -- Configures service settings for the chart.
# @default -- See values.yaml
service:
main:
ports:
http:
port: 8000
ingress:
# -- Enable and configure ingress settings for the chart under this key.
# @default -- See values.yaml
main:
enabled: false
persistence:
# -- Configure persistence for data.
# @default -- See values.yaml
data:
enabled: false
mountPath: /usr/src/paperless/data
accessMode: ReadWriteOnce
emptyDir:
enabled: false
# -- Configure persistence for media.
# @default -- See values.yaml
media:
enabled: false
mountPath: /usr/src/paperless/media
accessMode: ReadWriteOnce
emptyDir:
enabled: false
# -- Configure volume to monitor for new documents.
# @default -- See values.yaml
consume:
enabled: false
mountPath: /usr/src/paperless/consume
accessMode: ReadWriteOnce
emptyDir:
enabled: false
# -- Configure export volume.
# @default -- See values.yaml
export:
enabled: false
mountPath: /usr/src/paperless/export
accessMode: ReadWriteOnce
emptyDir:
enabled: false
# -- Enable and configure postgresql database subchart under this key.
# For more options see [postgresql chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/postgresql)
# @default -- See values.yaml
postgresql:
enabled: false
postgresqlUsername: paperless
postgresqlPassword: paperless
postgresqlDatabase: paperless
persistence:
enabled: false
# storageClass: ""
# -- Enable and configure redis subchart under this key.
# For more options see [redis chart documentation](https://github.com/bitnami/charts/tree/master/bitnami/redis)
# @default -- See values.yaml
redis:
enabled: false
auth:
enabled: false

View File

@@ -0,0 +1,35 @@
# This Dockerfile compiles the jbig2enc library
# Inputs:
# - JBIG2ENC_VERSION - the Git tag to checkout and build
FROM debian:bullseye-slim as main
LABEL org.opencontainers.image.description="A intermediate image with jbig2enc built"
ARG DEBIAN_FRONTEND=noninteractive
ARG JBIG2ENC_VERSION
ARG BUILD_PACKAGES="\
build-essential \
automake \
libtool \
libleptonica-dev \
zlib1g-dev \
git \
ca-certificates"
WORKDIR /usr/src/jbig2enc
RUN set -eux \
&& echo "Installing build tools" \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& echo "Building jbig2enc" \
&& git clone --quiet --branch $JBIG2ENC_VERSION https://github.com/agl/jbig2enc . \
&& ./autogen.sh \
&& ./configure \
&& make \
&& echo "Cleaning up image" \
&& apt-get -y purge ${BUILD_PACKAGES} \
&& apt-get -y autoremove --purge \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -0,0 +1,102 @@
# This Dockerfile builds the pikepdf wheel
# Inputs:
# - REPO - Docker repository to pull qpdf from
# - QPDF_VERSION - The image qpdf version to copy .deb files from
# - PIKEPDF_VERSION - Version of pikepdf to build wheel for
# Default to pulling from the main repo registry when manually building
ARG REPO="paperless-ngx/paperless-ngx"
ARG QPDF_VERSION
FROM ghcr.io/${REPO}/builder/qpdf:${QPDF_VERSION} as qpdf-builder
# This does nothing, except provide a name for a copy below
FROM python:3.9-slim-bullseye as main
LABEL org.opencontainers.image.description="A intermediate image with pikepdf wheel built"
# Buildx provided
ARG TARGETARCH
ARG TARGETVARIANT
ARG DEBIAN_FRONTEND=noninteractive
# Workflow provided
ARG QPDF_VERSION
ARG PIKEPDF_VERSION
# These are not used, but will still bust the cache if one changes
# Otherwise, the main image will try to build thing (and fail)
ARG PILLOW_VERSION
ARG LXML_VERSION
ARG BUILD_PACKAGES="\
build-essential \
python3-dev \
python3-pip \
# qpdf requirement - https://github.com/qpdf/qpdf#crypto-providers
libgnutls28-dev \
# lxml requrements - https://lxml.de/installation.html
libxml2-dev \
libxslt1-dev \
# Pillow requirements - https://pillow.readthedocs.io/en/stable/installation.html#external-libraries
# JPEG functionality
libjpeg62-turbo-dev \
# conpressed PNG
zlib1g-dev \
# compressed TIFF
libtiff-dev \
# type related services
libfreetype-dev \
# color management
liblcms2-dev \
# WebP format
libwebp-dev \
# JPEG 2000
libopenjp2-7-dev \
# improved color quantization
libimagequant-dev \
# complex text layout support
libraqm-dev"
WORKDIR /usr/src
COPY --from=qpdf-builder /usr/src/qpdf/${QPDF_VERSION}/${TARGETARCH}${TARGETVARIANT}/*.deb ./
# As this is an base image for a multi-stage final image
# the added size of the install is basically irrelevant
RUN set -eux \
&& echo "Installing build tools" \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& echo "Installing qpdf" \
&& dpkg --install libqpdf29_*.deb \
&& dpkg --install libqpdf-dev_*.deb \
&& echo "Installing Python tools" \
&& python3 -m pip install --no-cache-dir --upgrade \
pip \
wheel \
# https://pikepdf.readthedocs.io/en/latest/installation.html#requirements
pybind11 \
&& echo "Building pikepdf wheel ${PIKEPDF_VERSION}" \
&& mkdir wheels \
&& python3 -m pip wheel \
# Build the package at the required version
pikepdf==${PIKEPDF_VERSION} \
# Look to piwheels for additional pre-built wheels
--extra-index-url https://www.piwheels.org/simple \
# Output the *.whl into this directory
--wheel-dir wheels \
# Do not use a binary packge for the package being built
--no-binary=pikepdf \
# Do use binary packages for dependencies
--prefer-binary \
# Don't cache build files
--no-cache-dir \
&& ls -ahl wheels \
&& echo "Gathering package data" \
&& dpkg-query -f '${Package;-40}${Version}\n' -W > ./wheels/pkg-list.txt \
&& echo "Cleaning up image" \
&& apt-get -y purge ${BUILD_PACKAGES} \
&& apt-get -y autoremove --purge \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -0,0 +1,50 @@
# This Dockerfile builds the psycopg2 wheel
# Inputs:
# - PSYCOPG2_VERSION - Version to build
FROM python:3.9-slim-bullseye as main
LABEL org.opencontainers.image.description="A intermediate image with psycopg2 wheel built"
ARG PSYCOPG2_VERSION
ARG DEBIAN_FRONTEND=noninteractive
ARG BUILD_PACKAGES="\
build-essential \
python3-dev \
python3-pip \
# https://www.psycopg.org/docs/install.html#prerequisites
libpq-dev"
WORKDIR /usr/src
# As this is an base image for a multi-stage final image
# the added size of the install is basically irrelevant
RUN set -eux \
&& echo "Installing build tools" \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${BUILD_PACKAGES} \
&& echo "Installing Python tools" \
&& python3 -m pip install --no-cache-dir --upgrade pip wheel \
&& echo "Building psycopg2 wheel ${PSYCOPG2_VERSION}" \
&& cd /usr/src \
&& mkdir wheels \
&& python3 -m pip wheel \
# Build the package at the required version
psycopg2==${PSYCOPG2_VERSION} \
# Output the *.whl into this directory
--wheel-dir wheels \
# Do not use a binary packge for the package being built
--no-binary=psycopg2 \
# Do use binary packages for dependencies
--prefer-binary \
# Don't cache build files
--no-cache-dir \
&& ls -ahl wheels/ \
&& echo "Gathering package data" \
&& dpkg-query -f '${Package;-40}${Version}\n' -W > ./wheels/pkg-list.txt \
&& echo "Cleaning up image" \
&& apt-get -y purge ${BUILD_PACKAGES} \
&& apt-get -y autoremove --purge \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -0,0 +1,156 @@
#
# Stage: pre-build
# Purpose:
# - Installs common packages
# - Sets common environment variables related to dpkg
# - Aquires the qpdf source from bookwork
# Useful Links:
# - https://qpdf.readthedocs.io/en/stable/installation.html#system-requirements
# - https://wiki.debian.org/Multiarch/HOWTO
# - https://wiki.debian.org/CrossCompiling
#
FROM debian:bullseye-slim as pre-build
ARG QPDF_VERSION
ARG COMMON_BUILD_PACKAGES="\
cmake \
debhelper\
debian-keyring \
devscripts \
dpkg-dev \
equivs \
packaging-dev \
libtool"
ENV DEB_BUILD_OPTIONS="terse nocheck nodoc parallel=2"
WORKDIR /usr/src
RUN set -eux \
&& echo "Installing common packages" \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${COMMON_BUILD_PACKAGES} \
&& echo "Getting qpdf source" \
&& echo "deb-src http://deb.debian.org/debian/ bookworm main" > /etc/apt/sources.list.d/bookworm-src.list \
&& apt-get update --quiet \
&& apt-get source --yes --quiet qpdf=${QPDF_VERSION}-1/bookworm
#
# Stage: amd64-builder
# Purpose: Builds qpdf for x86_64 (native build)
#
FROM pre-build as amd64-builder
ARG AMD64_BUILD_PACKAGES="\
build-essential \
libjpeg62-turbo-dev:amd64 \
libgnutls28-dev:amd64 \
zlib1g-dev:amd64"
WORKDIR /usr/src/qpdf-${QPDF_VERSION}
RUN set -eux \
&& echo "Beginning amd64" \
&& echo "Install amd64 packages" \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${AMD64_BUILD_PACKAGES} \
&& echo "Building amd64" \
&& dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes --post-clean \
&& echo "Removing debug files" \
&& rm -f ../libqpdf29-dbgsym* \
&& rm -f ../qpdf-dbgsym* \
&& echo "Gathering package data" \
&& dpkg-query -f '${Package;-40}${Version}\n' -W > ../pkg-list.txt
#
# Stage: armhf-builder
# Purpose:
# - Sets armhf specific environment
# - Builds qpdf for armhf (cross compile)
#
FROM pre-build as armhf-builder
ARG ARMHF_PACKAGES="\
crossbuild-essential-armhf \
libjpeg62-turbo-dev:armhf \
libgnutls28-dev:armhf \
zlib1g-dev:armhf"
WORKDIR /usr/src/qpdf-${QPDF_VERSION}
ENV CXX="/usr/bin/arm-linux-gnueabihf-g++" \
CC="/usr/bin/arm-linux-gnueabihf-gcc"
RUN set -eux \
&& echo "Beginning armhf" \
&& echo "Install armhf packages" \
&& dpkg --add-architecture armhf \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${ARMHF_PACKAGES} \
&& echo "Building armhf" \
&& dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes --post-clean --host-arch armhf \
&& echo "Removing debug files" \
&& rm -f ../libqpdf29-dbgsym* \
&& rm -f ../qpdf-dbgsym* \
&& echo "Gathering package data" \
&& dpkg-query -f '${Package;-40}${Version}\n' -W > ../pkg-list.txt
#
# Stage: aarch64-builder
# Purpose:
# - Sets aarch64 specific environment
# - Builds qpdf for aarch64 (cross compile)
#
FROM pre-build as aarch64-builder
ARG ARM64_PACKAGES="\
crossbuild-essential-arm64 \
libjpeg62-turbo-dev:arm64 \
libgnutls28-dev:arm64 \
zlib1g-dev:arm64"
ENV CXX="/usr/bin/aarch64-linux-gnu-g++" \
CC="/usr/bin/aarch64-linux-gnu-gcc"
WORKDIR /usr/src/qpdf-${QPDF_VERSION}
RUN set -eux \
&& echo "Beginning arm64" \
&& echo "Install arm64 packages" \
&& dpkg --add-architecture arm64 \
&& apt-get update --quiet \
&& apt-get install --yes --quiet --no-install-recommends ${ARM64_PACKAGES} \
&& echo "Building arm64" \
&& dpkg-buildpackage --build=binary --unsigned-source --unsigned-changes --post-clean --host-arch arm64 \
&& echo "Removing debug files" \
&& rm -f ../libqpdf29-dbgsym* \
&& rm -f ../qpdf-dbgsym* \
&& echo "Gathering package data" \
&& dpkg-query -f '${Package;-40}${Version}\n' -W > ../pkg-list.txt
#
# Stage: package
# Purpose: Holds the compiled .deb files in arch/variant specific folders
#
FROM alpine:3.17 as package
LABEL org.opencontainers.image.description="A image with qpdf installers stored in architecture & version specific folders"
ARG QPDF_VERSION
WORKDIR /usr/src/qpdf/${QPDF_VERSION}/amd64
COPY --from=amd64-builder /usr/src/*.deb ./
COPY --from=amd64-builder /usr/src/pkg-list.txt ./
# Note this is ${TARGETARCH}${TARGETVARIANT} for armv7
WORKDIR /usr/src/qpdf/${QPDF_VERSION}/armv7
COPY --from=armhf-builder /usr/src/*.deb ./
COPY --from=armhf-builder /usr/src/pkg-list.txt ./
WORKDIR /usr/src/qpdf/${QPDF_VERSION}/arm64
COPY --from=aarch64-builder /usr/src/*.deb ./
COPY --from=aarch64-builder /usr/src/pkg-list.txt ./

View File

@@ -0,0 +1,25 @@
# docker-compose file for running paperless testing with actual gotenberg
# and Tika containers for a more end to end test of the Tika related functionality
# Can be used locally or by the CI to start the nessecary containers with the
# correct networking for the tests
version: "3.7"
services:
gotenberg:
image: docker.io/gotenberg/gotenberg:7.6
hostname: gotenberg
container_name: gotenberg
network_mode: host
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: ghcr.io/paperless-ngx/tika:latest
hostname: tika
container_name: tika
network_mode: host
restart: unless-stopped

View File

@@ -36,3 +36,7 @@
# The default language to use for OCR. Set this to the language most of your
# documents are written in.
#PAPERLESS_OCR_LANGUAGE=eng
# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx
#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX
#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required

View File

@@ -1,4 +1,4 @@
# docker-compose file for running paperless from the docker container registry.
# docker-compose file for running paperless from the Docker Hub.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware.
#
@@ -10,14 +10,10 @@
# as this file and mounted to the correct folders inside the container.
# - Paperless listens on port 8000.
#
# SQLite is used as the database. The SQLite file is stored in the data volume.
#
# iwishiwasaneagle/apache-tika-arm docker image is used to enable arm64 arch
# which apache/tika does not currently support.
#
# In addition to that, this docker-compose file adds the following optional
# configurations:
#
# - Instead of SQLite (default), MariaDB is used as the database server.
# - Apache Tika and Gotenberg servers are started with paperless and paperless
# is configured to use these services. These provide support for consuming
# Office documents (Word, Excel, Power Point and their LibreOffice counter-
@@ -37,15 +33,28 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/mariadb:10
restart: unless-stopped
volumes:
- dbdata:/var/lib/mysql
environment:
MARIADB_HOST: paperless
MARIADB_DATABASE: paperless
MARIADB_USER: paperless
MARIADB_PASSWORD: paperless
MARIADB_ROOT_PASSWORD: paperless
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
- gotenberg
- tika
@@ -64,21 +73,31 @@ services:
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBENGINE: mariadb
PAPERLESS_DBHOST: db
PAPERLESS_DBUSER: paperless # only needed if non-default username
PAPERLESS_DBPASS: paperless # only needed if non-default password
PAPERLESS_DBPORT: 3306
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: thecodingmachine/gotenberg
image: docker.io/gotenberg/gotenberg:7.6
restart: unless-stopped
environment:
DISABLE_GOOGLE_CHROME: 1
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: iwishiwasaneagle/apache-tika-arm@sha256:a78c25ffe57ecb1a194b2859d42a61af46e9e845191512b8f1a4bf90578ffdfd
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
volumes:
data:
media:
dbdata:
redisdata:

View File

@@ -0,0 +1,81 @@
# docker-compose file for running paperless from the Docker Hub.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware.
#
# All compose files of paperless configure paperless in the following way:
#
# - Paperless is (re)started on system boot, if it was running before shutdown.
# - Docker volumes for storing data are managed by Docker.
# - Folders for importing and exporting files are created in the same directory
# as this file and mounted to the correct folders inside the container.
# - Paperless listens on port 8000.
#
# In addition to that, this docker-compose file adds the following optional
# configurations:
#
# - Instead of SQLite (default), MariaDB is used as the database server.
#
# To install and update paperless with this file, do the following:
#
# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env'
# and '.env' into a folder.
# - Run 'docker-compose pull'.
# - Run 'docker-compose run --rm webserver createsuperuser' to create a user.
# - Run 'docker-compose up -d'.
#
# For more extensive installation and update instructions, refer to the
# documentation.
version: "3.4"
services:
broker:
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: docker.io/library/mariadb:10
restart: unless-stopped
volumes:
- dbdata:/var/lib/mysql
environment:
MARIADB_HOST: paperless
MARIADB_DATABASE: paperless
MARIADB_USER: paperless
MARIADB_PASSWORD: paperless
MARIADB_ROOT_PASSWORD: paperless
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: unless-stopped
depends_on:
- db
- broker
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./export:/usr/src/paperless/export
- ./consume:/usr/src/paperless/consume
env_file: docker-compose.env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBENGINE: mariadb
PAPERLESS_DBHOST: db
PAPERLESS_DBUSER: paperless # only needed if non-default username
PAPERLESS_DBPASS: paperless # only needed if non-default password
PAPERLESS_DBPORT: 3306
volumes:
data:
media:
dbdata:
redisdata:

View File

@@ -31,13 +31,13 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: postgres:13
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
@@ -55,7 +55,7 @@ services:
ports:
- 8010:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5

View File

@@ -1,7 +1,6 @@
# docker-compose file for running paperless from the docker container registry.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware. The apache/tika image
# does not support arm or arm64, however.
# Paperless supports amd64, arm and arm64 hardware.
#
# All compose files of paperless configure paperless in the following way:
#
@@ -34,13 +33,13 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: postgres:13
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
@@ -60,7 +59,7 @@ services:
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
@@ -78,14 +77,18 @@ services:
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: gotenberg/gotenberg:7
image: docker.io/gotenberg/gotenberg:7.6
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-routes=true"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: apache/tika
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
volumes:

View File

@@ -29,13 +29,13 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
db:
image: postgres:13
image: docker.io/library/postgres:13
restart: unless-stopped
volumes:
- pgdata:/var/lib/postgresql/data
@@ -53,7 +53,7 @@ services:
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5

View File

@@ -1,8 +1,6 @@
# docker-compose file for running paperless from the docker container registry.
# This file contains everything paperless needs to run.
# Paperless supports amd64, arm and arm64 hardware. The apache/tika image
# does not support arm or arm64, however.
#
# Paperless supports amd64, arm and arm64 hardware.
# All compose files of paperless configure paperless in the following way:
#
# - Paperless is (re)started on system boot, if it was running before shutdown.
@@ -35,7 +33,7 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
@@ -50,7 +48,7 @@ services:
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
@@ -67,14 +65,18 @@ services:
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: gotenberg/gotenberg:7
image: docker.io/gotenberg/gotenberg:7.6
restart: unless-stopped
# The gotenberg chromium route is used to convert .eml files. We do not
# want to allow external content like tracking pixels or even javascript.
command:
- "gotenberg"
- "--chromium-disable-routes=true"
- "--chromium-disable-javascript=true"
- "--chromium-allow-list=file:///tmp/.*"
tika:
image: apache/tika
image: ghcr.io/paperless-ngx/tika:latest
restart: unless-stopped
volumes:

View File

@@ -26,7 +26,7 @@
version: "3.4"
services:
broker:
image: redis:6.0
image: docker.io/library/redis:7
restart: unless-stopped
volumes:
- redisdata:/data
@@ -39,7 +39,7 @@ services:
ports:
- 8000:8000
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000"]
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5

View File

@@ -2,46 +2,160 @@
set -e
# Adapted from:
# https://github.com/docker-library/postgres/blob/master/docker-entrypoint.sh
# usage: file_env VAR
# ie: file_env 'XYZ_DB_PASSWORD' will allow for "$XYZ_DB_PASSWORD_FILE" to
# fill in the value of "$XYZ_DB_PASSWORD" from a file, especially for Docker's
# secrets feature
file_env() {
local -r var="$1"
local -r fileVar="${var}_FILE"
# Basic validation
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
exit 1
fi
# Only export var if the _FILE exists
if [ "${!fileVar:-}" ]; then
# And the file exists
if [[ -f ${!fileVar} ]]; then
echo "Setting ${var} from file"
val="$(< "${!fileVar}")"
export "$var"="$val"
else
echo "File ${!fileVar} doesn't exist"
exit 1
fi
fi
}
# Source: https://github.com/sameersbn/docker-gitlab/
map_uidgid() {
USERMAP_ORIG_UID=$(id -u paperless)
USERMAP_ORIG_GID=$(id -g paperless)
USERMAP_NEW_UID=${USERMAP_UID:-$USERMAP_ORIG_UID}
USERMAP_NEW_GID=${USERMAP_GID:-${USERMAP_ORIG_GID:-$USERMAP_NEW_UID}}
if [[ ${USERMAP_NEW_UID} != "${USERMAP_ORIG_UID}" || ${USERMAP_NEW_GID} != "${USERMAP_ORIG_GID}" ]]; then
echo "Mapping UID and GID for paperless:paperless to $USERMAP_NEW_UID:$USERMAP_NEW_GID"
usermod -o -u "${USERMAP_NEW_UID}" paperless
groupmod -o -g "${USERMAP_NEW_GID}" paperless
local -r usermap_original_uid=$(id -u paperless)
local -r usermap_original_gid=$(id -g paperless)
local -r usermap_new_uid=${USERMAP_UID:-$usermap_original_uid}
local -r usermap_new_gid=${USERMAP_GID:-${usermap_original_gid:-$usermap_new_uid}}
if [[ ${usermap_new_uid} != "${usermap_original_uid}" || ${usermap_new_gid} != "${usermap_original_gid}" ]]; then
echo "Mapping UID and GID for paperless:paperless to $usermap_new_uid:$usermap_new_gid"
usermod -o -u "${usermap_new_uid}" paperless
groupmod -o -g "${usermap_new_gid}" paperless
fi
}
map_folders() {
# Export these so they can be used in docker-prepare.sh
export DATA_DIR="${PAPERLESS_DATA_DIR:-/usr/src/paperless/data}"
export MEDIA_ROOT_DIR="${PAPERLESS_MEDIA_ROOT:-/usr/src/paperless/media}"
export CONSUME_DIR="${PAPERLESS_CONSUMPTION_DIR:-/usr/src/paperless/consume}"
}
custom_container_init() {
# Mostly borrowed from the LinuxServer.io base image
# https://github.com/linuxserver/docker-baseimage-ubuntu/tree/bionic/root/etc/cont-init.d
local -r custom_script_dir="/custom-cont-init.d"
# Tamper checking.
# Don't run files which are owned by anyone except root
# Don't run files which are writeable by others
if [ -d "${custom_script_dir}" ]; then
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 ! -user root)" ]; then
echo "**** Potential tampering with custom scripts detected ****"
echo "**** The folder '${custom_script_dir}' must be owned by root ****"
return 0
fi
if [ -n "$(/usr/bin/find "${custom_script_dir}" -maxdepth 1 -perm -o+w)" ]; then
echo "**** The folder '${custom_script_dir}' or some of contents have write permissions for others, which is a security risk. ****"
echo "**** Please review the permissions and their contents to make sure they are owned by root, and can only be modified by root. ****"
return 0
fi
# Make sure custom init directory has files in it
if [ -n "$(/bin/ls -A "${custom_script_dir}" 2>/dev/null)" ]; then
echo "[custom-init] files found in ${custom_script_dir} executing"
# Loop over files in the directory
for SCRIPT in "${custom_script_dir}"/*; do
NAME="$(basename "${SCRIPT}")"
if [ -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: executing..."
/bin/bash "${SCRIPT}"
echo "[custom-init] ${NAME}: exited $?"
elif [ ! -f "${SCRIPT}" ]; then
echo "[custom-init] ${NAME}: is not a file"
fi
done
else
echo "[custom-init] no custom files found exiting..."
fi
fi
}
initialize() {
# Setup environment from secrets before anything else
for env_var in \
PAPERLESS_DBUSER \
PAPERLESS_DBPASS \
PAPERLESS_SECRET_KEY \
PAPERLESS_AUTO_LOGIN_USERNAME \
PAPERLESS_ADMIN_USER \
PAPERLESS_ADMIN_MAIL \
PAPERLESS_ADMIN_PASSWORD \
PAPERLESS_REDIS; do
# Check for a version of this var with _FILE appended
# and convert the contents to the env var value
file_env ${env_var}
done
# Change the user and group IDs if needed
map_uidgid
for dir in export data data/index media media/documents media/documents/originals media/documents/thumbnails; do
if [[ ! -d "../$dir" ]]; then
echo "Creating directory ../$dir"
mkdir ../$dir
# Check for overrides of certain folders
map_folders
local -r export_dir="/usr/src/paperless/export"
for dir in \
"${export_dir}" \
"${DATA_DIR}" "${DATA_DIR}/index" \
"${MEDIA_ROOT_DIR}" "${MEDIA_ROOT_DIR}/documents" "${MEDIA_ROOT_DIR}/documents/originals" "${MEDIA_ROOT_DIR}/documents/thumbnails" \
"${CONSUME_DIR}"; do
if [[ ! -d "${dir}" ]]; then
echo "Creating directory ${dir}"
mkdir "${dir}"
fi
done
echo "Creating directory /tmp/paperless"
mkdir -p /tmp/paperless
local -r tmp_dir="/tmp/paperless"
echo "Creating directory ${tmp_dir}"
mkdir -p "${tmp_dir}"
set +e
echo "Adjusting permissions of paperless files. This may take a while."
chown -R paperless:paperless /tmp/paperless
find .. -not \( -user paperless -and -group paperless \) -exec chown paperless:paperless {} +
chown -R paperless:paperless ${tmp_dir}
for dir in \
"${export_dir}" \
"${DATA_DIR}" \
"${MEDIA_ROOT_DIR}" \
"${CONSUME_DIR}"; do
find "${dir}" -not \( -user paperless -and -group paperless \) -exec chown paperless:paperless {} +
done
set -e
gosu paperless /sbin/docker-prepare.sh
"${gosu_cmd[@]}" /sbin/docker-prepare.sh
# Leave this last thing
custom_container_init
}
install_languages() {
echo "Installing languages..."
local langs="$1"
read -ra langs <<<"$langs"
read -ra langs <<<"$1"
# Check that it is not empty
if [ ${#langs[@]} -eq 0 ]; then
@@ -51,10 +165,6 @@ install_languages() {
for lang in "${langs[@]}"; do
pkg="tesseract-ocr-$lang"
# English is installed by default
#if [[ "$lang" == "eng" ]]; then
# continue
#fi
if dpkg -s "$pkg" &>/dev/null; then
echo "Package $pkg already installed!"
@@ -76,6 +186,11 @@ install_languages() {
echo "Paperless-ngx docker container starting..."
gosu_cmd=(gosu paperless)
if [ "$(id -u)" == "$(id -u paperless)" ]; then
gosu_cmd=()
fi
# Install additional languages if specified
if [[ -n "$PAPERLESS_OCR_LANGUAGES" ]]; then
install_languages "$PAPERLESS_OCR_LANGUAGES"
@@ -85,7 +200,7 @@ initialize
if [[ "$1" != "/"* ]]; then
echo Executing management command "$@"
exec gosu paperless python3 manage.py "$@"
exec "${gosu_cmd[@]}" python3 manage.py "$@"
else
echo Executing "$@"
exec "$@"

View File

@@ -1,16 +1,44 @@
#!/usr/bin/env bash
set -e
wait_for_postgres() {
attempt_num=1
max_attempts=5
local attempt_num=1
local -r max_attempts=5
echo "Waiting for PostgreSQL to start..."
host="${PAPERLESS_DBHOST:=localhost}"
port="${PAPERLESS_DBPORT:=5342}"
local -r host="${PAPERLESS_DBHOST:-localhost}"
local -r port="${PAPERLESS_DBPORT:-5432}"
# Disable warning, host and port can't have spaces
# shellcheck disable=SC2086
while [ ! "$(pg_isready -h ${host} -p ${port})" ]; do
while [ ! "$(pg_isready -h $host -p $port)" ]; do
if [ $attempt_num -eq $max_attempts ]; then
echo "Unable to connect to database."
exit 1
else
echo "Attempt $attempt_num failed! Trying again in 5 seconds..."
fi
attempt_num=$(("$attempt_num" + 1))
sleep 5
done
}
wait_for_mariadb() {
echo "Waiting for MariaDB to start..."
local -r host="${PAPERLESS_DBHOST:=localhost}"
local -r port="${PAPERLESS_DBPORT:=3306}"
local attempt_num=1
local -r max_attempts=5
# Disable warning, host and port can't have spaces
# shellcheck disable=SC2086
while ! true > /dev/tcp/$host/$port; do
if [ $attempt_num -eq $max_attempts ]; then
echo "Unable to connect to database."
@@ -25,6 +53,14 @@ wait_for_postgres() {
done
}
wait_for_redis() {
# We use a Python script to send the Redis ping
# instead of installing redis-tools just for 1 thing
if ! python3 /sbin/wait-for-redis.py; then
exit 1
fi
}
migrations() {
(
# flock is in place to prevent multiple containers from doing migrations
@@ -32,18 +68,25 @@ migrations() {
# of the current container starts.
flock 200
echo "Apply database migrations..."
python3 manage.py migrate
) 200>/usr/src/paperless/data/migration_lock
python3 manage.py migrate --skip-checks --no-input
) 200>"${DATA_DIR}/migration_lock"
}
django_checks() {
# Explicitly run the Django system checks
echo "Running Django checks"
python3 manage.py check
}
search_index() {
index_version=1
index_version_file=/usr/src/paperless/data/.index_version
if [[ (! -f "$index_version_file") || $(<$index_version_file) != "$index_version" ]]; then
local -r index_version=1
local -r index_version_file=${DATA_DIR}/.index_version
if [[ (! -f "${index_version_file}") || $(<"${index_version_file}") != "$index_version" ]]; then
echo "Search index out of date. Updating..."
python3 manage.py document_index reindex
echo $index_version | tee $index_version_file >/dev/null
python3 manage.py document_index reindex --no-progress-bar
echo ${index_version} | tee "${index_version_file}" >/dev/null
fi
}
@@ -54,12 +97,18 @@ superuser() {
}
do_work() {
if [[ -n "${PAPERLESS_DBHOST}" ]]; then
if [[ "${PAPERLESS_DBENGINE}" == "mariadb" ]]; then
wait_for_mariadb
elif [[ -n "${PAPERLESS_DBHOST}" ]]; then
wait_for_postgres
fi
wait_for_redis
migrations
django_checks
search_index
superuser

View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
echo "Checking if we should start flower..."
if [[ -n "${PAPERLESS_ENABLE_FLOWER}" ]]; then
celery --app paperless flower
fi

View File

@@ -1,6 +1,19 @@
#!/usr/bin/env bash
for command in document_archiver document_exporter document_importer mail_fetcher document_create_classifier document_index document_renamer document_retagger document_thumbnails document_sanity_checker manage_superuser;
set -eu
for command in decrypt_documents \
document_archiver \
document_exporter \
document_importer \
mail_fetcher \
document_create_classifier \
document_index \
document_renamer \
document_retagger \
document_thumbnails \
document_sanity_checker \
manage_superuser;
do
echo "installing $command..."
sed "s/management_command/$command/g" management_script.sh > /usr/local/bin/$command

15
docker/paperless_cmd.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
rootless_args=()
if [ "$(id -u)" == "$(id -u paperless)" ]; then
rootless_args=(
--user
paperless
--logfile
supervisord.log
--pidfile
supervisord.pid
)
fi
exec /usr/local/bin/supervisord -c /etc/supervisord.conf "${rootless_args[@]}"

View File

@@ -10,7 +10,7 @@ user=root
[program:gunicorn]
command=gunicorn -c /usr/src/paperless/gunicorn.conf.py paperless.asgi:application
user=paperless
priority = 1
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
@@ -19,16 +19,41 @@ stderr_logfile_maxbytes=0
[program:consumer]
command=python3 manage.py document_consumer
user=paperless
stopsignal=INT
priority = 20
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:scheduler]
command=python3 manage.py qcluster
[program:celery]
command = celery --app paperless worker --loglevel INFO
user=paperless
stopasgroup = true
stopwaitsecs = 60
priority = 5
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:celery-beat]
command = celery --app paperless beat --loglevel INFO
user=paperless
stopasgroup = true
priority = 10
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
[program:celery-flower]
command = /usr/local/bin/flower-conditional.sh
user = paperless
startsecs = 0
priority = 40
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr

44
docker/wait-for-redis.py Executable file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env python3
"""
Simple script which attempts to ping the Redis broker as set in the environment for
a certain number of times, waiting a little bit in between
"""
import os
import sys
import time
from typing import Final
from redis import Redis
if __name__ == "__main__":
MAX_RETRY_COUNT: Final[int] = 5
RETRY_SLEEP_SECONDS: Final[int] = 5
REDIS_URL: Final[str] = os.getenv("PAPERLESS_REDIS", "redis://localhost:6379")
print(f"Waiting for Redis...", flush=True)
attempt = 0
with Redis.from_url(url=REDIS_URL) as client:
while attempt < MAX_RETRY_COUNT:
try:
client.ping()
break
except Exception as e:
print(
f"Redis ping #{attempt} failed.\n"
f"Error: {str(e)}.\n"
f"Waiting {RETRY_SLEEP_SECONDS}s",
flush=True,
)
time.sleep(RETRY_SLEEP_SECONDS)
attempt += 1
if attempt >= MAX_RETRY_COUNT:
print(f"Failed to connect to redis using environment variable PAPERLESS_REDIS.")
sys.exit(os.EX_UNAVAILABLE)
else:
print(f"Connected to Redis broker.")
sys.exit(os.EX_OK)

View File

@@ -1,17 +0,0 @@
FROM python:3.5.1
# Install Sphinx and Pygments
RUN pip install Sphinx Pygments
# Setup directories, copy data
RUN mkdir /build
COPY . /build
WORKDIR /build/docs
# Build documentation
RUN make html
# Start webserver
WORKDIR /build/docs/_build/html
EXPOSE 8000/tcp
CMD ["python3", "-m", "http.server"]

View File

@@ -1,177 +0,0 @@
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/RIPEAtlasToolsMagellan.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/RIPEAtlasToolsMagellan.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/RIPEAtlasToolsMagellan"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/RIPEAtlasToolsMagellan"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make' in that directory to run these through (pdf)latex" \
"(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo
@echo "The overview file is in $(BUILDDIR)/changes."
linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo
@echo "Link check complete; look for any errors in the above output " \
"or in $(BUILDDIR)/linkcheck/output.txt."
doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

View File

@@ -1,14 +0,0 @@
/* override table width restrictions */
@media screen and (min-width: 767px) {
.wy-table-responsive table td {
/* !important prevents the common CSS stylesheets from
overriding this as on RTD they are loaded after this stylesheet */
white-space: normal !important;
}
.wy-table-responsive {
overflow: visible !important;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 445 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

504
docs/administration.md Normal file
View File

@@ -0,0 +1,504 @@
# Administration
## Making backups {#backup}
Multiple options exist for making backups of your paperless instance,
depending on how you installed paperless.
Before making backups, make sure that paperless is not running.
Options available to any installation of paperless:
- Use the [document exporter](#exporter). The document exporter exports all your documents,
thumbnails and metadata to a specific folder. You may import your
documents into a fresh instance of paperless again or store your
documents in another DMS with this export.
- The document exporter is also able to update an already existing
export. Therefore, incremental backups with `rsync` are entirely
possible.
!!! caution
You cannot import the export generated with one version of paperless in
a different version of paperless. The export contains an exact image of
the database, and migrations may change the database layout.
Options available to docker installations:
- Backup the docker volumes. These usually reside within
`/var/lib/docker/volumes` on the host and you need to be root in
order to access them.
Paperless uses 4 volumes:
- `paperless_media`: This is where your documents are stored.
- `paperless_data`: This is where auxillary data is stored. This
folder also contains the SQLite database, if you use it.
- `paperless_pgdata`: Exists only if you use PostgreSQL and
contains the database.
- `paperless_dbdata`: Exists only if you use MariaDB and contains
the database.
Options available to bare-metal and non-docker installations:
- Backup the entire paperless folder. This ensures that if your
paperless instance crashes at some point or your disk fails, you can
simply copy the folder back into place and it works.
When using PostgreSQL or MariaDB, you'll also have to backup the
database.
### Restoring {#migrating-restoring}
## Updating Paperless {#updating}
### Docker Route {#docker-updating}
If a new release of paperless-ngx is available, upgrading depends on how
you installed paperless-ngx in the first place. The releases are
available at the [release
page](https://github.com/paperless-ngx/paperless-ngx/releases).
First of all, ensure that paperless is stopped.
```shell-session
$ cd /path/to/paperless
$ docker-compose down
```
After that, [make a backup](#backup).
1. If you pull the image from the docker hub, all you need to do is:
```shell-session
$ docker-compose pull
$ docker-compose up
```
The docker-compose files refer to the `latest` version, which is
always the latest stable release.
2. If you built the image yourself, do the following:
```shell-session
$ git pull
$ docker-compose build
$ docker-compose up
```
Running `docker-compose up` will also apply any new database migrations.
If you see everything working, press CTRL+C once to gracefully stop
paperless. Then you can start paperless-ngx with `-d` to have it run in
the background.
!!! note
In version 0.9.14, the update process was changed. In 0.9.13 and
earlier, the docker-compose files specified exact versions and pull
won't automatically update to newer versions. In order to enable
updates as described above, either get the new `docker-compose.yml`
file from
[here](https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose)
or edit the `docker-compose.yml` file, find the line that says
```
image: ghcr.io/paperless-ngx/paperless-ngx:0.9.x
```
and replace the version with `latest`:
```
image: ghcr.io/paperless-ngx/paperless-ngx:latest
```
!!! note
In version 1.7.1 and onwards, the Docker image can now be pinned to a
release series. This is often combined with automatic updaters such as
Watchtower to allow safer unattended upgrading to new bugfix releases
only. It is still recommended to always review release notes before
upgrading. To pin your install to a release series, edit the
`docker-compose.yml` find the line that says
```
image: ghcr.io/paperless-ngx/paperless-ngx:latest
```
and replace the version with the series you want to track, for
example:
```
image: ghcr.io/paperless-ngx/paperless-ngx:1.7
```
### Bare Metal Route {#bare-metal-updating}
After grabbing the new release and unpacking the contents, do the
following:
1. Update dependencies. New paperless version may require additional
dependencies. The dependencies required are listed in the section
about
[bare metal installations](/setup#bare_metal).
2. Update python requirements. Keep in mind to activate your virtual
environment before that, if you use one.
```shell-session
$ pip install -r requirements.txt
```
3. Migrate the database.
```shell-session
$ cd src
$ python3 manage.py migrate
```
This might not actually do anything. Not every new paperless version
comes with new database migrations.
## Downgrading Paperless {#downgrade-paperless}
Downgrades are possible. However, some updates also contain database
migrations (these change the layout of the database and may move data).
In order to move back from a version that applied database migrations,
you'll have to revert the database migration _before_ downgrading, and
then downgrade paperless.
This table lists the compatible versions for each database migration
number.
| Migration number | Version range |
| ---------------- | --------------- |
| 1011 | 1.0.0 |
| 1012 | 1.1.0 - 1.2.1 |
| 1014 | 1.3.0 - 1.3.1 |
| 1016 | 1.3.2 - current |
Execute the following management command to migrate your database:
```shell-session
$ python3 manage.py migrate documents <migration number>
```
!!! note
Some migrations cannot be undone. The command will issue errors if that
happens.
## Management utilities {#management-commands}
Paperless comes with some management commands that perform various
maintenance tasks on your paperless instance. You can invoke these
commands in the following way:
With docker-compose, while paperless is running:
```shell-session
$ cd /path/to/paperless
$ docker-compose exec webserver <command> <arguments>
```
With docker, while paperless is running:
```shell-session
$ docker exec -it <container-name> <command> <arguments>
```
Bare metal:
```shell-session
$ cd /path/to/paperless/src
$ python3 manage.py <command> <arguments>
```
All commands have built-in help, which can be accessed by executing them
with the argument `--help`.
### Document exporter {#exporter}
The document exporter exports all your data from paperless into a folder
for backup or migration to another DMS.
If you use the document exporter within a cronjob to backup your data
you might use the `-T` flag behind exec to suppress "The input device
is not a TTY" errors. For example:
`docker-compose exec -T webserver document_exporter ../export`
```
document_exporter target [-c] [-f] [-d]
optional arguments:
-c, --compare-checksums
-f, --use-filename-format
-d, --delete
-z --zip
```
`target` is a folder to which the data gets written. This includes
documents, thumbnails and a `manifest.json` file. The manifest contains
all metadata from the database (correspondents, tags, etc).
When you use the provided docker compose script, specify `../export` as
the target. This path inside the container is automatically mounted on
your host on the folder `export`.
If the target directory already exists and contains files, paperless
will assume that the contents of the export directory are a previous
export and will attempt to update the previous export. Paperless will
only export changed and added files. Paperless determines whether a file
has changed by inspecting the file attributes "date/time modified" and
"size". If that does not work out for you, specify
`--compare-checksums` and paperless will attempt to compare file
checksums instead. This is slower.
Paperless will not remove any existing files in the export directory. If
you want paperless to also remove files that do not belong to the
current export such as files from deleted documents, specify `--delete`.
Be careful when pointing paperless to a directory that already contains
other files.
If `-z` or `--zip` is provided, the export will be a zipfile
in the target directory, named according to the current date.
The filenames generated by this command follow the format
`[date created] [correspondent] [title].[extension]`. If you want
paperless to use `PAPERLESS_FILENAME_FORMAT` for exported filenames
instead, specify `--use-filename-format`.
### Document importer {#importer}
The document importer takes the export produced by the [Document
exporter](#exporter) and imports it into paperless.
The importer works just like the exporter. You point it at a directory,
and the script does the rest of the work:
```
document_importer source
```
When you use the provided docker compose script, put the export inside
the `export` folder in your paperless source directory. Specify
`../export` as the `source`.
!!! note
Importing from a previous version of Paperless may work, but for best
results it is suggested to match the versions.
### Document retagger {#retagger}
Say you've imported a few hundred documents and now want to introduce a
tag or set up a new correspondent, and apply its matching to all of the
currently-imported docs. This problem is common enough that there are
tools for it.
```
document_retagger [-h] [-c] [-T] [-t] [-i] [--use-first] [-f]
optional arguments:
-c, --correspondent
-T, --tags
-t, --document_type
-s, --storage_path
-i, --inbox-only
--use-first
-f, --overwrite
```
Run this after changing or adding matching rules. It'll loop over all
of the documents in your database and attempt to match documents
according to the new rules.
Specify any combination of `-c`, `-T`, `-t` and `-s` to have the
retagger perform matching of the specified metadata type. If you don't
specify any of these options, the document retagger won't do anything.
Specify `-i` to have the document retagger work on documents tagged with
inbox tags only. This is useful when you don't want to mess with your
already processed documents.
When multiple document types or correspondents match a single document,
the retagger won't assign these to the document. Specify `--use-first`
to override this behavior and just use the first correspondent or type
it finds. This option does not apply to tags, since any amount of tags
can be applied to a document.
Finally, `-f` specifies that you wish to overwrite already assigned
correspondents, types and/or tags. The default behavior is to not assign
correspondents and types to documents that have this data already
assigned. `-f` works differently for tags: By default, only additional
tags get added to documents, no tags will be removed. With `-f`, tags
that don't match a document anymore get removed as well.
### Managing the Automatic matching algorithm
The _Auto_ matching algorithm requires a trained neural network to work.
This network needs to be updated whenever somethings in your data
changes. The docker image takes care of that automatically with the task
scheduler. You can manually renew the classifier by invoking the
following management command:
```
document_create_classifier
```
This command takes no arguments.
### Managing the document search index {#index}
The document search index is responsible for delivering search results
for the website. The document index is automatically updated whenever
documents get added to, changed, or removed from paperless. However, if
the search yields non-existing documents or won't find anything, you
may need to recreate the index manually.
```
document_index {reindex,optimize}
```
Specify `reindex` to have the index created from scratch. This may take
some time.
Specify `optimize` to optimize the index. This updates certain aspects
of the index and usually makes queries faster and also ensures that the
autocompletion works properly. This command is regularly invoked by the
task scheduler.
### Managing filenames {#renamer}
If you use paperless' feature to
[assign custom filenames to your documents](/advanced_usage#file-name-handling), you can use this command to move all your files after
changing the naming scheme.
!!! warning
Since this command moves your documents, it is advised to do a backup
beforehand. The renaming logic is robust and will never overwrite or
delete a file, but you can't ever be careful enough.
```
document_renamer
```
The command takes no arguments and processes all your documents at once.
Learn how to use
[Management Utilities](#management-commands).
### Sanity checker {#sanity-checker}
Paperless has a built-in sanity checker that inspects your document
collection for issues.
The issues detected by the sanity checker are as follows:
- Missing original files.
- Missing archive files.
- Inaccessible original files due to improper permissions.
- Inaccessible archive files due to improper permissions.
- Corrupted original documents by comparing their checksum against
what is stored in the database.
- Corrupted archive documents by comparing their checksum against what
is stored in the database.
- Missing thumbnails.
- Inaccessible thumbnails due to improper permissions.
- Documents without any content (warning).
- Orphaned files in the media directory (warning). These are files
that are not referenced by any document im paperless.
```
document_sanity_checker
```
The command takes no arguments. Depending on the size of your document
archive, this may take some time.
### Fetching e-mail
Paperless automatically fetches your e-mail every 10 minutes by default.
If you want to invoke the email consumer manually, call the following
management command:
```
mail_fetcher
```
The command takes no arguments and processes all your mail accounts and
rules.
!!! note
As of October 2022 Microsoft no longer supports IMAP authentication
for Exchange servers, thus Exchange is no longer supported until a
solution is implemented in the Python IMAP library used by Paperless.
See [learn.microsoft.com](https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online)
### Creating archived documents {#archiver}
Paperless stores archived PDF/A documents alongside your original
documents. These archived documents will also contain selectable text
for image-only originals. These documents are derived from the
originals, which are always stored unmodified. If coming from an earlier
version of paperless, your documents won't have archived versions.
This command creates PDF/A documents for your documents.
```
document_archiver --overwrite --document <id>
```
This command will only attempt to create archived documents when no
archived document exists yet, unless `--overwrite` is specified. If
`--document <id>` is specified, the archiver will only process that
document.
!!! note
This command essentially performs OCR on all your documents again,
according to your settings. If you run this with
`PAPERLESS_OCR_MODE=redo`, it will potentially run for a very long time.
You can cancel the command at any time, since this command will skip
already archived versions the next time it is run.
!!! note
Some documents will cause errors and cannot be converted into PDF/A
documents, such as encrypted PDF documents. The archiver will skip over
these documents each time it sees them.
### Managing encryption {#encryption}
Documents can be stored in Paperless using GnuPG encryption.
!!! warning
Encryption is deprecated since [paperless-ng 0.9](/changelog#paperless-ng-090) and doesn't really
provide any additional security, since you have to store the passphrase
in a configuration file on the same system as the encrypted documents
for paperless to work. Furthermore, the entire text content of the
documents is stored plain in the database, even if your documents are
encrypted. Filenames are not encrypted as well.
Also, the web server provides transparent access to your encrypted
documents.
Consider running paperless on an encrypted filesystem instead, which
will then at least provide security against physical hardware theft.
#### Enabling encryption
Enabling encryption is no longer supported.
#### Disabling encryption
Basic usage to disable encryption of your document store:
(Note: If `PAPERLESS_PASSPHRASE` isn't set already, you need to specify
it here)
```
decrypt_documents [--passphrase SECR3TP4SSPHRA$E]
```

View File

@@ -1,499 +0,0 @@
**************
Administration
**************
.. _administration-backup:
Making backups
##############
Multiple options exist for making backups of your paperless instance,
depending on how you installed paperless.
Before making backups, make sure that paperless is not running.
Options available to any installation of paperless:
* Use the :ref:`document exporter <utilities-exporter>`.
The document exporter exports all your documents, thumbnails and
metadata to a specific folder. You may import your documents into a
fresh instance of paperless again or store your documents in another
DMS with this export.
* The document exporter is also able to update an already existing export.
Therefore, incremental backups with ``rsync`` are entirely possible.
.. caution::
You cannot import the export generated with one version of paperless in a
different version of paperless. The export contains an exact image of the
database, and migrations may change the database layout.
Options available to docker installations:
* Backup the docker volumes. These usually reside within
``/var/lib/docker/volumes`` on the host and you need to be root in order
to access them.
Paperless uses 3 volumes:
* ``paperless_media``: This is where your documents are stored.
* ``paperless_data``: This is where auxillary data is stored. This
folder also contains the SQLite database, if you use it.
* ``paperless_pgdata``: Exists only if you use PostgreSQL and contains
the database.
Options available to bare-metal and non-docker installations:
* Backup the entire paperless folder. This ensures that if your paperless instance
crashes at some point or your disk fails, you can simply copy the folder back
into place and it works.
When using PostgreSQL, you'll also have to backup the database.
.. _migrating-restoring:
Restoring
=========
.. _administration-updating:
Updating Paperless
##################
Docker Route
============
If a new release of paperless-ngx is available, upgrading depends on how you
installed paperless-ngx in the first place. The releases are available at the
`release page <https://github.com/paperless-ngx/paperless-ngx/releases>`_.
First of all, ensure that paperless is stopped.
.. code:: shell-session
$ cd /path/to/paperless
$ docker-compose down
After that, :ref:`make a backup <administration-backup>`.
A. If you pull the image from the docker hub, all you need to do is:
.. code:: shell-session
$ docker-compose pull
$ docker-compose up
The docker-compose files refer to the ``latest`` version, which is always the latest
stable release.
B. If you built the image yourself, do the following:
.. code:: shell-session
$ git pull
$ docker-compose build
$ docker-compose up
Running ``docker-compose up`` will also apply any new database migrations.
If you see everything working, press CTRL+C once to gracefully stop paperless.
Then you can start paperless-ngx with ``-d`` to have it run in the background.
.. note::
In version 0.9.14, the update process was changed. In 0.9.13 and earlier, the
docker-compose files specified exact versions and pull won't automatically
update to newer versions. In order to enable updates as described above, either
get the new ``docker-compose.yml`` file from `here <https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose>`_
or edit the ``docker-compose.yml`` file, find the line that says
.. code::
image: ghcr.io/paperless-ngx/paperless-ngx:0.9.x
and replace the version with ``latest``:
.. code::
image: ghcr.io/paperless-ngx/paperless-ngx:latest
Bare Metal Route
================
After grabbing the new release and unpacking the contents, do the following:
1. Update dependencies. New paperless version may require additional
dependencies. The dependencies required are listed in the section about
:ref:`bare metal installations <setup-bare_metal>`.
2. Update python requirements. Keep in mind to activate your virtual environment
before that, if you use one.
.. code:: shell-session
$ pip install -r requirements.txt
3. Migrate the database.
.. code:: shell-session
$ cd src
$ python3 manage.py migrate
This might not actually do anything. Not every new paperless version comes with new
database migrations.
Downgrading Paperless
#####################
Downgrades are possible. However, some updates also contain database migrations (these change the layout of the database and may move data).
In order to move back from a version that applied database migrations, you'll have to revert the database migration *before* downgrading,
and then downgrade paperless.
This table lists the compatible versions for each database migration number.
+------------------+-----------------+
| Migration number | Version range |
+------------------+-----------------+
| 1011 | 1.0.0 |
+------------------+-----------------+
| 1012 | 1.1.0 - 1.2.1 |
+------------------+-----------------+
| 1014 | 1.3.0 - 1.3.1 |
+------------------+-----------------+
| 1016 | 1.3.2 - current |
+------------------+-----------------+
Execute the following management command to migrate your database:
.. code:: shell-session
$ python3 manage.py migrate documents <migration number>
.. note::
Some migrations cannot be undone. The command will issue errors if that happens.
.. _utilities-management-commands:
Management utilities
####################
Paperless comes with some management commands that perform various maintenance
tasks on your paperless instance. You can invoke these commands in the following way:
With docker-compose, while paperless is running:
.. code:: shell-session
$ cd /path/to/paperless
$ docker-compose exec webserver <command> <arguments>
With docker, while paperless is running:
.. code:: shell-session
$ docker exec -it <container-name> <command> <arguments>
Bare metal:
.. code:: shell-session
$ cd /path/to/paperless/src
$ python3 manage.py <command> <arguments>
All commands have built-in help, which can be accessed by executing them with
the argument ``--help``.
.. _utilities-exporter:
Document exporter
=================
The document exporter exports all your data from paperless into a folder for
backup or migration to another DMS.
If you use the document exporter within a cronjob to backup your data you might use the ``-T`` flag behind exec to suppress "The input device is not a TTY" errors. For example: ``docker-compose exec -T webserver document_exporter ../export``
.. code::
document_exporter target [-c] [-f] [-d]
optional arguments:
-c, --compare-checksums
-f, --use-filename-format
-d, --delete
``target`` is a folder to which the data gets written. This includes documents,
thumbnails and a ``manifest.json`` file. The manifest contains all metadata from
the database (correspondents, tags, etc).
When you use the provided docker compose script, specify ``../export`` as the
target. This path inside the container is automatically mounted on your host on
the folder ``export``.
If the target directory already exists and contains files, paperless will assume
that the contents of the export directory are a previous export and will attempt
to update the previous export. Paperless will only export changed and added files.
Paperless determines whether a file has changed by inspecting the file attributes
"date/time modified" and "size". If that does not work out for you, specify
``--compare-checksums`` and paperless will attempt to compare file checksums instead.
This is slower.
Paperless will not remove any existing files in the export directory. If you want
paperless to also remove files that do not belong to the current export such as files
from deleted documents, specify ``--delete``. Be careful when pointing paperless to
a directory that already contains other files.
The filenames generated by this command follow the format
``[date created] [correspondent] [title].[extension]``.
If you want paperless to use ``PAPERLESS_FILENAME_FORMAT`` for exported filenames
instead, specify ``--use-filename-format``.
.. _utilities-importer:
Document importer
=================
The document importer takes the export produced by the `Document exporter`_ and
imports it into paperless.
The importer works just like the exporter. You point it at a directory, and
the script does the rest of the work:
.. code::
document_importer source
When you use the provided docker compose script, put the export inside the
``export`` folder in your paperless source directory. Specify ``../export``
as the ``source``.
.. _utilities-retagger:
Document retagger
=================
Say you've imported a few hundred documents and now want to introduce
a tag or set up a new correspondent, and apply its matching to all of
the currently-imported docs. This problem is common enough that
there are tools for it.
.. code::
document_retagger [-h] [-c] [-T] [-t] [-i] [--use-first] [-f]
optional arguments:
-c, --correspondent
-T, --tags
-t, --document_type
-i, --inbox-only
--use-first
-f, --overwrite
Run this after changing or adding matching rules. It'll loop over all
of the documents in your database and attempt to match documents
according to the new rules.
Specify any combination of ``-c``, ``-T`` and ``-t`` to have the
retagger perform matching of the specified metadata type. If you don't
specify any of these options, the document retagger won't do anything.
Specify ``-i`` to have the document retagger work on documents tagged
with inbox tags only. This is useful when you don't want to mess with
your already processed documents.
When multiple document types or correspondents match a single document,
the retagger won't assign these to the document. Specify ``--use-first``
to override this behavior and just use the first correspondent or type
it finds. This option does not apply to tags, since any amount of tags
can be applied to a document.
Finally, ``-f`` specifies that you wish to overwrite already assigned
correspondents, types and/or tags. The default behavior is to not
assign correspondents and types to documents that have this data already
assigned. ``-f`` works differently for tags: By default, only additional tags get
added to documents, no tags will be removed. With ``-f``, tags that don't
match a document anymore get removed as well.
Managing the Automatic matching algorithm
=========================================
The *Auto* matching algorithm requires a trained neural network to work.
This network needs to be updated whenever somethings in your data
changes. The docker image takes care of that automatically with the task
scheduler. You can manually renew the classifier by invoking the following
management command:
.. code::
document_create_classifier
This command takes no arguments.
.. _`administration-index`:
Managing the document search index
==================================
The document search index is responsible for delivering search results for the
website. The document index is automatically updated whenever documents get
added to, changed, or removed from paperless. However, if the search yields
non-existing documents or won't find anything, you may need to recreate the
index manually.
.. code::
document_index {reindex,optimize}
Specify ``reindex`` to have the index created from scratch. This may take some
time.
Specify ``optimize`` to optimize the index. This updates certain aspects of
the index and usually makes queries faster and also ensures that the
autocompletion works properly. This command is regularly invoked by the task
scheduler.
.. _utilities-renamer:
Managing filenames
==================
If you use paperless' feature to
:ref:`assign custom filenames to your documents <advanced-file_name_handling>`,
you can use this command to move all your files after changing
the naming scheme.
.. warning::
Since this command moves you documents around alot, it is advised to to
a backup before. The renaming logic is robust and will never overwrite
or delete a file, but you can't ever be careful enough.
.. code::
document_renamer
The command takes no arguments and processes all your documents at once.
Learn how to use :ref:`Management Utilities<utilities-management-commands>`.
.. _utilities-sanity-checker:
Sanity checker
==============
Paperless has a built-in sanity checker that inspects your document collection for issues.
The issues detected by the sanity checker are as follows:
* Missing original files.
* Missing archive files.
* Inaccessible original files due to improper permissions.
* Inaccessible archive files due to improper permissions.
* Corrupted original documents by comparing their checksum against what is stored in the database.
* Corrupted archive documents by comparing their checksum against what is stored in the database.
* Missing thumbnails.
* Inaccessible thumbnails due to improper permissions.
* Documents without any content (warning).
* Orphaned files in the media directory (warning). These are files that are not referenced by any document im paperless.
.. code::
document_sanity_checker
The command takes no arguments. Depending on the size of your document archive, this may take some time.
Fetching e-mail
===============
Paperless automatically fetches your e-mail every 10 minutes by default. If
you want to invoke the email consumer manually, call the following management
command:
.. code::
mail_fetcher
The command takes no arguments and processes all your mail accounts and rules.
.. _utilities-archiver:
Creating archived documents
===========================
Paperless stores archived PDF/A documents alongside your original documents.
These archived documents will also contain selectable text for image-only
originals.
These documents are derived from the originals, which are always stored
unmodified. If coming from an earlier version of paperless, your documents
won't have archived versions.
This command creates PDF/A documents for your documents.
.. code::
document_archiver --overwrite --document <id>
This command will only attempt to create archived documents when no archived
document exists yet, unless ``--overwrite`` is specified. If ``--document <id>``
is specified, the archiver will only process that document.
.. note::
This command essentially performs OCR on all your documents again,
according to your settings. If you run this with ``PAPERLESS_OCR_MODE=redo``,
it will potentially run for a very long time. You can cancel the command
at any time, since this command will skip already archived versions the next time
it is run.
.. note::
Some documents will cause errors and cannot be converted into PDF/A documents,
such as encrypted PDF documents. The archiver will skip over these documents
each time it sees them.
.. _utilities-encyption:
Managing encryption
===================
Documents can be stored in Paperless using GnuPG encryption.
.. danger::
Encryption is deprecated since paperless-ngx 0.9 and doesn't really provide any
additional security, since you have to store the passphrase in a configuration
file on the same system as the encrypted documents for paperless to work.
Furthermore, the entire text content of the documents is stored plain in the
database, even if your documents are encrypted. Filenames are not encrypted as
well.
Also, the web server provides transparent access to your encrypted documents.
Consider running paperless on an encrypted filesystem instead, which will then
at least provide security against physical hardware theft.
Enabling encryption
-------------------
Enabling encryption is no longer supported.
Disabling encryption
--------------------
Basic usage to disable encryption of your document store:
(Note: If ``PAPERLESS_PASSPHRASE`` isn't set already, you need to specify it here)
.. code::
decrypt_documents [--passphrase SECR3TP4SSPHRA$E]

476
docs/advanced_usage.md Normal file
View File

@@ -0,0 +1,476 @@
# Advanced Topics
Paperless offers a couple features that automate certain tasks and make
your life easier.
## Matching tags, correspondents, document types, and storage paths {#matching}
Paperless will compare the matching algorithms defined by every tag,
correspondent, document type, and storage path in your database to see
if they apply to the text in a document. In other words, if you define a
tag called `Home Utility` that had a `match` property of `bc hydro` and
a `matching_algorithm` of `literal`, Paperless will automatically tag
your newly-consumed document with your `Home Utility` tag so long as the
text `bc hydro` appears in the body of the document somewhere.
The matching logic is quite powerful. It supports searching the text of
your document with different algorithms, and as such, some
experimentation may be necessary to get things right.
In order to have a tag, correspondent, document type, or storage path
assigned automatically to newly consumed documents, assign a match and
matching algorithm using the web interface. These settings define when
to assign tags, correspondents, document types, and storage paths to
documents.
The following algorithms are available:
- **Any:** Looks for any occurrence of any word provided in match in
the PDF. If you define the match as `Bank1 Bank2`, it will match
documents containing either of these terms.
- **All:** Requires that every word provided appears in the PDF,
albeit not in the order provided.
- **Literal:** Matches only if the match appears exactly as provided
(i.e. preserve ordering) in the PDF.
- **Regular expression:** Parses the match as a regular expression and
tries to find a match within the document.
- **Fuzzy match:** I don't know. Look at the source.
- **Auto:** Tries to automatically match new documents. This does not
require you to set a match. See the notes below.
When using the _any_ or _all_ matching algorithms, you can search for
terms that consist of multiple words by enclosing them in double quotes.
For example, defining a match text of `"Bank of America" BofA` using the
_any_ algorithm, will match documents that contain either "Bank of
America" or "BofA", but will not match documents containing "Bank of
South America".
Then just save your tag, correspondent, document type, or storage path
and run another document through the consumer. Once complete, you should
see the newly-created document, automatically tagged with the
appropriate data.
### Automatic matching {#automatic-matching}
Paperless-ngx comes with a new matching algorithm called _Auto_. This
matching algorithm tries to assign tags, correspondents, document types,
and storage paths to your documents based on how you have already
assigned these on existing documents. It uses a neural network under the
hood.
If, for example, all your bank statements of your account 123 at the
Bank of America are tagged with the tag "bofa123" and the matching
algorithm of this tag is set to _Auto_, this neural network will examine
your documents and automatically learn when to assign this tag.
Paperless tries to hide much of the involved complexity with this
approach. However, there are a couple caveats you need to keep in mind
when using this feature:
- Changes to your documents are not immediately reflected by the
matching algorithm. The neural network needs to be _trained_ on your
documents after changes. Paperless periodically (default: once each
hour) checks for changes and does this automatically for you.
- The Auto matching algorithm only takes documents into account which
are NOT placed in your inbox (i.e. have any inbox tags assigned to
them). This ensures that the neural network only learns from
documents which you have correctly tagged before.
- The matching algorithm can only work if there is a correlation
between the tag, correspondent, document type, or storage path and
the document itself. Your bank statements usually contain your bank
account number and the name of the bank, so this works reasonably
well, However, tags such as "TODO" cannot be automatically
assigned.
- The matching algorithm needs a reasonable number of documents to
identify when to assign tags, correspondents, storage paths, and
types. If one out of a thousand documents has the correspondent
"Very obscure web shop I bought something five years ago", it will
probably not assign this correspondent automatically if you buy
something from them again. The more documents, the better.
- Paperless also needs a reasonable amount of negative examples to
decide when not to assign a certain tag, correspondent, document
type, or storage path. This will usually be the case as you start
filling up paperless with documents. Example: If all your documents
are either from "Webshop" and "Bank", paperless will assign one
of these correspondents to ANY new document, if both are set to
automatic matching.
## Hooking into the consumption process {#consume-hooks}
Sometimes you may want to do something arbitrary whenever a document is
consumed. Rather than try to predict what you may want to do, Paperless
lets you execute scripts of your own choosing just before or after a
document is consumed using a couple simple hooks.
Just write a script, put it somewhere that Paperless can read & execute,
and then put the path to that script in `paperless.conf` or
`docker-compose.env` with the variable name of either
`PAPERLESS_PRE_CONSUME_SCRIPT` or `PAPERLESS_POST_CONSUME_SCRIPT`.
!!! info
These scripts are executed in a **blocking** process, which means that
if a script takes a long time to run, it can significantly slow down
your document consumption flow. If you want things to run
asynchronously, you'll have to fork the process in your script and
exit.
### Pre-consumption script {#pre-consume-script}
Executed after the consumer sees a new document in the consumption
folder, but before any processing of the document is performed. This
script can access the following relevant environment variables set:
- `DOCUMENT_SOURCE_PATH`
A simple but common example for this would be creating a simple script
like this:
`/usr/local/bin/ocr-pdf`
```bash
#!/usr/bin/env bash
pdf2pdfocr.py -i ${DOCUMENT_SOURCE_PATH}
```
`/etc/paperless.conf`
```bash
...
PAPERLESS_PRE_CONSUME_SCRIPT="/usr/local/bin/ocr-pdf"
...
```
This will pass the path to the document about to be consumed to
`/usr/local/bin/ocr-pdf`, which will in turn call
[pdf2pdfocr.py](https://github.com/LeoFCardoso/pdf2pdfocr) on your
document, which will then overwrite the file with an OCR'd version of
the file and exit. At which point, the consumption process will begin
with the newly modified file.
The script's stdout and stderr will be logged line by line to the
webserver log, along with the exit code of the script.
### Post-consumption script {#post-consume-script}
Executed after the consumer has successfully processed a document and
has moved it into paperless. It receives the following environment
variables:
- `DOCUMENT_ID`
- `DOCUMENT_FILE_NAME`
- `DOCUMENT_CREATED`
- `DOCUMENT_MODIFIED`
- `DOCUMENT_ADDED`
- `DOCUMENT_SOURCE_PATH`
- `DOCUMENT_ARCHIVE_PATH`
- `DOCUMENT_THUMBNAIL_PATH`
- `DOCUMENT_DOWNLOAD_URL`
- `DOCUMENT_THUMBNAIL_URL`
- `DOCUMENT_CORRESPONDENT`
- `DOCUMENT_TAGS`
- `DOCUMENT_ORIGINAL_FILENAME`
The script can be in any language, but for a simple shell script
example, you can take a look at
[post-consumption-example.sh](https://github.com/paperless-ngx/paperless-ngx/blob/main/scripts/post-consumption-example.sh)
in this project.
The post consumption script cannot cancel the consumption process.
The script's stdout and stderr will be logged line by line to the
webserver log, along with the exit code of the script.
### Docker {#docker-consume-hooks}
To hook into the consumption process when using Docker, you
will need to pass the scripts into the container via a host mount
in your `docker-compose.yml`.
Assuming you have
`/home/paperless-ngx/scripts/post-consumption-example.sh` as a
script which you'd like to run.
You can pass that script into the consumer container via a host mount:
```yaml
...
webserver:
...
volumes:
...
- /home/paperless-ngx/scripts:/path/in/container/scripts/ # (1)!
environment: # (3)!
...
PAPERLESS_POST_CONSUME_SCRIPT: /path/in/container/scripts/post-consumption-example.sh # (2)!
...
```
1. The external scripts directory is mounted to a location inside the container.
2. The internal location of the script is used to set the script to run
3. This can also be set in `docker-compose.env`
Troubleshooting:
- Monitor the docker-compose log
`cd ~/paperless-ngx; docker-compose logs -f`
- Check your script's permission e.g. in case of permission error
`sudo chmod 755 post-consumption-example.sh`
- Pipe your scripts's output to a log file e.g.
`echo "${DOCUMENT_ID}" | tee --append /usr/src/paperless/scripts/post-consumption-example.log`
## File name handling {#file-name-handling}
By default, paperless stores your documents in the media directory and
renames them using the identifier which it has assigned to each
document. You will end up getting files like `0000123.pdf` in your media
directory. This isn't necessarily a bad thing, because you normally
don't have to access these files manually. However, if you wish to name
your files differently, you can do that by adjusting the
`PAPERLESS_FILENAME_FORMAT` configuration option. Paperless adds the
correct file extension e.g. `.pdf`, `.jpg` automatically.
This variable allows you to configure the filename (folders are allowed)
using placeholders. For example, configuring this to
```bash
PAPERLESS_FILENAME_FORMAT={created_year}/{correspondent}/{title}
```
will create a directory structure as follows:
```
2019/
My bank/
Statement January.pdf
Statement February.pdf
2020/
My bank/
Statement January.pdf
Letter.pdf
Letter_01.pdf
Shoe store/
My new shoes.pdf
```
!!! warning
Do not manually move your files in the media folder. Paperless remembers
the last filename a document was stored as. If you do rename a file,
paperless will report your files as missing and won't be able to find
them.
Paperless provides the following placeholders within filenames:
- `{asn}`: The archive serial number of the document, or "none".
- `{correspondent}`: The name of the correspondent, or "none".
- `{document_type}`: The name of the document type, or "none".
- `{tag_list}`: A comma separated list of all tags assigned to the
document.
- `{title}`: The title of the document.
- `{created}`: The full date (ISO format) the document was created.
- `{created_year}`: Year created only, formatted as the year with
century.
- `{created_year_short}`: Year created only, formatted as the year
without century, zero padded.
- `{created_month}`: Month created only (number 01-12).
- `{created_month_name}`: Month created name, as per locale
- `{created_month_name_short}`: Month created abbreviated name, as per
locale
- `{created_day}`: Day created only (number 01-31).
- `{added}`: The full date (ISO format) the document was added to
paperless.
- `{added_year}`: Year added only.
- `{added_year_short}`: Year added only, formatted as the year without
century, zero padded.
- `{added_month}`: Month added only (number 01-12).
- `{added_month_name}`: Month added name, as per locale
- `{added_month_name_short}`: Month added abbreviated name, as per
locale
- `{added_day}`: Day added only (number 01-31).
Paperless will try to conserve the information from your database as
much as possible. However, some characters that you can use in document
titles and correspondent names (such as `: \ /` and a couple more) are
not allowed in filenames and will be replaced with dashes.
If paperless detects that two documents share the same filename,
paperless will automatically append `_01`, `_02`, etc to the filename.
This happens if all the placeholders in a filename evaluate to the same
value.
!!! tip
You can affect how empty placeholders are treated by changing the
following setting to `true`.
```
PAPERLESS_FILENAME_FORMAT_REMOVE_NONE=True
```
Doing this results in all empty placeholders resolving to "" instead
of "none" as stated above. Spaces before empty placeholders are
removed as well, empty directories are omitted.
!!! tip
Paperless checks the filename of a document whenever it is saved.
Therefore, you need to update the filenames of your documents and move
them after altering this setting by invoking the
[`document renamer`](/administration#renamer).
!!! warning
Make absolutely sure you get the spelling of the placeholders right, or
else paperless will use the default naming scheme instead.
!!! caution
As of now, you could totally tell paperless to store your files anywhere
outside the media directory by setting
```
PAPERLESS_FILENAME_FORMAT=../../my/custom/location/{title}
```
However, keep in mind that inside docker, if files get stored outside of
the predefined volumes, they will be lost after a restart of paperless.
## Storage paths
One of the best things in Paperless is that you can not only access the
documents via the web interface, but also via the file system.
When as single storage layout is not sufficient for your use case,
storage paths come to the rescue. Storage paths allow you to configure
more precisely where each document is stored in the file system.
- Each storage path is a `PAPERLESS_FILENAME_FORMAT` and
follows the rules described above
- Each document is assigned a storage path using the matching
algorithms described above, but can be overwritten at any time
For example, you could define the following two storage paths:
1. Normal communications are put into a folder structure sorted by
`year/correspondent`
2. Communications with insurance companies are stored in a flat
structure with longer file names, but containing the full date of
the correspondence.
```
By Year = {created_year}/{correspondent}/{title}
Insurances = Insurances/{correspondent}/{created_year}-{created_month}-{created_day} {title}
```
If you then map these storage paths to the documents, you might get the
following result. For simplicity, `By Year` defines the same
structure as in the previous example above.
```text
2019/ # By Year
My bank/
Statement January.pdf
Statement February.pdf
Insurances/ # Insurances
Healthcare 123/
2022-01-01 Statement January.pdf
2022-02-02 Letter.pdf
2022-02-03 Letter.pdf
Dental 456/
2021-12-01 New Conditions.pdf
```
!!! tip
Defining a storage path is optional. If no storage path is defined for a
document, the global `PAPERLESS_FILENAME_FORMAT` is applied.
!!! warning
If you adjust the format of an existing storage path, old documents
don't get relocated automatically. You need to run the
[document renamer](/administration#renamer) to
adjust their pathes.
## Celery Monitoring {#celery-monitoring}
The monitoring tool
[Flower](https://flower.readthedocs.io/en/latest/index.html) can be used
to view more detailed information about the health of the celery workers
used for asynchronous tasks. This includes details on currently running,
queued and completed tasks, timing and more. Flower can also be used
with Prometheus, as it exports metrics. For details on its capabilities,
refer to the Flower documentation.
To configure Flower further, create a `flowerconfig.py` and
place it into the `src/paperless` directory. For a Docker
installation, you can use volumes to accomplish this:
```yaml
services:
# ...
webserver:
ports:
- 5555:5555 # (2)!
# ...
volumes:
- /path/to/my/flowerconfig.py:/usr/src/paperless/src/paperless/flowerconfig.py:ro # (1)!
```
1. Note the `:ro` tag means the file will be mounted as read only.
2. `flower` runs by default on port 5555, but this can be configured
## Custom Container Initialization
The Docker image includes the ability to run custom user scripts during
startup. This could be utilized for installing additional tools or
Python packages, for example. Scripts are expected to be shell scripts.
To utilize this, mount a folder containing your scripts to the custom
initialization directory, `/custom-cont-init.d` and place
scripts you wish to run inside. For security, the folder must be owned
by `root` and should have permissions of `a=rx`. Additionally, scripts
must only be writable by `root`.
Your scripts will be run directly before the webserver completes
startup. Scripts will be run by the `root` user.
If you would like to switch users, the utility `gosu` is available and
preferred over `sudo`.
This is an advanced functionality with which you could break functionality
or lose data. If you experience issues, please disable any custom scripts
and try again before reporting an issue.
For example, using Docker Compose:
```yaml
services:
# ...
webserver:
# ...
volumes:
- /path/to/my/scripts:/custom-cont-init.d:ro # (1)!
```
1. Note the `:ro` tag means the folder will be mounted as read only. This is for extra security against changes
## MySQL Caveats {#mysql-caveats}
### Case Sensitivity
The database interface does not provide a method to configure a MySQL
database to be case sensitive. This would prevent a user from creating a
tag `Name` and `NAME` as they are considered the same.
Per Django documentation, to enable this requires manual intervention.
To enable case sensetive tables, you can execute the following command
against each table:
`ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;`
You can also set the default for new tables (this does NOT affect
existing tables) with:
`ALTER DATABASE <db_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;`

View File

@@ -1,292 +0,0 @@
***************
Advanced topics
***************
Paperless offers a couple features that automate certain tasks and make your life
easier.
.. _advanced-matching:
Matching tags, correspondents and document types
################################################
Paperless will compare the matching algorithms defined by every tag and
correspondent already set in your database to see if they apply to the text in
a document. In other words, if you defined a tag called ``Home Utility``
that had a ``match`` property of ``bc hydro`` and a ``matching_algorithm`` of
``literal``, Paperless will automatically tag your newly-consumed document with
your ``Home Utility`` tag so long as the text ``bc hydro`` appears in the body
of the document somewhere.
The matching logic is quite powerful. It supports searching the text of your
document with different algorithms, and as such, some experimentation may be
necessary to get things right.
In order to have a tag, correspondent, or type assigned automatically to newly
consumed documents, assign a match and matching algorithm using the web
interface. These settings define when to assign correspondents, tags, and types
to documents.
The following algorithms are available:
* **Any:** Looks for any occurrence of any word provided in match in the PDF.
If you define the match as ``Bank1 Bank2``, it will match documents containing
either of these terms.
* **All:** Requires that every word provided appears in the PDF, albeit not in the
order provided.
* **Literal:** Matches only if the match appears exactly as provided (i.e. preserve ordering) in the PDF.
* **Regular expression:** Parses the match as a regular expression and tries to
find a match within the document.
* **Fuzzy match:** I dont know. Look at the source.
* **Auto:** Tries to automatically match new documents. This does not require you
to set a match. See the notes below.
When using the *any* or *all* matching algorithms, you can search for terms
that consist of multiple words by enclosing them in double quotes. For example,
defining a match text of ``"Bank of America" BofA`` using the *any* algorithm,
will match documents that contain either "Bank of America" or "BofA", but will
not match documents containing "Bank of South America".
Then just save your tag/correspondent and run another document through the
consumer. Once complete, you should see the newly-created document,
automatically tagged with the appropriate data.
.. _advanced-automatic_matching:
Automatic matching
==================
Paperless-ngx comes with a new matching algorithm called *Auto*. This matching
algorithm tries to assign tags, correspondents, and document types to your
documents based on how you have already assigned these on existing documents. It
uses a neural network under the hood.
If, for example, all your bank statements of your account 123 at the Bank of
America are tagged with the tag "bofa_123" and the matching algorithm of this
tag is set to *Auto*, this neural network will examine your documents and
automatically learn when to assign this tag.
Paperless tries to hide much of the involved complexity with this approach.
However, there are a couple caveats you need to keep in mind when using this
feature:
* Changes to your documents are not immediately reflected by the matching
algorithm. The neural network needs to be *trained* on your documents after
changes. Paperless periodically (default: once each hour) checks for changes
and does this automatically for you.
* The Auto matching algorithm only takes documents into account which are NOT
placed in your inbox (i.e. have any inbox tags assigned to them). This ensures
that the neural network only learns from documents which you have correctly
tagged before.
* The matching algorithm can only work if there is a correlation between the
tag, correspondent, or document type and the document itself. Your bank
statements usually contain your bank account number and the name of the bank,
so this works reasonably well, However, tags such as "TODO" cannot be
automatically assigned.
* The matching algorithm needs a reasonable number of documents to identify when
to assign tags, correspondents, and types. If one out of a thousand documents
has the correspondent "Very obscure web shop I bought something five years
ago", it will probably not assign this correspondent automatically if you buy
something from them again. The more documents, the better.
* Paperless also needs a reasonable amount of negative examples to decide when
not to assign a certain tag, correspondent or type. This will usually be the
case as you start filling up paperless with documents. Example: If all your
documents are either from "Webshop" and "Bank", paperless will assign one of
these correspondents to ANY new document, if both are set to automatic matching.
Hooking into the consumption process
####################################
Sometimes you may want to do something arbitrary whenever a document is
consumed. Rather than try to predict what you may want to do, Paperless lets
you execute scripts of your own choosing just before or after a document is
consumed using a couple simple hooks.
Just write a script, put it somewhere that Paperless can read & execute, and
then put the path to that script in ``paperless.conf`` or ``docker-compose.env`` with the variable name
of either ``PAPERLESS_PRE_CONSUME_SCRIPT`` or
``PAPERLESS_POST_CONSUME_SCRIPT``.
.. important::
These scripts are executed in a **blocking** process, which means that if
a script takes a long time to run, it can significantly slow down your
document consumption flow. If you want things to run asynchronously,
you'll have to fork the process in your script and exit.
Pre-consumption script
======================
Executed after the consumer sees a new document in the consumption folder, but
before any processing of the document is performed. This script receives exactly
one argument:
* Document file name
A simple but common example for this would be creating a simple script like
this:
``/usr/local/bin/ocr-pdf``
.. code:: bash
#!/usr/bin/env bash
pdf2pdfocr.py -i ${1}
``/etc/paperless.conf``
.. code:: bash
...
PAPERLESS_PRE_CONSUME_SCRIPT="/usr/local/bin/ocr-pdf"
...
This will pass the path to the document about to be consumed to ``/usr/local/bin/ocr-pdf``,
which will in turn call `pdf2pdfocr.py`_ on your document, which will then
overwrite the file with an OCR'd version of the file and exit. At which point,
the consumption process will begin with the newly modified file.
.. _pdf2pdfocr.py: https://github.com/LeoFCardoso/pdf2pdfocr
.. _advanced-post_consume_script:
Post-consumption script
=======================
Executed after the consumer has successfully processed a document and has moved it
into paperless. It receives the following arguments:
* Document id
* Generated file name
* Source path
* Thumbnail path
* Download URL
* Thumbnail URL
* Correspondent
* Tags
The script can be in any language, but for a simple shell script
example, you can take a look at `post-consumption-example.sh`_ in this project.
The post consumption script cannot cancel the consumption process.
Docker
------
Assumed you have ``/home/foo/paperless-ngx/scripts/post-consumption-example.sh``.
You can pass that script into the consumer container via a host mount in your ``docker-compose.yml``.
.. code:: bash
...
consumer:
...
volumes:
...
- /home/paperless-ngx/scripts:/path/in/container/scripts/
...
Example (docker-compose.yml): ``- /home/foo/paperless-ngx/scripts:/usr/src/paperless/scripts``
which in turn requires the variable ``PAPERLESS_POST_CONSUME_SCRIPT`` in ``docker-compose.env`` to point to ``/path/in/container/scripts/post-consumption-example.sh``.
Example (docker-compose.env): ``PAPERLESS_POST_CONSUME_SCRIPT=/usr/src/paperless/scripts/post-consumption-example.sh``
Troubleshooting:
- Monitor the docker-compose log ``cd ~/paperless-ngx; docker-compose logs -f``
- Check your script's permission e.g. in case of permission error ``sudo chmod 755 post-consumption-example.sh``
- Pipe your scripts's output to a log file e.g. ``echo "${DOCUMENT_ID}" | tee --append /usr/src/paperless/scripts/post-consumption-example.log``
.. _post-consumption-example.sh: https://github.com/paperless-ngx/paperless-ngx/blob/main/scripts/post-consumption-example.sh
.. _advanced-file_name_handling:
File name handling
##################
By default, paperless stores your documents in the media directory and renames them
using the identifier which it has assigned to each document. You will end up getting
files like ``0000123.pdf`` in your media directory. This isn't necessarily a bad
thing, because you normally don't have to access these files manually. However, if
you wish to name your files differently, you can do that by adjusting the
``PAPERLESS_FILENAME_FORMAT`` configuration option.
This variable allows you to configure the filename (folders are allowed) using
placeholders. For example, configuring this to
.. code:: bash
PAPERLESS_FILENAME_FORMAT={created_year}/{correspondent}/{title}
will create a directory structure as follows:
.. code::
2019/
My bank/
Statement January.pdf
Statement February.pdf
2020/
My bank/
Statement January.pdf
Letter.pdf
Letter_01.pdf
Shoe store/
My new shoes.pdf
.. danger::
Do not manually move your files in the media folder. Paperless remembers the
last filename a document was stored as. If you do rename a file, paperless will
report your files as missing and won't be able to find them.
Paperless provides the following placeholders withing filenames:
* ``{asn}``: The archive serial number of the document, or "none".
* ``{correspondent}``: The name of the correspondent, or "none".
* ``{document_type}``: The name of the document type, or "none".
* ``{tag_list}``: A comma separated list of all tags assigned to the document.
* ``{title}``: The title of the document.
* ``{created}``: The full date (ISO format) the document was created.
* ``{created_year}``: Year created only.
* ``{created_month}``: Month created only (number 01-12).
* ``{created_day}``: Day created only (number 01-31).
* ``{added}``: The full date (ISO format) the document was added to paperless.
* ``{added_year}``: Year added only.
* ``{added_month}``: Month added only (number 01-12).
* ``{added_day}``: Day added only (number 01-31).
Paperless will try to conserve the information from your database as much as possible.
However, some characters that you can use in document titles and correspondent names (such
as ``: \ /`` and a couple more) are not allowed in filenames and will be replaced with dashes.
If paperless detects that two documents share the same filename, paperless will automatically
append ``_01``, ``_02``, etc to the filename. This happens if all the placeholders in a filename
evaluate to the same value.
.. hint::
Paperless checks the filename of a document whenever it is saved. Therefore,
you need to update the filenames of your documents and move them after altering
this setting by invoking the :ref:`document renamer <utilities-renamer>`.
.. warning::
Make absolutely sure you get the spelling of the placeholders right, or else
paperless will use the default naming scheme instead.
.. caution::
As of now, you could totally tell paperless to store your files anywhere outside
the media directory by setting
.. code::
PAPERLESS_FILENAME_FORMAT=../../my/custom/location/{title}
However, keep in mind that inside docker, if files get stored outside of the
predefined volumes, they will be lost after a restart of paperless.

318
docs/api.md Normal file
View File

@@ -0,0 +1,318 @@
# The REST API
Paperless makes use of the [Django REST
Framework](https://django-rest-framework.org/) standard API interface. It
provides a browsable API for most of its endpoints, which you can
inspect at `http://<paperless-host>:<port>/api/`. This also documents
most of the available filters and ordering fields.
The API provides 5 main endpoints:
- `/api/documents/`: Full CRUD support, except POSTing new documents.
See below.
- `/api/correspondents/`: Full CRUD support.
- `/api/document_types/`: Full CRUD support.
- `/api/logs/`: Read-Only.
- `/api/tags/`: Full CRUD support.
- `/api/mail_accounts/`: Full CRUD support.
- `/api/mail_rules/`: Full CRUD support.
All of these endpoints except for the logging endpoint allow you to
fetch, edit and delete individual objects by appending their primary key
to the path, for example `/api/documents/454/`.
The objects served by the document endpoint contain the following
fields:
- `id`: ID of the document. Read-only.
- `title`: Title of the document.
- `content`: Plain text content of the document.
- `tags`: List of IDs of tags assigned to this document, or empty
list.
- `document_type`: Document type of this document, or null.
- `correspondent`: Correspondent of this document or null.
- `created`: The date time at which this document was created.
- `created_date`: The date (YYYY-MM-DD) at which this document was
created. Optional. If also passed with created, this is ignored.
- `modified`: The date at which this document was last edited in
paperless. Read-only.
- `added`: The date at which this document was added to paperless.
Read-only.
- `archive_serial_number`: The identifier of this document in a
physical document archive.
- `original_file_name`: Verbose filename of the original document.
Read-only.
- `archived_file_name`: Verbose filename of the archived document.
Read-only. Null if no archived document is available.
## Downloading documents
In addition to that, the document endpoint offers these additional
actions on individual documents:
- `/api/documents/<pk>/download/`: Download the document.
- `/api/documents/<pk>/preview/`: Display the document inline, without
downloading it.
- `/api/documents/<pk>/thumb/`: Download the PNG thumbnail of a
document.
Paperless generates archived PDF/A documents from consumed files and
stores both the original files as well as the archived files. By
default, the endpoints for previews and downloads serve the archived
file, if it is available. Otherwise, the original file is served. Some
document cannot be archived.
The endpoints correctly serve the response header fields
`Content-Disposition` and `Content-Type` to indicate the filename for
download and the type of content of the document.
In order to download or preview the original document when an archived
document is available, supply the query parameter `original=true`.
!!! tip
Paperless used to provide these functionality at `/fetch/<pk>/preview`,
`/fetch/<pk>/thumb` and `/fetch/<pk>/doc`. Redirects to the new URLs are
in place. However, if you use these old URLs to access documents, you
should update your app or script to use the new URLs.
## Getting document metadata
The api also has an endpoint to retrieve read-only metadata about
specific documents. this information is not served along with the
document objects, since it requires reading files and would therefore
slow down document lists considerably.
Access the metadata of a document with an ID `id` at
`/api/documents/<id>/metadata/`.
The endpoint reports the following data:
- `original_checksum`: MD5 checksum of the original document.
- `original_size`: Size of the original document, in bytes.
- `original_mime_type`: Mime type of the original document.
- `media_filename`: Current filename of the document, under which it
is stored inside the media directory.
- `has_archive_version`: True, if this document is archived, false
otherwise.
- `original_metadata`: A list of metadata associated with the original
document. See below.
- `archive_checksum`: MD5 checksum of the archived document, or null.
- `archive_size`: Size of the archived document in bytes, or null.
- `archive_metadata`: Metadata associated with the archived document,
or null. See below.
File metadata is reported as a list of objects in the following form:
```json
[
{
"namespace": "http://ns.adobe.com/pdf/1.3/",
"prefix": "pdf",
"key": "Producer",
"value": "SparklePDF, Fancy edition"
}
]
```
`namespace` and `prefix` can be null. The actual metadata reported
depends on the file type and the metadata available in that specific
document. Paperless only reports PDF metadata at this point.
## Authorization
The REST api provides three different forms of authentication.
1. Basic authentication
Authorize by providing a HTTP header in the form
```
Authorization: Basic <credentials>
```
where `credentials` is a base64-encoded string of
`<username>:<password>`
2. Session authentication
When you're logged into paperless in your browser, you're
automatically logged into the API as well and don't need to provide
any authorization headers.
3. Token authentication
Paperless also offers an endpoint to acquire authentication tokens.
POST a username and password as a form or json string to
`/api/token/` and paperless will respond with a token, if the login
data is correct. This token can be used to authenticate other
requests with the following HTTP header:
```
Authorization: Token <token>
```
Tokens can be managed and revoked in the paperless admin.
## Searching for documents
Full text searching is available on the `/api/documents/` endpoint. Two
specific query parameters cause the API to return full text search
results:
- `/api/documents/?query=your%20search%20query`: Search for a document
using a full text query. For details on the syntax, see [Basic Usage - Searching](/usage#basic-usage_searching).
- `/api/documents/?more_like=1234`: Search for documents similar to
the document with id 1234.
Pagination works exactly the same as it does for normal requests on this
endpoint.
Certain limitations apply to full text queries:
- Results are always sorted by search score. The results matching the
query best will show up first.
- Only a small subset of filtering parameters are supported.
Furthermore, each returned document has an additional `__search_hit__`
attribute with various information about the search results:
```
{
"count": 31,
"next": "http://localhost:8000/api/documents/?page=2&query=test",
"previous": null,
"results": [
...
{
"id": 123,
"title": "title",
"content": "content",
...
"__search_hit__": {
"score": 0.343,
"highlights": "text <span class="match">Test</span> text",
"rank": 23
}
},
...
]
}
```
- `score` is an indication how well this document matches the query
relative to the other search results.
- `highlights` is an excerpt from the document content and highlights
the search terms with `<span>` tags as shown above.
- `rank` is the index of the search results. The first result will
have rank 0.
### `/api/search/autocomplete/`
Get auto completions for a partial search term.
Query parameters:
- `term`: The incomplete term.
- `limit`: Amount of results. Defaults to 10.
Results returned by the endpoint are ordered by importance of the term
in the document index. The first result is the term that has the highest
[Tf/Idf](https://en.wikipedia.org/wiki/Tf%E2%80%93idf) score in the index.
```json
["term1", "term3", "term6", "term4"]
```
## POSTing documents {#file-uploads}
The API provides a special endpoint for file uploads:
`/api/documents/post_document/`
POST a multipart form to this endpoint, where the form field `document`
contains the document that you want to upload to paperless. The filename
is sanitized and then used to store the document in a temporary
directory, and the consumer will be instructed to consume the document
from there.
The endpoint supports the following optional form fields:
- `title`: Specify a title that the consumer should use for the
document.
- `created`: Specify a DateTime where the document was created (e.g.
"2016-04-19" or "2016-04-19 06:15:00+02:00").
- `correspondent`: Specify the ID of a correspondent that the consumer
should use for the document.
- `document_type`: Similar to correspondent.
- `tags`: Similar to correspondent. Specify this multiple times to
have multiple tags added to the document.
The endpoint will immediately return "OK" if the document consumption
process was started successfully. No additional status information about
the consumption process itself is available, since that happens in a
different process.
## API Versioning
The REST API is versioned since Paperless-ngx 1.3.0.
- Versioning ensures that changes to the API don't break older
clients.
- Clients specify the specific version of the API they wish to use
with every request and Paperless will handle the request using the
specified API version.
- Even if the underlying data model changes, older API versions will
always serve compatible data.
- If no version is specified, Paperless will serve version 1 to ensure
compatibility with older clients that do not request a specific API
version.
API versions are specified by submitting an additional HTTP `Accept`
header with every request:
```
Accept: application/json; version=6
```
If an invalid version is specified, Paperless 1.3.0 will respond with
"406 Not Acceptable" and an error message in the body. Earlier
versions of Paperless will serve API version 1 regardless of whether a
version is specified via the `Accept` header.
If a client wishes to verify whether it is compatible with any given
server, the following procedure should be performed:
1. Perform an _authenticated_ request against any API endpoint. If the
server is on version 1.3.0 or newer, the server will add two custom
headers to the response:
```
X-Api-Version: 2
X-Version: 1.3.0
```
2. Determine whether the client is compatible with this server based on
the presence/absence of these headers and their values if present.
### API Changelog
#### Version 1
Initial API version.
#### Version 2
- Added field `Tag.color`. This read/write string field contains a hex
color such as `#a6cee3`.
- Added read-only field `Tag.text_color`. This field contains the text
color to use for a specific tag, which is either black or white
depending on the brightness of `Tag.color`.
- Removed field `Tag.colour`.

View File

@@ -1,300 +0,0 @@
************
The REST API
************
Paperless makes use of the `Django REST Framework`_ standard API interface.
It provides a browsable API for most of its endpoints, which you can inspect
at ``http://<paperless-host>:<port>/api/``. This also documents most of the
available filters and ordering fields.
.. _Django REST Framework: http://django-rest-framework.org/
The API provides 5 main endpoints:
* ``/api/documents/``: Full CRUD support, except POSTing new documents. See below.
* ``/api/correspondents/``: Full CRUD support.
* ``/api/document_types/``: Full CRUD support.
* ``/api/logs/``: Read-Only.
* ``/api/tags/``: Full CRUD support.
All of these endpoints except for the logging endpoint
allow you to fetch, edit and delete individual objects
by appending their primary key to the path, for example ``/api/documents/454/``.
The objects served by the document endpoint contain the following fields:
* ``id``: ID of the document. Read-only.
* ``title``: Title of the document.
* ``content``: Plain text content of the document.
* ``tags``: List of IDs of tags assigned to this document, or empty list.
* ``document_type``: Document type of this document, or null.
* ``correspondent``: Correspondent of this document or null.
* ``created``: The date at which this document was created.
* ``modified``: The date at which this document was last edited in paperless. Read-only.
* ``added``: The date at which this document was added to paperless. Read-only.
* ``archive_serial_number``: The identifier of this document in a physical document archive.
* ``original_file_name``: Verbose filename of the original document. Read-only.
* ``archived_file_name``: Verbose filename of the archived document. Read-only. Null if no archived document is available.
Downloading documents
#####################
In addition to that, the document endpoint offers these additional actions on
individual documents:
* ``/api/documents/<pk>/download/``: Download the document.
* ``/api/documents/<pk>/preview/``: Display the document inline,
without downloading it.
* ``/api/documents/<pk>/thumb/``: Download the PNG thumbnail of a document.
Paperless generates archived PDF/A documents from consumed files and stores both
the original files as well as the archived files. By default, the endpoints
for previews and downloads serve the archived file, if it is available.
Otherwise, the original file is served.
Some document cannot be archived.
The endpoints correctly serve the response header fields ``Content-Disposition``
and ``Content-Type`` to indicate the filename for download and the type of content of
the document.
In order to download or preview the original document when an archived document is available,
supply the query parameter ``original=true``.
.. hint::
Paperless used to provide these functionality at ``/fetch/<pk>/preview``,
``/fetch/<pk>/thumb`` and ``/fetch/<pk>/doc``. Redirects to the new URLs
are in place. However, if you use these old URLs to access documents, you
should update your app or script to use the new URLs.
Getting document metadata
#########################
The api also has an endpoint to retrieve read-only metadata about specific documents. this
information is not served along with the document objects, since it requires reading
files and would therefore slow down document lists considerably.
Access the metadata of a document with an ID ``id`` at ``/api/documents/<id>/metadata/``.
The endpoint reports the following data:
* ``original_checksum``: MD5 checksum of the original document.
* ``original_size``: Size of the original document, in bytes.
* ``original_mime_type``: Mime type of the original document.
* ``media_filename``: Current filename of the document, under which it is stored inside the media directory.
* ``has_archive_version``: True, if this document is archived, false otherwise.
* ``original_metadata``: A list of metadata associated with the original document. See below.
* ``archive_checksum``: MD5 checksum of the archived document, or null.
* ``archive_size``: Size of the archived document in bytes, or null.
* ``archive_metadata``: Metadata associated with the archived document, or null. See below.
File metadata is reported as a list of objects in the following form:
.. code:: json
[
{
"namespace": "http://ns.adobe.com/pdf/1.3/",
"prefix": "pdf",
"key": "Producer",
"value": "SparklePDF, Fancy edition"
},
]
``namespace`` and ``prefix`` can be null. The actual metadata reported depends on the file type and the metadata
available in that specific document. Paperless only reports PDF metadata at this point.
Authorization
#############
The REST api provides three different forms of authentication.
1. Basic authentication
Authorize by providing a HTTP header in the form
.. code::
Authorization: Basic <credentials>
where ``credentials`` is a base64-encoded string of ``<username>:<password>``
2. Session authentication
When you're logged into paperless in your browser, you're automatically
logged into the API as well and don't need to provide any authorization
headers.
3. Token authentication
Paperless also offers an endpoint to acquire authentication tokens.
POST a username and password as a form or json string to ``/api/token/``
and paperless will respond with a token, if the login data is correct.
This token can be used to authenticate other requests with the
following HTTP header:
.. code::
Authorization: Token <token>
Tokens can be managed and revoked in the paperless admin.
Searching for documents
#######################
Full text searching is available on the ``/api/documents/`` endpoint. Two specific
query parameters cause the API to return full text search results:
* ``/api/documents/?query=your%20search%20query``: Search for a document using a full text query.
For details on the syntax, see :ref:`basic-usage_searching`.
* ``/api/documents/?more_like=1234``: Search for documents similar to the document with id 1234.
Pagination works exactly the same as it does for normal requests on this endpoint.
Certain limitations apply to full text queries:
* Results are always sorted by search score. The results matching the query best will show up first.
* Only a small subset of filtering parameters are supported.
Furthermore, each returned document has an additional ``__search_hit__`` attribute with various information
about the search results:
.. code::
{
"count": 31,
"next": "http://localhost:8000/api/documents/?page=2&query=test",
"previous": null,
"results": [
...
{
"id": 123,
"title": "title",
"content": "content",
...
"__search_hit__": {
"score": 0.343,
"highlights": "text <span class=\"match\">Test</span> text",
"rank": 23
}
},
...
]
}
* ``score`` is an indication how well this document matches the query relative to the other search results.
* ``highlights`` is an excerpt from the document content and highlights the search terms with ``<span>`` tags as shown above.
* ``rank`` is the index of the search results. The first result will have rank 0.
``/api/search/autocomplete/``
=============================
Get auto completions for a partial search term.
Query parameters:
* ``term``: The incomplete term.
* ``limit``: Amount of results. Defaults to 10.
Results returned by the endpoint are ordered by importance of the term in the
document index. The first result is the term that has the highest Tf/Idf score
in the index.
.. code:: json
[
"term1",
"term3",
"term6",
"term4"
]
.. _api-file_uploads:
POSTing documents
#################
The API provides a special endpoint for file uploads:
``/api/documents/post_document/``
POST a multipart form to this endpoint, where the form field ``document`` contains
the document that you want to upload to paperless. The filename is sanitized and
then used to store the document in a temporary directory, and the consumer will
be instructed to consume the document from there.
The endpoint supports the following optional form fields:
* ``title``: Specify a title that the consumer should use for the document.
* ``correspondent``: Specify the ID of a correspondent that the consumer should use for the document.
* ``document_type``: Similar to correspondent.
* ``tags``: Similar to correspondent. Specify this multiple times to have multiple tags added
to the document.
The endpoint will immediately return "OK" if the document consumption process
was started successfully. No additional status information about the consumption
process itself is available, since that happens in a different process.
.. _api-versioning:
API Versioning
##############
The REST API is versioned since Paperless-ngx 1.3.0.
* Versioning ensures that changes to the API don't break older clients.
* Clients specify the specific version of the API they wish to use with every request and Paperless will handle the request using the specified API version.
* Even if the underlying data model changes, older API versions will always serve compatible data.
* If no version is specified, Paperless will serve version 1 to ensure compatibility with older clients that do not request a specific API version.
API versions are specified by submitting an additional HTTP ``Accept`` header with every request:
.. code::
Accept: application/json; version=6
If an invalid version is specified, Paperless 1.3.0 will respond with "406 Not Acceptable" and an error message in the body.
Earlier versions of Paperless will serve API version 1 regardless of whether a version is specified via the ``Accept`` header.
If a client wishes to verify whether it is compatible with any given server, the following procedure should be performed:
1. Perform an *authenticated* request against any API endpoint. If the server is on version 1.3.0 or newer, the server will
add two custom headers to the response:
.. code::
X-Api-Version: 2
X-Version: 1.3.0
2. Determine whether the client is compatible with this server based on the presence/absence of these headers and their values if present.
API Changelog
=============
Version 1
---------
Initial API version.
Version 2
---------
* Added field ``Tag.color``. This read/write string field contains a hex color such as ``#a6cee3``.
* Added read-only field ``Tag.text_color``. This field contains the text color to use for a specific tag, which is either black or white depending on the brightness of ``Tag.color``.
* Removed field ``Tag.colour``.

36
docs/assets/extra.css Normal file
View File

@@ -0,0 +1,36 @@
:root > * {
--md-primary-fg-color: #17541f;
--md-primary-fg-color--dark: #17541f;
--md-primary-fg-color--light: #17541f;
--md-accent-fg-color: #2b8a38;
--md-typeset-a-color: #21652a;
}
[data-md-color-scheme="slate"] {
--md-hue: 222;
}
@media (min-width: 400px) {
.grid-left {
width: 33%;
float: left;
}
.grid-right {
width: 62%;
margin-left: 4%;
float: left;
}
}
.grid-left > p {
margin-bottom: 2rem;
}
.grid-right p {
margin: 0;
}
.index-callout {
margin-right: .5rem;
}

BIN
docs/assets/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 768 B

12
docs/assets/logo.svg Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1000 1000" style="enable-background:new 0 0 1000 1000;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M299,891.7c-4.2-19.8-12.5-59.6-13.6-59.6c-176.7-105.7-155.8-288.7-97.3-393.4
c12.5,131.8,245.8,222.8,109.8,383.9c-1.1,2,6.2,27.2,12.5,50.2c27.2-46,68-101.4,65.8-106.7C208.9,358.2,731.9,326.9,840.6,73.7
c49.1,244.8-25.1,623.5-445.5,719.7c-2,1.1-76.3,131.8-79.5,132.9c0-2-31.4-1.1-27.2-11.5C290.7,908.4,294.8,900.1,299,891.7
L299,891.7z M293.8,793.4c53.3-61.8-9.4-167.4-47.1-201.9C310.5,701.3,306.3,765.1,293.8,793.4L293.8,793.4z"/>
</svg>

After

Width:  |  Height:  |  Size: 869 B

View File

@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 2962.2 860.2" style="enable-background:new 0 0 2962.2 860.2;" xml:space="preserve">
<style type="text/css">
.st0{fill:#17541F;stroke:#000000;stroke-miterlimit:10;}
</style>
<path d="M1055.6,639.7v-20.6c-18,20-43.1,30.1-75.4,30.1c-22.4,0-42.8-5.8-61-17.5c-18.3-11.7-32.5-27.8-42.9-48.3
c-10.3-20.5-15.5-43.3-15.5-68.4c0-25.1,5.2-48,15.5-68.5s24.6-36.6,42.9-48.3s38.6-17.5,61-17.5c32.3,0,57.5,10,75.4,30.1v-20.6
h85.3v249.6L1055.6,639.7L1055.6,639.7z M1059.1,514.9c0-17.4-5.2-31.9-15.5-43.8c-10.3-11.8-23.9-17.7-40.6-17.7
c-16.8,0-30.2,5.9-40.4,17.7c-10.2,11.8-15.3,26.4-15.3,43.8c0,17.4,5.1,31.9,15.3,43.8c10.2,11.8,23.6,17.7,40.4,17.7
c16.8,0,30.3-5.9,40.6-17.7C1054,546.9,1059.1,532.3,1059.1,514.9z"/>
<path d="M1417.8,398.2c18.3,11.7,32.5,27.8,42.9,48.3c10.3,20.5,15.5,43.3,15.5,68.5c0,25.1-5.2,48-15.5,68.4
c-10.3,20.5-24.6,36.6-42.9,48.3s-38.6,17.5-61,17.5c-32.3,0-57.5-10-75.4-30.1v165.6h-85.3V390.2h85.3v20.6
c18-20,43.1-30.1,75.4-30.1C1379.2,380.7,1399.5,386.6,1417.8,398.2z M1389.5,514.9c0-17.4-5.1-31.9-15.3-43.8
c-10.2-11.8-23.6-17.7-40.4-17.7s-30.2,5.9-40.4,17.7c-10.2,11.8-15.3,26.4-15.3,43.8c0,17.4,5.1,31.9,15.3,43.8
c10.2,11.8,23.6,17.7,40.4,17.7s30.2-5.9,40.4-17.7S1389.5,532.3,1389.5,514.9z"/>
<path d="M1713.6,555.3l53,49.4c-28.1,29.6-66.7,44.4-115.8,44.4c-28.1,0-53-5.8-74.5-17.5s-38.2-27.7-49.8-48
c-11.7-20.3-17.7-43.2-18-68.7c0-24.8,5.9-47.5,17.7-68c11.8-20.5,28.1-36.7,48.7-48.5s43.5-17.7,68.7-17.7
c24.8,0,47.6,6.1,68.2,18.2s37,29.5,49.1,52.3c12.1,22.7,18.2,49.1,18.2,79l-0.4,11.7h-181.8c3.6,11.4,10.5,20.7,20.9,28.1
c10.3,7.3,21.3,11,33,11c14.4,0,26.3-2.2,35.7-6.5C1695.8,570.1,1704.9,563.7,1713.6,555.3z M1596.9,486.2h92.9
c-2.1-12.3-7.5-22.1-16.2-29.4s-18.7-11-30.1-11s-21.5,3.7-30.3,11S1599,473.9,1596.9,486.2z"/>
<path d="M1908.8,418.4c7.8-10.8,17.2-19,28.3-24.7s22-8.5,32.8-8.5c11.4,0,20,1.6,26,4.9l-10.8,72.7c-8.4-2.1-15.7-3.1-22-3.1
c-17.1,0-30.4,4.3-39.9,12.8c-9.6,8.5-14.4,24.2-14.4,46.9v120.3h-85.3V390.2h85.3V418.4L1908.8,418.4z"/>
<path d="M2113,258.2v381.5h-85.3V258.2H2113z"/>
<path d="M2360.8,555.3l53,49.4c-28.1,29.6-66.7,44.4-115.8,44.4c-28.1,0-53-5.8-74.5-17.5s-38.2-27.7-49.8-48
c-11.7-20.3-17.7-43.2-18-68.7c0-24.8,5.9-47.5,17.7-68s28.1-36.7,48.7-48.5c20.6-11.8,43.5-17.7,68.7-17.7
c24.8,0,47.6,6.1,68.2,18.2c20.6,12.1,37,29.5,49.1,52.3c12.1,22.7,18.2,49.1,18.2,79l-0.4,11.7h-181.8
c3.6,11.4,10.5,20.7,20.9,28.1c10.3,7.3,21.3,11,33,11c14.4,0,26.3-2.2,35.7-6.5C2343.1,570.1,2352.1,563.7,2360.8,555.3z
M2244.1,486.2h92.9c-2.1-12.3-7.5-22.1-16.2-29.4s-18.7-11-30.1-11s-21.5,3.7-30.3,11C2251.7,464.1,2246.2,473.9,2244.1,486.2z"/>
<path d="M2565.9,446.3c-9.9,0-17.1,1.1-21.5,3.4c-4.5,2.2-6.7,5.9-6.7,11s3.4,8.8,10.3,11.2c6.9,2.4,18,4.9,33.2,7.6
c20,3,37,6.7,50.9,11.2s26,12.1,36.1,22.9c10.2,10.8,15.3,25.9,15.3,45.3c0,29.9-10.9,52.4-32.8,67.6
c-21.8,15.1-50.3,22.7-85.3,22.7c-25.7,0-49.5-3.7-71.4-11c-21.8-7.3-37.4-14.7-46.7-22.2l33.7-60.6c10.2,9,23.4,15.8,39.7,20.4
c16.3,4.6,31.3,7,45.1,7c19.7,0,29.6-5.2,29.6-15.7c0-5.4-3.3-9.4-9.9-11.9c-6.6-2.5-17.2-5.2-31.9-7.9c-18.9-3.3-34.9-7.2-48-11.7
c-13.2-4.5-24.6-12.2-34.3-23.1c-9.7-10.9-14.6-26-14.6-45.1c0-27.2,9.7-48.5,29-63.7c19.3-15.3,46-22.9,80.1-22.9
c23.3,0,44.4,3.6,63.3,10.8c18.9,7.2,34,14.5,45.3,22l-32.8,58.8c-10.8-7.5-23.2-13.7-37.3-18.6
C2590.5,448.7,2577.6,446.3,2565.9,446.3z"/>
<path d="M2817.3,446.3c-9.9,0-17.1,1.1-21.5,3.4c-4.5,2.2-6.7,5.9-6.7,11s3.4,8.8,10.3,11.2c6.9,2.4,18,4.9,33.2,7.6
c20,3,37,6.7,50.9,11.2s26,12.1,36.1,22.9c10.2,10.8,15.3,25.9,15.3,45.3c0,29.9-10.9,52.4-32.8,67.6
c-21.8,15.1-50.3,22.7-85.3,22.7c-25.7,0-49.5-3.7-71.4-11c-21.8-7.3-37.4-14.7-46.7-22.2l33.7-60.6c10.2,9,23.4,15.8,39.7,20.4
c16.3,4.6,31.3,7,45.1,7c19.8,0,29.6-5.2,29.6-15.7c0-5.4-3.3-9.4-9.9-11.9c-6.6-2.5-17.2-5.2-31.9-7.9c-18.9-3.3-34.9-7.2-48-11.7
c-13.2-4.5-24.6-12.2-34.3-23.1c-9.7-10.9-14.6-26-14.6-45.1c0-27.2,9.7-48.5,29-63.7c19.3-15.3,46-22.9,80.1-22.9
c23.3,0,44.4,3.6,63.3,10.8c18.9,7.2,34,14.5,45.3,22l-32.8,58.8c-10.8-7.5-23.2-13.7-37.3-18.6
C2841.8,448.7,2828.9,446.3,2817.3,446.3z"/>
<g>
<path d="M2508,724h60.2v17.3H2508V724z"/>
<path d="M2629.2,694.4c4.9-2,10.2-3.1,16-3.1c10.9,0,19.5,3.4,25.9,10.2s9.6,16.7,9.6,29.6v57.3h-19.6v-52.6
c0-9.3-1.7-16.2-5.1-20.7c-3.4-4.5-9.1-6.7-17-6.7c-6.5,0-11.8,2.4-16.1,7.1c-4.3,4.8-6.4,11.5-6.4,20.2v52.6h-19.6v-94.6h19.6v9.5
C2620.2,699.4,2624.4,696.4,2629.2,694.4z"/>
<path d="M2790.3,833.2c-8.6,6.8-19.4,10.2-32.3,10.2c-7.9,0-15.2-1.4-21.9-4.1s-12.1-6.8-16.3-12.2s-6.6-11.9-7.1-19.6h19.6
c0.7,6.1,3.5,10.8,8.4,13.9c4.9,3.2,10.7,4.8,17.4,4.8c7,0,13.1-2,18.2-6c5.1-4,7.7-10.3,7.7-18.9v-24.7c-3.6,3.4-8,6.2-13.3,8.2
c-5.2,2.1-10.7,3.1-16.3,3.1c-8.7,0-16.6-2.1-23.7-6.4c-7.1-4.3-12.6-10-16.7-17.3c-4-7.3-6-15.5-6-24.6s2-17.3,6-24.7
s9.6-13.2,16.7-17.4c7.1-4.3,15-6.4,23.7-6.4c5.7,0,11.1,1,16.3,3.1s9.6,4.8,13.3,8.2v-8.8h19.4v107.8
C2803.2,815.9,2798.9,826.4,2790.3,833.2z M2782.2,755.7c2.6-4.7,3.8-10,3.8-15.9s-1.3-11.2-3.8-16c-2.6-4.8-6.1-8.5-10.5-11.1
c-4.5-2.7-9.5-4-15.1-4c-5.8,0-10.9,1.4-15.4,4.3c-4.5,2.8-7.9,6.6-10.3,11.4c-2.4,4.8-3.6,9.9-3.6,15.5c0,5.4,1.2,10.5,3.6,15.3
c2.4,4.8,5.8,8.6,10.3,11.5s9.6,4.3,15.4,4.3c5.6,0,10.6-1.4,15.1-4.1C2776.1,764.1,2779.6,760.4,2782.2,755.7z"/>
<path d="M2843.5,788.4h-21.6l37.9-48l-36.4-46.6h22.6l25.7,33.3l25.8-33.3h21.6l-36.2,45.9l37.9,48.6h-22.6l-27.4-35L2843.5,788.4z
"/>
</g>
<path d="M835.8,319.2c-11.5-18.9-27.4-33.7-47.6-44.7c-20.2-10.9-43-16.4-68.5-16.4h-90.6c-8.6,39.6-21.3,77.2-38,112.4
c-10,21-21.3,41-33.9,59.9v209.2H647v-135h72.7c25.4,0,48.3-5.5,68.5-16.4s36.1-25.8,47.6-44.7c11.5-18.9,17.3-39.5,17.3-61.9
C853.1,358.9,847.4,338.1,835.8,319.2z M747,416.6c-9.4,9-21.8,13.5-37,13.5l-62.8,0.4v-93.4l62.8-0.4c15.3,0,27.6,4.5,37,13.5
s14.1,20,14.1,33.2C761.1,396.6,756.4,407.7,747,416.6z"/>
<path class="st0" d="M164.7,698.7c-3.5-16.5-10.4-49.6-11.3-49.6c-147.1-88-129.7-240.3-81-327.4C82.8,431.4,277,507.1,163.8,641.2
c-0.9,1.7,5.2,22.6,10.4,41.8c22.6-38.3,56.6-84.4,54.8-88.8C89.7,254.7,525,228.6,615.5,17.9c40.9,203.7-20.9,518.9-370.8,599
c-1.7,0.9-63.5,109.7-66.2,110.6c0-1.7-26.1-0.9-22.6-9.6C157.8,712.6,161.2,705.7,164.7,698.7L164.7,698.7z M160.4,616.9
c44.4-51.4-7.8-139.3-39.2-168C174.3,540.2,170.8,593.3,160.4,616.9L160.4,616.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 2962.2 860.2" style="enable-background:new 0 0 2962.2 860.2;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;stroke:#000000;stroke-miterlimit:10;}
.st1{fill:#17541F;stroke:#000000;stroke-miterlimit:10;}
</style>
<path class="st0" d="M1055.6,639.7v-20.6c-18,20-43.1,30.1-75.4,30.1c-22.4,0-42.8-5.8-61-17.5c-18.3-11.7-32.5-27.8-42.9-48.3
c-10.3-20.5-15.5-43.3-15.5-68.4c0-25.1,5.2-48,15.5-68.5s24.6-36.6,42.9-48.3s38.6-17.5,61-17.5c32.3,0,57.5,10,75.4,30.1v-20.6
h85.3v249.6L1055.6,639.7L1055.6,639.7z M1059.1,514.9c0-17.4-5.2-31.9-15.5-43.8c-10.3-11.8-23.9-17.7-40.6-17.7
c-16.8,0-30.2,5.9-40.4,17.7c-10.2,11.8-15.3,26.4-15.3,43.8c0,17.4,5.1,31.9,15.3,43.8c10.2,11.8,23.6,17.7,40.4,17.7
c16.8,0,30.3-5.9,40.6-17.7C1054,546.9,1059.1,532.3,1059.1,514.9z"/>
<path class="st0" d="M1417.8,398.2c18.3,11.7,32.5,27.8,42.9,48.3c10.3,20.5,15.5,43.3,15.5,68.5c0,25.1-5.2,48-15.5,68.4
c-10.3,20.5-24.6,36.6-42.9,48.3s-38.6,17.5-61,17.5c-32.3,0-57.5-10-75.4-30.1v165.6h-85.3V390.2h85.3v20.6
c18-20,43.1-30.1,75.4-30.1C1379.2,380.7,1399.5,386.6,1417.8,398.2z M1389.5,514.9c0-17.4-5.1-31.9-15.3-43.8
c-10.2-11.8-23.6-17.7-40.4-17.7s-30.2,5.9-40.4,17.7c-10.2,11.8-15.3,26.4-15.3,43.8c0,17.4,5.1,31.9,15.3,43.8
c10.2,11.8,23.6,17.7,40.4,17.7s30.2-5.9,40.4-17.7S1389.5,532.3,1389.5,514.9z"/>
<path class="st0" d="M1713.6,555.3l53,49.4c-28.1,29.6-66.7,44.4-115.8,44.4c-28.1,0-53-5.8-74.5-17.5s-38.2-27.7-49.8-48
c-11.7-20.3-17.7-43.2-18-68.7c0-24.8,5.9-47.5,17.7-68c11.8-20.5,28.1-36.7,48.7-48.5s43.5-17.7,68.7-17.7
c24.8,0,47.6,6.1,68.2,18.2s37,29.5,49.1,52.3c12.1,22.7,18.2,49.1,18.2,79l-0.4,11.7h-181.8c3.6,11.4,10.5,20.7,20.9,28.1
c10.3,7.3,21.3,11,33,11c14.4,0,26.3-2.2,35.7-6.5C1695.8,570.1,1704.9,563.7,1713.6,555.3z M1596.9,486.2h92.9
c-2.1-12.3-7.5-22.1-16.2-29.4s-18.7-11-30.1-11s-21.5,3.7-30.3,11S1599,473.9,1596.9,486.2z"/>
<path class="st0" d="M1908.8,418.4c7.8-10.8,17.2-19,28.3-24.7s22-8.5,32.8-8.5c11.4,0,20,1.6,26,4.9l-10.8,72.7
c-8.4-2.1-15.7-3.1-22-3.1c-17.1,0-30.4,4.3-39.9,12.8c-9.6,8.5-14.4,24.2-14.4,46.9v120.3h-85.3V390.2h85.3V418.4L1908.8,418.4z"/>
<path class="st0" d="M2113,258.2v381.5h-85.3V258.2H2113z"/>
<path class="st0" d="M2360.8,555.3l53,49.4c-28.1,29.6-66.7,44.4-115.8,44.4c-28.1,0-53-5.8-74.5-17.5s-38.2-27.7-49.8-48
c-11.7-20.3-17.7-43.2-18-68.7c0-24.8,5.9-47.5,17.7-68s28.1-36.7,48.7-48.5c20.6-11.8,43.5-17.7,68.7-17.7
c24.8,0,47.6,6.1,68.2,18.2c20.6,12.1,37,29.5,49.1,52.3c12.1,22.7,18.2,49.1,18.2,79l-0.4,11.7h-181.8
c3.6,11.4,10.5,20.7,20.9,28.1c10.3,7.3,21.3,11,33,11c14.4,0,26.3-2.2,35.7-6.5C2343.1,570.1,2352.1,563.7,2360.8,555.3z
M2244.1,486.2h92.9c-2.1-12.3-7.5-22.1-16.2-29.4s-18.7-11-30.1-11s-21.5,3.7-30.3,11C2251.7,464.1,2246.2,473.9,2244.1,486.2z"/>
<path class="st0" d="M2565.9,446.3c-9.9,0-17.1,1.1-21.5,3.4c-4.5,2.2-6.7,5.9-6.7,11s3.4,8.8,10.3,11.2c6.9,2.4,18,4.9,33.2,7.6
c20,3,37,6.7,50.9,11.2s26,12.1,36.1,22.9c10.2,10.8,15.3,25.9,15.3,45.3c0,29.9-10.9,52.4-32.8,67.6
c-21.8,15.1-50.3,22.7-85.3,22.7c-25.7,0-49.5-3.7-71.4-11c-21.8-7.3-37.4-14.7-46.7-22.2l33.7-60.6c10.2,9,23.4,15.8,39.7,20.4
c16.3,4.6,31.3,7,45.1,7c19.7,0,29.6-5.2,29.6-15.7c0-5.4-3.3-9.4-9.9-11.9c-6.6-2.5-17.2-5.2-31.9-7.9c-18.9-3.3-34.9-7.2-48-11.7
c-13.2-4.5-24.6-12.2-34.3-23.1c-9.7-10.9-14.6-26-14.6-45.1c0-27.2,9.7-48.5,29-63.7c19.3-15.3,46-22.9,80.1-22.9
c23.3,0,44.4,3.6,63.3,10.8c18.9,7.2,34,14.5,45.3,22l-32.8,58.8c-10.8-7.5-23.2-13.7-37.3-18.6
C2590.5,448.7,2577.6,446.3,2565.9,446.3z"/>
<path class="st0" d="M2817.3,446.3c-9.9,0-17.1,1.1-21.5,3.4c-4.5,2.2-6.7,5.9-6.7,11s3.4,8.8,10.3,11.2c6.9,2.4,18,4.9,33.2,7.6
c20,3,37,6.7,50.9,11.2s26,12.1,36.1,22.9c10.2,10.8,15.3,25.9,15.3,45.3c0,29.9-10.9,52.4-32.8,67.6
c-21.8,15.1-50.3,22.7-85.3,22.7c-25.7,0-49.5-3.7-71.4-11c-21.8-7.3-37.4-14.7-46.7-22.2l33.7-60.6c10.2,9,23.4,15.8,39.7,20.4
c16.3,4.6,31.3,7,45.1,7c19.8,0,29.6-5.2,29.6-15.7c0-5.4-3.3-9.4-9.9-11.9c-6.6-2.5-17.2-5.2-31.9-7.9c-18.9-3.3-34.9-7.2-48-11.7
c-13.2-4.5-24.6-12.2-34.3-23.1c-9.7-10.9-14.6-26-14.6-45.1c0-27.2,9.7-48.5,29-63.7c19.3-15.3,46-22.9,80.1-22.9
c23.3,0,44.4,3.6,63.3,10.8c18.9,7.2,34,14.5,45.3,22l-32.8,58.8c-10.8-7.5-23.2-13.7-37.3-18.6
C2841.8,448.7,2828.9,446.3,2817.3,446.3z"/>
<g>
<path class="st0" d="M2508,724h60.2v17.3H2508V724z"/>
<path class="st0" d="M2629.2,694.4c4.9-2,10.2-3.1,16-3.1c10.9,0,19.5,3.4,25.9,10.2s9.6,16.7,9.6,29.6v57.3h-19.6v-52.6
c0-9.3-1.7-16.2-5.1-20.7c-3.4-4.5-9.1-6.7-17-6.7c-6.5,0-11.8,2.4-16.1,7.1c-4.3,4.8-6.4,11.5-6.4,20.2v52.6h-19.6v-94.6h19.6v9.5
C2620.2,699.4,2624.4,696.4,2629.2,694.4z"/>
<path class="st0" d="M2790.3,833.2c-8.6,6.8-19.4,10.2-32.3,10.2c-7.9,0-15.2-1.4-21.9-4.1s-12.1-6.8-16.3-12.2s-6.6-11.9-7.1-19.6
h19.6c0.7,6.1,3.5,10.8,8.4,13.9c4.9,3.2,10.7,4.8,17.4,4.8c7,0,13.1-2,18.2-6c5.1-4,7.7-10.3,7.7-18.9v-24.7
c-3.6,3.4-8,6.2-13.3,8.2c-5.2,2.1-10.7,3.1-16.3,3.1c-8.7,0-16.6-2.1-23.7-6.4c-7.1-4.3-12.6-10-16.7-17.3c-4-7.3-6-15.5-6-24.6
s2-17.3,6-24.7s9.6-13.2,16.7-17.4c7.1-4.3,15-6.4,23.7-6.4c5.7,0,11.1,1,16.3,3.1s9.6,4.8,13.3,8.2v-8.8h19.4v107.8
C2803.2,815.9,2798.9,826.4,2790.3,833.2z M2782.2,755.7c2.6-4.7,3.8-10,3.8-15.9s-1.3-11.2-3.8-16c-2.6-4.8-6.1-8.5-10.5-11.1
c-4.5-2.7-9.5-4-15.1-4c-5.8,0-10.9,1.4-15.4,4.3c-4.5,2.8-7.9,6.6-10.3,11.4c-2.4,4.8-3.6,9.9-3.6,15.5c0,5.4,1.2,10.5,3.6,15.3
c2.4,4.8,5.8,8.6,10.3,11.5s9.6,4.3,15.4,4.3c5.6,0,10.6-1.4,15.1-4.1C2776.1,764.1,2779.6,760.4,2782.2,755.7z"/>
<path class="st0" d="M2843.5,788.4h-21.6l37.9-48l-36.4-46.6h22.6l25.7,33.3l25.8-33.3h21.6l-36.2,45.9l37.9,48.6h-22.6l-27.4-35
L2843.5,788.4z"/>
</g>
<path class="st0" d="M835.8,319.2c-11.5-18.9-27.4-33.7-47.6-44.7c-20.2-10.9-43-16.4-68.5-16.4h-90.6c-8.6,39.6-21.3,77.2-38,112.4
c-10,21-21.3,41-33.9,59.9v209.2H647v-135h72.7c25.4,0,48.3-5.5,68.5-16.4s36.1-25.8,47.6-44.7c11.5-18.9,17.3-39.5,17.3-61.9
C853.1,358.9,847.4,338.1,835.8,319.2z M747,416.6c-9.4,9-21.8,13.5-37,13.5l-62.8,0.4v-93.4l62.8-0.4c15.3,0,27.6,4.5,37,13.5
s14.1,20,14.1,33.2C761.1,396.6,756.4,407.7,747,416.6z"/>
<path class="st1" d="M164.7,698.7c-3.5-16.5-10.4-49.6-11.3-49.6c-147.1-88-129.7-240.3-81-327.4C82.8,431.4,277,507.1,163.8,641.2
c-0.9,1.7,5.2,22.6,10.4,41.8c22.6-38.3,56.6-84.4,54.8-88.8C89.7,254.7,525,228.6,615.5,17.9c40.9,203.7-20.9,518.9-370.8,599
c-1.7,0.9-63.5,109.7-66.2,110.6c0-1.7-26.1-0.9-22.6-9.6C157.8,712.6,161.2,705.7,164.7,698.7L164.7,698.7z M160.4,616.9
c44.4-51.4-7.8-139.3-39.2-168C174.3,540.2,170.8,593.3,160.4,616.9L160.4,616.9z"/>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 462 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 698 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

View File

Before

Width:  |  Height:  |  Size: 680 KiB

After

Width:  |  Height:  |  Size: 680 KiB

Some files were not shown because too many files have changed in this diff Show More