diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
index b52e08f35..16538820d 100644
--- a/.github/release-drafter.yml
+++ b/.github/release-drafter.yml
@@ -28,9 +28,10 @@ include-labels:
replacers: # Changes "Feature: Update checker" to "Update checker"
- search: '/Feature:|Feat:|\[feature\]/gi'
replace: ''
-change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
+category-template: '### $TITLE'
+change-template: '- $TITLE [@$AUTHOR](https://github.com/$AUTHOR) ([#$NUMBER]($URL))'
change-title-escapes: '\<*_@'
template: |
- # Changelog
+ ## paperless-ngx $RESOLVED_VERSION
$CHANGES
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index c17e2a210..e7dba1eb8 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -381,3 +381,21 @@ jobs:
asset_path: ./paperless-ngx.tar.xz
asset_name: paperless-ngx-${{ steps.get_version.outputs.version }}.tar.xz
asset_content_type: application/x-xz
+ -
+ name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: main
+ -
+ name: Append Changelog to docs
+ id: append-Changelog
+ working-directory: docs
+ run: |
+ echo -e "# Changelog\n\n${{ steps.create-release.outputs.body }}\n" > changelog-new.md
+ CURRENT_CHANGELOG=`tail --lines +2 changelog.md`
+ echo -e "$CURRENT_CHANGELOG" >> changelog-new.md
+ mv changelog-new.md changelog.md
+ git config --global user.name "github-actions"
+ git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
+ git commit -am "Changelog ${{ steps.get_version.outputs.version }} - GHA"
+ git push origin HEAD:main
diff --git a/Pipfile b/Pipfile
index c38d8323d..13644a23c 100644
--- a/Pipfile
+++ b/Pipfile
@@ -69,3 +69,4 @@ sphinx_rtd_theme = "*"
tox = "*"
black = "*"
pre-commit = "*"
+myst-parser = "*"
diff --git a/Pipfile.lock b/Pipfile.lock
index 8516b77d0..985f9fdb1 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
- "sha256": "9573af313c811561d467d814c52c6bd1439bc48e3b31d7f56afed5f0ebe4b648"
+ "sha256": "edaf53125fd5a0dc3aff5b75e188523ef3b7bc29bda792ee78ee67506e0b831d"
},
"pipfile-spec": 6,
"requires": {},
@@ -99,7 +99,6 @@
"sha256:f04e857b59d9d1ccc39ce2da1021d196e47234873820cbeaad210724b1ee28ac",
"sha256:fadbfe37f74051d024037f223b8e001611eac868b5c5b06144ef4d8b799862f2"
],
- "index": "pypi",
"markers": "python_version < '3.9'",
"version": "==0.2.1"
},
@@ -202,7 +201,7 @@
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
],
- "markers": "python_version >= '3'",
+ "markers": "python_version >= '3.5'",
"version": "==2.0.12"
},
"click": {
@@ -1585,7 +1584,7 @@
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
],
- "markers": "python_version >= '3'",
+ "markers": "python_version >= '3.5'",
"version": "==2.0.12"
},
"click": {
@@ -1597,7 +1596,9 @@
"version": "==8.1.3"
},
"coverage": {
- "extras": [],
+ "extras": [
+ "toml"
+ ],
"hashes": [
"sha256:03e2a7826086b91ef345ff18742ee9fc47a6839ccd517061ef8fa1976e652ce9",
"sha256:07e6db90cd9686c767dcc593dff16c8c09f9814f5e9c51034066cad3373b914d",
@@ -1752,6 +1753,14 @@
"markers": "python_version >= '3.7'",
"version": "==3.1.2"
},
+ "markdown-it-py": {
+ "hashes": [
+ "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27",
+ "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"
+ ],
+ "markers": "python_version >= '3.7'",
+ "version": "==2.1.0"
+ },
"markupsafe": {
"hashes": [
"sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003",
@@ -1798,6 +1807,22 @@
"markers": "python_version >= '3.7'",
"version": "==2.1.1"
},
+ "mdit-py-plugins": {
+ "hashes": [
+ "sha256:b1279701cee2dbf50e188d3da5f51fee8d78d038cdf99be57c6b9d1aa93b4073",
+ "sha256:ecc24f51eeec6ab7eecc2f9724e8272c2fb191c2e93cf98109120c2cace69750"
+ ],
+ "markers": "python_version ~= '3.6'",
+ "version": "==0.3.0"
+ },
+ "mdurl": {
+ "hashes": [
+ "sha256:6a8f6804087b7128040b2fb2ebe242bdc2affaeaa034d5fc9feeed30b443651b",
+ "sha256:f79c9709944df218a4cdb0fcc0b0c7ead2f44594e3e84dc566606f04ad749c20"
+ ],
+ "markers": "python_version >= '3.7'",
+ "version": "==0.1.1"
+ },
"mypy-extensions": {
"hashes": [
"sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d",
@@ -1805,6 +1830,14 @@
],
"version": "==0.4.3"
},
+ "myst-parser": {
+ "hashes": [
+ "sha256:1635ce3c18965a528d6de980f989ff64d6a1effb482e1f611b1bfb79e38f3d98",
+ "sha256:4c076d649e066f9f5c7c661bae2658be1ca06e76b002bb97f02a09398707686c"
+ ],
+ "index": "pypi",
+ "version": "==0.17.2"
+ },
"nodeenv": {
"hashes": [
"sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b",
@@ -2096,7 +2129,7 @@
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
"sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
],
- "markers": "python_version >= '3.7'",
+ "markers": "python_version < '3.11'",
"version": "==2.0.1"
},
"tox": {
diff --git a/docs/changelog.md b/docs/changelog.md
new file mode 100644
index 000000000..0b2da2c0e
--- /dev/null
+++ b/docs/changelog.md
@@ -0,0 +1,1947 @@
+# Changelog
+
+## paperless-ngx 1.7.1
+
+### Features
+
+- (chore) Runs pyupgrade to Python 3.8+ [\@stumpylog](https://github.com/stumpylog) ([\#890](https://github.com/paperless-ngx/paperless-ngx/pull/890))
+- Dockerfile Organization \& Enhancements [\@stumpylog](https://github.com/stumpylog) ([\#888](https://github.com/paperless-ngx/paperless-ngx/pull/888))
+- mobile friendlier manage pages [\@shamoon](https://github.com/shamoon) ([\#873](https://github.com/paperless-ngx/paperless-ngx/pull/873))
+- Use semver for release process [\@stumpylog](https://github.com/stumpylog) ([\#851](https://github.com/paperless-ngx/paperless-ngx/pull/851))
+- Enable Docker Hub push [\@stumpylog](https://github.com/stumpylog) ([\#828](https://github.com/paperless-ngx/paperless-ngx/pull/828))
+- Feature barcode tiff support @gador ([\#766](https://github.com/paperless-ngx/paperless-ngx/pull/766))
+- Updates GHA workflow to rebuild intermediate images on changes [\@stumpylog](https://github.com/stumpylog) ([\#820](https://github.com/paperless-ngx/paperless-ngx/pull/820))
+- Adds simple Python to wait for Redis broker to be ready [\@stumpylog](https://github.com/stumpylog) ([\#788](https://github.com/paperless-ngx/paperless-ngx/pull/788))
+- Update GHA workflow to build all Docker images [\@stumpylog](https://github.com/stumpylog) ([\#761](https://github.com/paperless-ngx/paperless-ngx/pull/761))
+
+### Bug Fixes
+
+- Feature / fix saved view \& sort field query params [\@shamoon](https://github.com/shamoon) ([\#881](https://github.com/paperless-ngx/paperless-ngx/pull/881))
+- mobile friendlier manage pages [\@shamoon](https://github.com/shamoon) ([\#873](https://github.com/paperless-ngx/paperless-ngx/pull/873))
+- Add timeout to healthcheck [\@shamoon](https://github.com/shamoon) ([\#880](https://github.com/paperless-ngx/paperless-ngx/pull/880))
+- Always accept yyyy-mm-dd date inputs [\@shamoon](https://github.com/shamoon) ([\#864](https://github.com/paperless-ngx/paperless-ngx/pull/864))
+- Fix local Docker image building [\@stumpylog](https://github.com/stumpylog) ([\#849](https://github.com/paperless-ngx/paperless-ngx/pull/849))
+- Fix: show errors on invalid date input [\@shamoon](https://github.com/shamoon) ([\#862](https://github.com/paperless-ngx/paperless-ngx/pull/862))
+- Fix: Older dates do not display on frontend [\@shamoon](https://github.com/shamoon) ([\#852](https://github.com/paperless-ngx/paperless-ngx/pull/852))
+- Fixes IMAP UTF8 Authenication [\@stumpylog](https://github.com/stumpylog) ([\#725](https://github.com/paperless-ngx/paperless-ngx/pull/725))
+- Fix password field remains visible [\@shamoon](https://github.com/shamoon) ([\#840](https://github.com/paperless-ngx/paperless-ngx/pull/840))
+- Fixes Pillow build for armv7 [\@stumpylog](https://github.com/stumpylog) ([\#815](https://github.com/paperless-ngx/paperless-ngx/pull/815))
+- Update frontend localization source file [\@shamoon](https://github.com/shamoon) ([\#814](https://github.com/paperless-ngx/paperless-ngx/pull/814))
+- Fix install script extra OCR languages format [\@stumpylog](https://github.com/stumpylog) ([\#777](https://github.com/paperless-ngx/paperless-ngx/pull/777))
+
+### Documentation
+
+- Use semver for release process [\@stumpylog](https://github.com/stumpylog) ([\#851](https://github.com/paperless-ngx/paperless-ngx/pull/851))
+- Deployment: Consolidate tika compose files @qcasey ([\#866](https://github.com/paperless-ngx/paperless-ngx/pull/866))
+- Fix local Docker image building [\@stumpylog](https://github.com/stumpylog) ([\#849](https://github.com/paperless-ngx/paperless-ngx/pull/849))
+
+### Maintenance
+
+- Dockerfile Organization \& Enhancements [\@stumpylog](https://github.com/stumpylog) ([\#888](https://github.com/paperless-ngx/paperless-ngx/pull/888))
+- Add timeout to healthcheck [\@shamoon](https://github.com/shamoon) ([\#880](https://github.com/paperless-ngx/paperless-ngx/pull/880))
+- Use semver for release process [\@stumpylog](https://github.com/stumpylog) ([\#851](https://github.com/paperless-ngx/paperless-ngx/pull/851))
+- Deployment: Consolidate tika compose files @qcasey ([\#866](https://github.com/paperless-ngx/paperless-ngx/pull/866))
+- Fixes Pillow build for armv7 [\@stumpylog](https://github.com/stumpylog) ([\#815](https://github.com/paperless-ngx/paperless-ngx/pull/815))
+- Update frontend localization source file [\@shamoon](https://github.com/shamoon) ([\#814](https://github.com/paperless-ngx/paperless-ngx/pull/814))
+- Fix install script extra OCR languages format [\@stumpylog](https://github.com/stumpylog) ([\#777](https://github.com/paperless-ngx/paperless-ngx/pull/777))
+- Adds simple Python to wait for Redis broker to be ready [\@stumpylog](https://github.com/stumpylog) ([\#788](https://github.com/paperless-ngx/paperless-ngx/pull/788))
+
+### Dependencies
+
+
+15 changes
+
+- Bump tj-actions/changed-files from 18.7 to 19 @dependabot ([\#830](https://github.com/paperless-ngx/paperless-ngx/pull/830))
+- Bump asgiref from 3.5.0 to 3.5.1 @dependabot ([\#867](https://github.com/paperless-ngx/paperless-ngx/pull/867))
+- Bump jest from 27.5.1 to 28.0.3 in /src-ui @dependabot ([\#860](https://github.com/paperless-ngx/paperless-ngx/pull/860))
+- Bump @ng-bootstrap/ng-bootstrap from 12.1.0 to 12.1.1 in /src-ui @dependabot ([\#861](https://github.com/paperless-ngx/paperless-ngx/pull/861))
+- Bump @types/node from 17.0.27 to 17.0.29 in /src-ui @dependabot ([\#833](https://github.com/paperless-ngx/paperless-ngx/pull/833))
+- Bump @ng-bootstrap/ng-bootstrap from 12.0.2 to 12.1.0 in /src-ui @dependabot ([\#834](https://github.com/paperless-ngx/paperless-ngx/pull/834))
+- Bump pytest from 7.1.1 to 7.1.2 @dependabot ([\#806](https://github.com/paperless-ngx/paperless-ngx/pull/806))
+- Bump github/codeql-action from 1 to 2 @dependabot ([\#792](https://github.com/paperless-ngx/paperless-ngx/pull/792))
+- Bump imap-tools from 0.53.0 to 0.54.0 @dependabot ([\#758](https://github.com/paperless-ngx/paperless-ngx/pull/758))
+- Bump ocrmypdf from 13.4.2 to 13.4.3 @dependabot ([\#757](https://github.com/paperless-ngx/paperless-ngx/pull/757))
+- Bump importlib-resources from 5.6.0 to 5.7.1 @dependabot ([\#756](https://github.com/paperless-ngx/paperless-ngx/pull/756))
+- Bump tox from 3.24.5 to 3.25.0 @dependabot ([\#692](https://github.com/paperless-ngx/paperless-ngx/pull/692))
+- Bump cypress from 9.5.3 to 9.6.0 in /src-ui @dependabot ([\#800](https://github.com/paperless-ngx/paperless-ngx/pull/800))
+- Bump angular \& tools to 13.3.4 or 13.3.3 [\@shamoon](https://github.com/shamoon) ([\#799](https://github.com/paperless-ngx/paperless-ngx/pull/799))
+- Bump concurrently from 7.0.0 to 7.1.0 in /src-ui @dependabot ([\#797](https://github.com/paperless-ngx/paperless-ngx/pull/797))
+
+
+## paperless-ngx 1.7.0
+
+Breaking Changes
+
+- `PAPERLESS_URL` is now required when using a reverse proxy. See
+ [\#674](https://github.com/paperless-ngx/paperless-ngx/pull/674).
+
+Features
+
+- Allow setting more than one tag in mail rules
+ [\@jonasc](https://github.com/jonasc) (\#270)
+- global drag\'n\'drop [\@shamoon](https://github.com/shamoon)
+ (\#283).
+- Fix: download buttons should disable while waiting
+ [\@shamoon](https://github.com/shamoon) (\#630).
+- Update checker [\@shamoon](https://github.com/shamoon) (\#591).
+- Show prompt on password-protected pdfs
+ [\@shamoon](https://github.com/shamoon) (\#564).
+- Filtering query params aka browser navigation for filtering
+ [\@shamoon](https://github.com/shamoon) (\#540).
+- Clickable tags in dashboard widgets
+ [\@shamoon](https://github.com/shamoon) (\#515).
+- Add bottom pagination [\@shamoon](https://github.com/shamoon)
+ (\#372).
+- Feature barcode splitter [\@gador](https://github.com/gador)
+ (\#532).
+- App loading screen [\@shamoon](https://github.com/shamoon) (\#298).
+- Use progress bar for delayed buttons
+ [\@shamoon](https://github.com/shamoon) (\#415).
+- Add minimum length for documents text filter
+ [\@shamoon](https://github.com/shamoon) (\#401).
+- Added nav buttons in the document detail view
+ [\@GruberViktor](https://github.com/gruberviktor) (\#273).
+- Improve date keyboard input [\@shamoon](https://github.com/shamoon)
+ (\#253).
+- Color theming [\@shamoon](https://github.com/shamoon) (\#243).
+- Parse dates when entered without separators
+ [\@GruberViktor](https://github.com/gruberviktor) (\#250).
+
+Bug Fixes
+
+- add \"localhost\" to ALLOWED_HOSTS
+ [\@gador](https://github.com/gador) (\#700).
+- Fix: scanners table [\@qcasey](https://github.com/qcasey) (\#690).
+- Adds wait for file before consuming
+ [\@stumpylog](https://github.com/stumpylog) (\#483).
+- Fix: frontend document editing erases time data
+ [\@shamoon](https://github.com/shamoon) (\#654).
+- Increase length of SavedViewFilterRule
+ [\@stumpylog](https://github.com/stumpylog) (\#612).
+- Fixes attachment filename matching during mail fetching
+ [\@stumpylog](https://github.com/stumpylog) (\#680).
+- Add `PAPERLESS_URL` env variable & CSRF var
+ [\@shamoon](https://github.com/shamoon) (\#674).
+- Fix: download buttons should disable while waiting
+ [\@shamoon](https://github.com/shamoon) (\#630).
+- Fixes downloaded filename, add more consumer ignore settings
+ [\@stumpylog](https://github.com/stumpylog) (\#599).
+- FIX BUG: case-sensitive matching was not possible
+ [\@danielBreitlauch](https://github.com/danielbreitlauch) (\#594).
+- uses shutil.move instead of rename
+ [\@gador](https://github.com/gador) (\#617).
+- Fix npm deps 01.02.22 2 [\@shamoon](https://github.com/shamoon)
+ (\#610).
+- Fix npm dependencies 01.02.22
+ [\@shamoon](https://github.com/shamoon) (\#600).
+- fix issue 416: implement PAPERLESS_OCR_MAX_IMAGE_PIXELS
+ [\@hacker-h](https://github.com/hacker-h) (\#441).
+- fix: exclude cypress from build in Dockerfile
+ [\@FrankStrieter](https://github.com/FrankStrieter) (\#526).
+- Corrections to pass pre-commit hooks
+ [\@schnuffle](https://github.com/schnuffle) (\#454).
+- Fix 311 unable to click checkboxes in document list
+ [\@shamoon](https://github.com/shamoon) (\#313).
+- Fix imap tools bug [\@stumpylog](https://github.com/stumpylog)
+ (\#393).
+- Fix filterable dropdown buttons arent translated
+ [\@shamoon](https://github.com/shamoon) (\#366).
+- Fix 224: \"Auto-detected date is day before receipt date\"
+ [\@a17t](https://github.com/a17t) (\#246).
+- Fix minor sphinx errors [\@shamoon](https://github.com/shamoon)
+ (\#322).
+- Fix page links hidden [\@shamoon](https://github.com/shamoon)
+ (\#314).
+- Fix: Include excluded items in dropdown count
+ [\@shamoon](https://github.com/shamoon) (\#263).
+
+Translation
+
+- [\@miku323](https://github.com/miku323) contributed to Slovenian
+ translation.
+- [\@FaintGhost](https://github.com/FaintGhost) contributed to Chinese
+ Simplified translation.
+- [\@DarkoBG79](https://github.com/DarkoBG79) contributed to Serbian
+ translation.
+- [Kemal Secer](https://crowdin.com/profile/kemal.secer) contributed
+ to Turkish translation.
+- [\@Prominence](https://github.com/Prominence) contributed to
+ Belarusian translation.
+
+Documentation
+
+- Fix: scanners table [\@qcasey](https://github.com/qcasey) (\#690).
+- Add [PAPERLESS\_URL]{.title-ref} env variable & CSRF var
+ [\@shamoon](https://github.com/shamoon) (\#674).
+- Fixes downloaded filename, add more consumer ignore settings
+ [\@stumpylog](https://github.com/stumpylog) (\#599).
+- fix issue 416: implement `PAPERLESS_OCR_MAX_IMAGE_PIXELS`
+ [\@hacker-h](https://github.com/hacker-h) (\#441).
+- Fix minor sphinx errors [\@shamoon](https://github.com/shamoon)
+ (\#322).
+
+Maintenance
+
+- Add `PAPERLESS_URL` env variable & CSRF var
+ [\@shamoon](https://github.com/shamoon) (\#674).
+- Chore: Implement release-drafter action for Changelogs
+ [\@qcasey](https://github.com/qcasey) (\#669).
+- Chore: Add CODEOWNERS [\@qcasey](https://github.com/qcasey) (\#667).
+- Support docker-compose v2 in install
+ [\@stumpylog](https://github.com/stumpylog) (\#611).
+- Add Belarusian localization [\@shamoon](https://github.com/shamoon)
+ (\#588).
+- Add Turkish localization [\@shamoon](https://github.com/shamoon)
+ (\#536).
+- Add Serbian localization [\@shamoon](https://github.com/shamoon)
+ (\#504).
+- Create PULL_REQUEST_TEMPLATE.md
+ [\@shamoon](https://github.com/shamoon) (\#304).
+- Add Chinese localization [\@shamoon](https://github.com/shamoon)
+ (\#247).
+- Add Slovenian language for frontend
+ [\@shamoon](https://github.com/shamoon) (\#315).
+
+## paperless-ngx 1.6.0
+
+This is the first release of the revived paperless-ngx project 🎉. Thank
+you to everyone on the paperless-ngx team for your initiative and
+excellent teamwork!
+
+Version 1.6.0 merges several pending PRs from jonaswinkler\'s repo and
+includes new feature updates and bug fixes. Major backend and UI changes
+include:
+
+- Updated docs, scripts, CI, and containers to paperless-ngx.
+- Updated Python and Angular dependencies.
+- Dropped support for Python 3.7.
+- Dropped support for Ansible playbooks (thanks
+ [\@slankes](https://github.com/slankes) \#109). If someone would
+ like to continue supporting them, please see the [ansible
+ repo](https://github.com/paperless-ngx/paperless-ngx-ansible).
+- Python code is now required to use Black formatting (thanks
+ [\@kpj](https://github.com/kpj) \#168).
+- [\@tribut](https://github.com/tribut) added support for a custom SSO
+ logout redirect (jonaswinkler\#1258). See
+ `PAPERLESS_LOGOUT_REDIRECT_URL`.
+- [\@shamoon](https://github.com/shamoon) added a loading indicator
+ when document list is reloading (jonaswinkler\#1297).
+- [\@shamoon](https://github.com/shamoon) improved the PDF viewer on
+ mobile (\#2).
+- [\@shamoon](https://github.com/shamoon) added \'any\' / \'all\' and
+ \'not\' filtering with tags (\#10).
+- [\@shamoon](https://github.com/shamoon) added warnings for unsaved
+ changes, with smart edit buttons (\#13).
+- [\@benjaminfrank](https://github.com/benjaminfrank) enabled a
+ non-root access to port 80 via systemd (\#18).
+- [\@tribut](https://github.com/tribut) added simple \"delete to
+ trash\" functionality (\#24). See `PAPERLESS_TRASH_DIR`.
+- [\@amenk](https://github.com/amenk) fixed the search box overlay
+ menu on mobile (\#32).
+- [\@dblitt](https://github.com/dblitt) updated the login form to not
+ auto-capitalize usernames (\#36).
+- [\@evilsidekick293](https://github.com/evilsidekick293) made the
+ worker timeout configurable (\#37). See `PAPERLESS_WORKER_TIMEOUT`.
+- [\@Nicarim](https://github.com/Nicarim) fixed downloads of UTF-8
+ formatted documents in Firefox (\#56).
+- [\@mweimerskirch](https://github.com/mweimerskirch) sorted the
+ language dropdown by locale (\#78).
+- [\@mweimerskirch](https://github.com/mweimerskirch) enabled the
+ Czech (\#83) and Danish (\#84) translations.
+- [\@cschmatzler](https://github.com/cschmatzler) enabled specifying
+ the webserver port (\#124). See `PAPERLESS_PORT`.
+- [\@muellermartin](https://github.com/muellermartin) fixed an error
+ when uploading transparent PNGs (\#133).
+- [\@shamoon](https://github.com/shamoon) created a slick new logo
+ (\#165).
+- [\@tim-vogel](https://github.com/tim-vogel) fixed exports missing
+ groups (\#193).
+
+Known issues:
+
+- 1.6.0 included a malformed package-lock.json, as a result users who
+ want to build the docker image themselves need to change line 6 of
+ the `Dockerfile` to
+ `RUN npm update npm -g && npm install --legacy-peer-deps`.
+
+Thank you to the following people for their documentation updates,
+fixes, and comprehensive testing:
+
+[\@m0veax](https://github.com/m0veax),
+[\@a17t](https://github.com/a17t),
+[\@fignew](https://github.com/fignew),
+[\@muued](https://github.com/muued),
+[\@bauerj](https://github.com/bauerj),
+[\@isigmund](https://github.com/isigmund),
+[\@denilsonsa](https://github.com/denilsonsa),
+[\@mweimerskirch](https://github.com/mweimerskirch),
+[\@alexander-bauer](https://github.com/alexander-bauer),
+[\@apeltzer](https://github.com/apeltzer),
+[\@tribut](https://github.com/tribut),
+[\@yschroeder](https://github.com/yschroeder),
+[\@gador](https://github.com/gador),
+[\@sAksham-Ar](https://github.com/sAksham-Ar),
+[\@sbrunner](https://github.com/sbrunner),
+[\@philpagel](https://github.com/philpagel),
+[\@davemachado](https://github.com/davemachado),
+[\@2600box](https://github.com/2600box),
+[\@qcasey](https://github.com/qcasey),
+[\@Nicarim](https://github.com/Nicarim),
+[\@kpj](https://github.com/kpj), [\@filcuk](https://github.com/filcuk),
+[\@Timoms](https://github.com/Timoms),
+[\@mattlamb99](https://github.com/mattlamb99),
+[\@padraigkitterick](https://github.com/padraigkitterick),
+[\@ajkavanagh](https://github.com/ajkavanagh),
+[\@Tooa](https://github.com/Tooa),
+[\@Unkn0wnCat](https://github.com/Unkn0wnCat),
+[\@pewter77](https://github.com/pewter77),
+[\@stumpylog](https://github.com/stumpylog),
+[\@Toxix](https://github.com/Toxix),
+[\@azapater](https://github.com/azapater),
+[\@jschpp](https://github.com/jschpp)
+
+Another big thanks to the people who have contributed translations:
+
+- Michel Weimerskirch (michel_weimerskirch) suggested 31 translations
+ into French and Luxembourgish.
+- jo.vandeginste suggested 21 translations into Dutch.
+- Lars Sørensen (Lrss) suggested 486 translations into Danish.
+- Alex (Sky-Dragon) voted for 46 translations in German.
+- Yannic Schröder (yschroeder) suggested 14 translations into German.
+- David Morais Ferreira (DavidMoraisFerreira) voted for 10
+ translations in Portuguese and Luxembourgish.
+- David Morais Ferreira (DavidMoraisFerreira) suggested 88
+ translations into French, German, Portuguese, Portuguese, Brazilian
+ and Luxembourgish.
+- æ±ªæ³ æ²£ (wlfcss) suggested 13 translations into Chinese Traditional.
+- Lars Sørensen (Lrss) suggested 167 translations into Danish.
+- Philmo67 suggested 11 translations into French.
+
+## Paperless-ng
+
+### paperless-ng 1.5.0
+
+Support for Python 3.6 was dropped.
+
+- Updated python dependencies.
+- Base image of the docker image changed from Debian Buster to Debian
+ Bullseye due to its recent release.
+- The docker image now uses python 3.9.
+- Added the Luxembourgish locale. Thanks for translating!
+- [Daniel Albers](https://github.com/AlD) added support for making the
+ files and folders ignored by the paperless consume folder scanner
+ configurable. See `PAPERLESS_CONSUMER_IGNORE_PATTERNS`.
+
+### paperless-ng 1.4.5
+
+This is a maintenance release.
+
+- Updated Python and Angular dependencies.
+- Changed the algorithm that changes permissions during startup. This
+ is still fast, and will hopefully cause less issues.
+- Fixed an issue that would sometimes cause paperless to write an
+ incomplete classification model file to disk.
+- Fixed an issue with the OCRmyPDF parser that would always try to
+ extract text with PDFminer even from non-PDF files.
+
+### paperless-ng 1.4.4
+
+- Drastically decreased the startup time of the docker container. The
+ startup script adjusts file permissions of all data only if changes
+ are required.
+- Paperless mail: Added ability to specify the character set for each
+ server.
+- Document consumption: Ignore Mac OS specific files such as
+ `.DS_STORE` and `._XXXXX.pdf`.
+- Fixed an issue with the automatic matching algorithm that prevents
+ paperless from consuming new files.
+- Updated translations.
+
+### paperless-ng 1.4.3
+
+- Additions and changes
+ - Added Swedish locale.
+ - [Stéphane Brunner](https://github.com/sbrunner) added an option
+ to disable the progress bars of all management commands.
+ - [Jo Vandeginste](https://github.com/jovandeginste) added support
+ for RTF documents to the Apache TIKA parser.
+ - [Michael Shamoon](https://github.com/shamoon) added dark mode
+ for the login and logout pages.
+ - [Alexander Menk](https://github.com/amenk) added additional
+ stylesheets for printing. You can now print any page of
+ paperless and the print result will hide the page header,
+ sidebar, and action buttons.
+ - Added support for sorting when using full text search.
+- Fixes
+ - [puuu](https://github.com/puuu) fixed
+ `PAPERLESS_FORCE_SCRIPT_NAME`. You can now host paperless on sub
+ paths such as `https://localhost:8000/paperless/`.
+ - Fixed an issue with the document consumer crashing on certain
+ documents due to issues with pdfminer.six. This library is used
+ for PDF text extraction.
+
+### paperless-ng 1.4.2
+
+- Fixed an issue with `sudo` that caused paperless to not start on
+ many Raspberry Pi devices. Thank you
+ [WhiteHatTux](https://github.com/WhiteHatTux)!
+
+### paperless-ng 1.4.1
+
+- Added Polish locale.
+- Changed some parts of the Dockerfile to hopefully restore
+ functionality on certain ARM devices.
+- Updated python dependencies.
+- [Michael Shamoon](https://github.com/shamoon) added a sticky filter
+ / bulk edit bar.
+- [sbrl](https://github.com/sbrl) changed the docker-entrypoint.sh
+ script to increase compatibility with NFS shares.
+- [Chris Nagy](https://github.com/what-name) added support for
+ creating a super user by passing `PAPERLESS_ADMIN_USER` and
+ `PAPERLESS_ADMIN_PASSWORD` as environment variables to the docker
+ container.
+
+### paperless-ng 1.4.0
+
+- Docker images now use tesseract 4.1.1, which should fix a series of
+ issues with OCR.
+- The full text search now displays results using the default document
+ list. This enables selection, filtering and bulk edit on search
+ results.
+- Changes
+ - Firefox only: Highlight search query in PDF previews.
+ - New URL pattern for accessing documents by ASN directly
+ (\/asn/123)
+ - Added logging when executing pre\* and post-consume scripts.
+ - Better error logging during document consumption.
+ - Updated python dependencies.
+ - Automatically inserts typed text when opening \"Create new\"
+ dialogs on the document details page.
+- Fixes
+ - Fixed an issue with null characters in the document content.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+The changed to the full text searching require you to reindex your
+documents. _The docker image does this automatically, you don\'t need to
+do anything._ To do this, execute the `document_index reindex`
+management command (see `administration-index`{.interpreted-text
+role="ref"}).
+:::
+
+### paperless-ng 1.3.2
+
+- Added translation into Portuguese.
+- Changes
+ - The exporter now exports user accounts, mail accounts, mail
+ rules and saved views as well.
+- Fixes
+ - Minor layout issues with document cards and the log viewer.
+ - Fixed an issue with any/all/exact matching when characters used
+ in regular expressions were used for the match.
+
+### paperless-ng 1.3.1
+
+- Added translation into Spanish and Russian.
+- Other changes
+ - ISO-8601 date format will now always show years with 4 digits.
+ - Added the ability to search for a document with a specific ASN.
+ - The document cards now display ASN, types and dates in a more
+ organized way.
+ - Added document previews when hovering over the preview button.
+- Fixes
+ - The startup check for write permissions now works properly on
+ NFS shares.
+ - Fixed an issue with the search results score indicator.
+ - Paperless was unable to generate thumbnails for encrypted PDF
+ files and failed. Paperless will now generate a default
+ thumbnail for these files.
+ - Fixed `AUTO_LOGIN_USERNAME`: Unable to perform POST/PUT/DELETE
+ requests and unable to receive WebSocket messages.
+
+### paperless-ng 1.3.0
+
+This release contains new database migrations.
+
+- Changes
+ - The REST API is versioned from this point onwards. This will
+ allow me to make changes without breaking existing clients. See
+ the documentation about `api-versioning`{.interpreted-text
+ role="ref"} for details.
+ - Added a color picker for tag colors.
+ - Added the ability to use the filter for searching the document
+ content as well.
+ - Added translations into Italian and Romanian. Thank you!
+ - Close individual documents from the sidebar. Thanks to [Michael
+ Shamoon](https://github.com/shamoon).
+ - [BolkoSchreiber](https://github.com/BolkoSchreiber) added an
+ option to disable/enable thumbnail inversion in dark mode.
+ - [Simon Taddiken](https://github.com/skuzzle) added the ability
+ to customize the header used for remote user authentication with
+ SSO applications.
+- Bug fixes
+ - Fixed an issue with the auto matching algorithm when more than
+ 256 tags were used.
+
+### paperless-ng 1.2.1
+
+- [Rodrigo Avelino](https://github.com/rodavelino) translated
+ Paperless into Portuguese (Brazil)!
+- The date input fields now respect the currently selected date
+ format.
+- Added a fancy icon when adding paperless to the home screen on iOS
+ devices. Thanks to [Joel Nordell](https://github.com/joelnordell).
+- When using regular expression matching, the regular expression is
+ now validated before saving the tag/correspondent/type.
+- Regression fix: Dates on the front end did not respect date locale
+ settings in some cases.
+
+### paperless-ng 1.2.0
+
+- Changes to the OCRmyPDF integration
+ - Added support for deskewing and automatic rotation of
+ incorrectly rotated pages. This is enabled by default, see
+ `configuration-ocr`{.interpreted-text role="ref"}.
+ - Better support for encrypted files.
+ - Better support for various other PDF files: Paperless will now
+ attempt to force OCR with safe options when OCR fails with the
+ configured options.
+ - Added an explicit option to skip cleaning with `unpaper`.
+- Download multiple selected documents as a zip archive.
+- The document list now remembers the current page.
+- Improved responsiveness when switching between saved views and the
+ document list.
+- Increased the default wait time when observing files in the
+ consumption folder with polling from 1 to 5 seconds. This will
+ decrease the likelihood of paperless consuming partially written
+ files.
+- Fixed a crash of the document archiver management command when
+ trying to process documents with unknown mime types.
+- Paperless no longer depends on `libpoppler-cpp-dev`.
+
+### paperless-ng 1.1.4
+
+- Added English (GB) locale.
+- Added ISO-8601 date display option.
+
+### paperless-ng 1.1.3
+
+- Added a docker-specific configuration option to adjust the number of
+ worker processes of the web server. See
+ `configuration-docker`{.interpreted-text role="ref"}.
+- Some more memory usage optimizations.
+- Don\'t show inbox statistics if no inbox tag is defined.
+
+### paperless-ng 1.1.2
+
+- Always show top left corner of thumbnails, even for extra wide
+ documents.
+- Added a management command for executing the sanity checker
+ directly. See `utilities-sanity-checker`{.interpreted-text
+ role="ref"}.
+- The weekly sanity check now reports messages in the log files.
+- Fixed an issue with the metadata tab not reporting anything in case
+ of missing files.
+- Reverted a change from 1.1.0 that caused huge memory usage due to
+ redis caching.
+- Some memory usage optimizations.
+
+### paperless-ng 1.1.1
+
+This release contains new database migrations.
+
+- Fixed a bug in the sanity checker that would cause it to display \"x
+ not in list\" errors instead of actual issues.
+- Fixed a bug with filename generation for archive filenames that
+ would cause the archive files of two documents to overlap.
+ - This happened when `PAPERLESS_FILENAME_FORMAT` is used and the
+ filenames of two or more documents are the same, except for the
+ file extension.
+ - Paperless will now store the archive filename in the database as
+ well instead of deriving it from the original filename, and use
+ the same logic for detecting and avoiding filename clashes
+ that\'s also used for original filenames.
+ - The migrations will repair any missing archive files. If you\'re
+ using tika, ensure that tika is running while performing the
+ migration. Docker-compose will take care of that.
+- Fixed a bug with thumbnail regeneration when TIKA integration was
+ used.
+- Added ASN as a placeholder field to the filename format.
+- The docker image now comes with built-in shortcuts for most
+ management commands. These are now the recommended way to execute
+ management commands, since these also ensure that they\'re always
+ executed as the paperless user and you\'re less likely to run into
+ permission issues. See
+ `utilities-management-commands`{.interpreted-text role="ref"}.
+
+### paperless-ng 1.1.0
+
+- Document processing status
+
+ - Paperless now shows the status of processing documents on the
+ dashboard in real time.
+ - Status notifications when
+ - New documents are detected in the consumption folder, in
+ mails, uploaded on the front end, or added with one of the
+ mobile apps.
+ - Documents are successfully added to paperless.
+ - Document consumption failed (with error messages)
+ - Configuration options to enable/disable individual
+ notifications.
+
+- Live updates to document lists and saved views when new documents
+ are added.
+
+ ::: {.hint}
+ ::: {.title}
+ Hint
+ :::
+
+ For status notifications and live updates to work, paperless now
+ requires an [ASGI](https://asgi.readthedocs.io/en/latest/)-enabled
+ web server. The docker images uses `gunicorn` and an ASGI-enabled
+ worker called [uvicorn](http://www.uvicorn.org/), and there is no
+ need to configure anything.
+
+ For bare metal installations, changes are required for the
+ notifications to work. Adapt the service
+ `paperless-webserver.service` to use the supplied `gunicorn.conf.py`
+ configuration file and adapt the reference to the ASGI application
+ as follows:
+
+ ```
+ ExecStart=/opt/paperless/.local/bin/gunicorn -c /opt/paperless/gunicorn.conf.py paperless.asgi:application
+ ```
+
+ Paperless will continue to work with WSGI, but you will not get any
+ status notifications.
+
+ Apache `mod_wsgi` users, see
+ `this note `{.interpreted-text role="ref"}.
+ :::
+
+- Paperless now offers suggestions for tags, correspondents and types
+ on the document detail page.
+
+- Added an interactive easy install script that automatically
+ downloads, configures and starts paperless with docker.
+
+- Official support for Python 3.9.
+
+- Other changes and fixes
+
+ - Adjusted the default parallelization settings to run more than
+ one task in parallel on systems with 4 or less cores. This
+ addresses issues with paperless not consuming any new files when
+ other tasks are running.
+ - Fixed a rare race condition that would cause paperless to
+ process incompletely written files when using the upload on the
+ dashboard.
+ - The document classifier no longer issues warnings and errors
+ when auto matching is not used at all.
+ - Better icon for document previews.
+ - Better info section in the side bar.
+ - Paperless no longer logs to the database. Instead, logs are
+ written to rotating log files. This solves many \"database is
+ locked\" issues on Raspberry Pi, especially when SQLite is used.
+ - By default, log files are written to `PAPERLESS_DATA_DIR/log/`.
+ Logging settings can be adjusted with `PAPERLESS_LOGGING_DIR`,
+ `PAPERLESS_LOGROTATE_MAX_SIZE` and
+ `PAPERLESS_LOGROTATE_MAX_BACKUPS`.
+
+### paperless-ng 1.0.0
+
+Nothing special about this release, but since there are relatively few
+bug reports coming in, I think that this is reasonably stable.
+
+- Document export
+ - The document exporter has been rewritten to support updating an
+ already existing export in place. This enables incremental
+ backups with `rsync`.
+ - The document exporter supports naming exported files according
+ to `PAPERLESS_FILENAME_FORMAT`.
+ - The document exporter locks the media directory and the database
+ during execution to ensure that the resulting export is
+ consistent.
+ - See the
+ `updated documentation `{.interpreted-text
+ role="ref"} for more details.
+- Other changes and additions
+ - Added a language selector to the settings.
+ - Added date format options to the settings.
+ - Range selection with shift clicking is now possible in the
+ document list.
+ - Filtering correspondent, type and tag management pages by name.
+ - Focus \"Name\" field in dialogs by default.
+
+### paperless-ng 0.9.14
+
+Starting with this version, releases are getting built automatically.
+This release also comes with changes on how to install and update
+paperless.
+
+- Paperless now uses GitHub Actions to make releases and build docker
+ images.
+ - Docker images are available for amd64, armhf, and aarch64.
+ - When you pull an image from Docker Hub, Docker will
+ automatically select the correct image for you.
+- Changes to docker installations and updates
+ - The `-dockerfiles.tar.xz` release archive is gone. Instead,
+ simply grab the docker files from `/docker/compose` in the
+ repository if you wish to install paperless by pulling from the
+ hub.
+ - The docker compose files in `/docker/compose` were changed to
+ always use the `latest` version automatically. In order to do
+ further updates, simply do a `docker-compose pull`. The
+ documentation has been updated.
+ - The docker compose files were changed to restart paperless on
+ system boot only if it was running before shutdown.
+ - Documentation of the docker-compose files about what they do.
+- Changes to bare metal installations and updates
+ - The release archive is built exactly like before. However, the
+ release now comes with already compiled translation messages and
+ collected static files. Therefore, the update steps
+ `compilemessages` and `collectstatic` are now obsolete.
+- Other changes
+ - A new configuration option `PAPERLESS_IGNORE_DATES` was added by
+ [jayme-github](http://github.com/jayme-github). This can be used
+ to instruct paperless to ignore certain dates (such as your date
+ of birth) when guessing the date from the document content. This
+ was actually introduced in 0.9.12, I just forgot to mention it
+ in the changelog.
+ - The filter drop downs now display selected entries on top of all
+ other entries.
+ - The PostgreSQL client now supports setting an explicit `sslmode`
+ to force encryption of the connection to PostgreSQL.
+ - The docker images now come with `jbig2enc`, which is a lossless
+ image encoder for PDF documents and decreases the size of
+ certain PDF/A documents.
+ - When using any of the manual matching algorithms, paperless now
+ logs messages about when and why these matching algorithms
+ matched.
+ - The default settings for parallelization in paperless were
+ adjusted to always leave one CPU core free.
+ - Added an option to the frontend to choose which method to use
+ for displaying PDF documents.
+- Fixes
+ - An issue with the tika parser not picking up files from the
+ consumption directory was fixed.
+ - A couple changes to the dark mode and fixes to several other
+ layout issues.
+ - An issue with the drop downs for correspondents, tags and types
+ not properly supporting filtering with special characters was
+ fixed.
+ - Fixed an issue with filenames of downloaded files: Dates where
+ off by one day due to timezone issues.
+ - Searching will continue to work even when the index returns
+ non-existing documents. This resulted in \"Document does not
+ exist\" errors before. Instead, a warning is logged, indicating
+ the issue.
+ - An issue with the consumer crashing when invalid regular
+ expression were used was fixed.
+
+### paperless-ng 0.9.13
+
+- Fixed an issue with Paperless not starting due to the new Tika
+ integration when `USERMAP_UID` and `USERMAP_GID` was used in the
+ `docker-compose.env` file.
+
+### paperless-ng 0.9.12
+
+- Paperless localization
+ - Thanks to the combined efforts of many users, Paperless is now
+ available in English, Dutch, French and German.
+- Thanks to [Jo Vandeginste](https://github.com/jovandeginste),
+ Paperless has optional support for Office documents such as .docx,
+ .doc, .odt and more.
+ - See the `configuration`{.interpreted-text
+ role="ref"} on how to enable this feature. This feature requires
+ two additional services (one for parsing Office documents and
+ metadata extraction and another for converting Office documents
+ to PDF), and is therefore not enabled on default installations.
+ - As with all other documents, paperless converts Office documents
+ to PDF and stores both the original as well as the archived PDF.
+- Dark mode
+ - Thanks to [Michael Shamoon](https://github.com/shamoon),
+ paperless now has a dark mode. Configuration is available in the
+ settings.
+- Other changes and additions
+ - The PDF viewer now uses a local copy of some dependencies
+ instead of fetching them from the internet. Thanks to
+ [slorenz](https://github.com/sisao).
+ - Revamped search bar styling thanks to [Michael
+ Shamoon](https://github.com/shamoon).
+ - Sorting in the document list by clicking on table headers.
+ - A button was added to the document detail page that assigns a
+ new ASN to a document.
+ - Form field validation: When providing invalid input in a form
+ (such as a duplicate ASN or no name), paperless now has visual
+ indicators and clearer error messages about what\'s wrong.
+ - Paperless disables buttons with network actions (such as save
+ and delete) when a network action is active. This indicates that
+ something is happening and prevents double clicking.
+ - When using \"Save & next\", the title field is focussed
+ automatically to better support keyboard editing.
+ - E-Mail: Added filter rule parameters to allow inline attachments
+ (watch out for mails with inlined images!) and attachment
+ filename filters with wildcards.
+ - Support for remote user authentication thanks to [Michael
+ Shamoon](https://github.com/shamoon). This is useful for hiding
+ Paperless behind single sign on applications such as
+ [authelia](https://www.authelia.com/).
+ - \"Clear filters\" has been renamed to \"Reset filters\" and now
+ correctly restores the default filters on saved views. Thanks to
+ [Michael Shamoon](https://github.com/shamoon)
+- Fixes
+ - Paperless was unable to save views when \"Not assigned\" was
+ chosen in one of the filter dropdowns.
+ - Clearer error messages when pre and post consumption scripts do
+ not exist.
+ - The post consumption script is executed later in the consumption
+ process. Before the change, an ID was passed to the script
+ referring to a document that did not yet exist in the database.
+
+### paperless-ng 0.9.11
+
+- Fixed an issue with the docker image not starting at all due to a
+ configuration change of the web server.
+
+### paperless-ng 0.9.10
+
+- Bulk editing
+ - Thanks to [Michael Shamoon](https://github.com/shamoon), we\'ve
+ got a new interface for the bulk editor.
+ - There are some configuration options in the settings to alter
+ the behavior.
+- Other changes and additions
+ - Thanks to [zjean](https://github.com/zjean), paperless now
+ publishes a webmanifest, which is useful for adding the
+ application to home screens on mobile devices.
+ - The Paperless-ng logo now navigates to the dashboard.
+ - Filter for documents that don\'t have any correspondents, types
+ or tags assigned.
+ - Tags, types and correspondents are now sorted case insensitive.
+ - Lots of preparation work for localization support.
+- Fixes
+ - Added missing dependencies for Raspberry Pi builds.
+ - Fixed an issue with plain text file consumption: Thumbnail
+ generation failed due to missing fonts.
+ - An issue with the search index reporting missing documents after
+ bulk deletes was fixed.
+ - Issue with the tag selector not clearing input correctly.
+ - The consumer used to stop working when encountering an
+ incomplete classifier model file.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+The bulk delete operations did not update the search index. Therefore,
+documents that you deleted remained in the index and caused the search
+to return messages about missing documents when searching. Further bulk
+operations will properly update the index.
+
+However, this change is not retroactive: If you used the delete method
+of the bulk editor, you need to reindex your search index by
+`running the management command document_index with the argument reindex `{.interpreted-text
+role="ref"}.
+:::
+
+### paperless-ng 0.9.9
+
+Christmas release!
+
+- Bulk editing
+ - Paperless now supports bulk editing.
+ - The following operations are available: Add and remove
+ correspondents, tags, document types from selected documents, as
+ well as mass-deleting documents.
+ - We\'ve got a more fancy UI in the works that makes these
+ features more accessible, but that\'s not quite ready yet.
+- Searching
+ - Paperless now supports searching for similar documents (\"More
+ like this\") both from the document detail page as well as from
+ individual search results.
+ - A search score indicates how well a document matches the search
+ query, or how similar a document is to a given reference
+ document.
+- Other additions and changes
+ - Clarification in the UI that the fields \"Match\" and \"Is
+ insensitive\" are not relevant for the Auto matching algorithm.
+ - New select interface for tags, types and correspondents allows
+ filtering. This also improves tag selection. Thanks again to
+ [Michael Shamoon](https://github.com/shamoon)!
+ - Page navigation controls for the document viewer, thanks to
+ [Michael Shamoon](https://github.com/shamoon).
+ - Layout changes to the small cards document list.
+ - The dashboard now displays the username (or full name if
+ specified in the admin) on the dashboard.
+- Fixes
+ - An error that caused the document importer to crash was fixed.
+ - An issue with changes not being possible when
+ `PAPERLESS_COOKIE_PREFIX` is used was fixed.
+ - The date selection filters now allow manual entry of dates.
+- Feature Removal
+ - Most of the guesswork features have been removed. Paperless no
+ longer tries to extract correspondents and tags from file names.
+
+### paperless-ng 0.9.8
+
+This release addresses two severe issues with the previous release.
+
+- The delete buttons for document types, correspondents and tags were
+ not working.
+- The document section in the admin was causing internal server errors
+ (500).
+
+### paperless-ng 0.9.7
+
+- Front end
+ - Thanks to the hard work of [Michael
+ Shamoon](https://github.com/shamoon), paperless now comes with a
+ much more streamlined UI for filtering documents.
+ - [Michael Shamoon](https://github.com/shamoon) replaced the
+ document preview with another component. This should fix
+ compatibility with Safari browsers.
+ - Added buttons to the management pages to quickly show all
+ documents with one specific tag, correspondent, or title.
+ - Paperless now stores your saved views on the server and
+ associates them with your user account. This means that you can
+ access your views on multiple devices and have separate views
+ for different users. You will have to recreate your views.
+ - The GitHub and documentation links now open in new tabs/windows.
+ Thanks to [rYR79435](https://github.com/rYR79435).
+ - Paperless now generates default saved view names when saving
+ views with certain filter rules.
+ - Added a small version indicator to the front end.
+- Other additions and changes
+ - The new filename format field `{tag_list}` inserts a list of
+ tags into the filename, separated by comma.
+ - The `document_retagger` no longer removes inbox tags or tags
+ without matching rules.
+ - The new configuration option `PAPERLESS_COOKIE_PREFIX` allows
+ you to run multiple instances of paperless on different ports.
+ This option enables you to be logged in into multiple instances
+ by specifying different cookie names for each instance.
+- Fixes
+ - Sometimes paperless would assign dates in the future to newly
+ consumed documents.
+ - The filename format fields `{created_month}` and `{created_day}`
+ now use a leading zero for single digit values.
+ - The filename format field `{tags}` can no longer be used without
+ arguments.
+ - Paperless was not able to consume many images (especially images
+ from mobile scanners) due to missing DPI information. Paperless
+ now assumes A4 paper size for PDF generation if no DPI
+ information is present.
+ - Documents with empty titles could not be opened from the table
+ view due to the link being empty.
+ - Fixed an issue with filenames containing special characters such
+ as `:` not being accepted for upload.
+ - Fixed issues with thumbnail generation for plain text files.
+
+### paperless-ng 0.9.6
+
+This release focusses primarily on many small issues with the UI.
+
+- Front end
+ - Paperless now has proper window titles.
+ - Fixed an issue with the small cards when more than 7 tags were
+ used.
+ - Navigation of the \"Show all\" links adjusted. They navigate to
+ the saved view now, if available in the sidebar.
+ - Some indication on the document lists that a filter is active
+ was added.
+ - There\'s a new filter to filter for documents that do _not_ have
+ a certain tag.
+ - The file upload box now shows upload progress.
+ - The document edit page was reorganized.
+ - The document edit page shows various information about a
+ document.
+ - An issue with the height of the preview was fixed.
+ - Table issues with too long document titles fixed.
+- API
+ - The API now serves file names with documents.
+ - The API now serves various metadata about documents.
+ - API documentation updated.
+- Other
+ - Fixed an issue with the docker image when a non-standard
+ PostgreSQL port was used.
+ - The docker image was trying check for installed languages before
+ actually installing them.
+ - `FILENAME_FORMAT` placeholder for document types.
+ - The filename formatter is now less restrictive with file names
+ and tries to conserve the original correspondents, types and
+ titles as much as possible.
+ - The filename formatter does not include the document ID in
+ filenames anymore. It will rather append `_01`, `_02`, etc when
+ it detects duplicate filenames.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+The changes to the filename format will apply to newly added documents
+and changed documents. If you want all files to reflect these changes,
+execute the `document_renamer` management command.
+:::
+
+### paperless-ng 0.9.5
+
+This release concludes the big changes I wanted to get rolled into
+paperless. The next releases before 1.0 will focus on fixing issues,
+primarily.
+
+- OCR
+ - Paperless now uses
+ [OCRmyPDF](https://github.com/jbarlow83/OCRmyPDF) to perform OCR
+ on documents. It still uses tesseract under the hood, but the
+ PDF parser of Paperless has changed considerably and will behave
+ different for some douments.
+ - OCRmyPDF creates archived PDF/A documents with embedded text
+ that can be selected in the front end.
+ - Paperless stores archived versions of documents alongside with
+ the originals. The originals can be accessed on the document
+ edit page. If available, a dropdown menu will appear next to the
+ download button.
+ - Many of the configuration options regarding OCR have changed.
+ See `configuration-ocr`{.interpreted-text role="ref"} for
+ details.
+ - Paperless no longer guesses the language of your documents. It
+ always uses the language that you specified with
+ `PAPERLESS_OCR_LANGUAGE`. Be sure to set this to the language
+ the majority of your documents are in. Multiple languages can be
+ specified, but that requires more CPU time.
+ - The management command
+ `document_archiver `{.interpreted-text
+ role="ref"} can be used to create archived versions for already
+ existing documents.
+- Tags from consumption folder.
+ - Thanks to [jayme-github](http://github.com/jayme-github),
+ paperless now consumes files from sub folders in the consumption
+ folder and is able to assign tags based on the sub folders a
+ document was found in. This can be configured with
+ `PAPERLESS_CONSUMER_RECURSIVE` and
+ `PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS`.
+- API
+ - The API now offers token authentication.
+ - The endpoint for uploading documents now supports specifying
+ custom titles, correspondents, tags and types. This can be used
+ by clients to override the default behavior of paperless. See
+ `api-file_uploads`{.interpreted-text role="ref"}.
+ - The document endpoint of API now serves documents in this form:
+ - correspondents, document types and tags are referenced by
+ their ID in the fields `correspondent`, `document_type` and
+ `tags`. The `*_id` versions are gone. These fields are
+ read/write.
+ - paperless does not serve nested tags, correspondents or
+ types anymore.
+- Front end
+ - Paperless does some basic caching of correspondents, tags and
+ types and will only request them from the server when necessary
+ or when entirely reloading the page.
+ - Document list fetching is about 10%-30% faster now, especially
+ when lots of tags/correspondents are present.
+ - Some minor improvements to the front end, such as document count
+ in the document list, better highlighting of the current page,
+ and improvements to the filter behavior.
+- Fixes:
+ - A bug with the generation of filenames for files with
+ unsupported types caused the exporter and document saving to
+ crash.
+ - Mail handling no longer exits entirely when encountering errors.
+ It will skip the account/rule/message on which the error
+ occured.
+ - Assigning correspondents from mail sender names failed for very
+ long names. Paperless no longer assigns correspondents in these
+ cases.
+
+### paperless-ng 0.9.4
+
+- Searching:
+ - Paperless now supports searching by tags, types and dates and
+ correspondents. In order to have this applied to your existing
+ documents, you need to perform a `document_index reindex`
+ management command (see `administration-index`{.interpreted-text
+ role="ref"}) that adds the data to the search index. You only
+ need to do this once, since the schema of the search index
+ changed. Paperless keeps the index updated after that whenever
+ something changes.
+ - Paperless now has spelling corrections (\"Did you mean\") for
+ miss-typed queries.
+ - The documentation contains
+ `information about the query syntax `{.interpreted-text
+ role="ref"}.
+- Front end:
+ - Clickable tags, correspondents and types allow quick filtering
+ for related documents.
+ - Saved views are now editable.
+ - Preview documents directly in the browser.
+ - Navigation from the dashboard to saved views.
+- Fixes:
+ - A severe error when trying to use post consume scripts.
+ - An error in the consumer that cause invalid messages of missing
+ files to show up in the log.
+- The documentation now contains information about bare metal installs
+ and a section about how to setup the development environment.
+
+### paperless-ng 0.9.3
+
+- Setting `PAPERLESS_AUTO_LOGIN_USERNAME` replaces
+ `PAPERLESS_DISABLE_LOGIN`. You have to specify your username.
+- Added a simple sanity checker that checks your documents for missing
+ or orphaned files, files with wrong checksums, inaccessible files,
+ and documents with empty content.
+- It is no longer possible to encrypt your documents. For the time
+ being, paperless will continue to operate with already encrypted
+ documents.
+- Fixes:
+ - Paperless now uses inotify again, since the watchdog was causing
+ issues which I was not aware of.
+ - Issue with the automatic classifier not working with only one
+ tag.
+ - A couple issues with the search index being opened to eagerly.
+- Added lots of tests for various parts of the application.
+
+### paperless-ng 0.9.2
+
+- Major changes to the front end (colors, logo, shadows, layout of the
+ cards, better mobile support)
+- Paperless now uses mime types and libmagic detection to determine if
+ a file type is supported and which parser to use. Removes all file
+ type checks that where present in MANY different places in
+ paperless.
+- Mail consumer now correctly consumes documents even when their
+ content type was not set correctly. (i.e. PDF documents with content
+ type `application/octet-stream`)
+- Basic sorting of mail rules added
+- Much better admin for mail rule editing.
+- Docker entrypoint script awaits the database server if it is
+ configured.
+- Disabled editing of logs.
+- New setting `PAPERLESS_OCR_PAGES` limits the tesseract parser to the
+ first n pages of scanned documents.
+- Fixed a bug where tasks with too long task names would not show up
+ in the admin.
+
+### paperless-ng 0.9.1
+
+- Moved documentation of the settings to the actual documentation.
+- Updated release script to force the user to choose between SQLite
+ and PostgreSQL. This avoids confusion when upgrading from paperless.
+
+### paperless-ng 0.9.0
+
+- **Deprecated:** GnuPG.
+ `See this note on the state of GnuPG in paperless-ng. `{.interpreted-text
+ role="ref"} This features will most likely be removed in future
+ versions.
+- **Added:** New frontend. Features:
+ - Single page application: It\'s much more responsive than the
+ django admin pages.
+ - Dashboard. Shows recently scanned documents, or todo notes, or
+ other documents at wish. Allows uploading of documents. Shows
+ basic statistics.
+ - Better document list with multiple display options.
+ - Full text search with result highlighting, auto completion and
+ scoring based on the query. It uses a document search index in
+ the background.
+ - Saveable filters.
+ - Better log viewer.
+- **Added:** Document types. Assign these to documents just as
+ correspondents. They may be used in the future to perform automatic
+ operations on documents depending on the type.
+- **Added:** Inbox tags. Define an inbox tag and it will automatically
+ be assigned to any new document scanned into the system.
+- **Added:** Automatic matching. A new matching algorithm that
+ automatically assigns tags, document types and correspondents to
+ your documents. It uses a neural network trained on your data.
+- **Added:** Archive serial numbers. Assign these to quickly find
+ documents stored in physical binders.
+- **Added:** Enabled the internal user management of django. This
+ isn\'t really a multi user solution, however, it allows more than
+ one user to access the website and set some basic permissions /
+ renew passwords.
+- **Modified \[breaking\]:** All new mail consumer with customizable
+ filters, actions and multiple account support. Replaces the old mail
+ consumer. The new mail consumer needs different configuration but
+ can be configured to act exactly like the old consumer.
+- **Modified:** Changes to the consumer:
+ - Now uses the excellent watchdog library that should make sure
+ files are discovered no matter what the platform is.
+ - The consumer now uses a task scheduler to run consumption
+ processes in parallel. This means that consuming many documents
+ should be much faster on systems with many cores.
+ - Concurrency is controlled with the new settings
+ `PAPERLESS_TASK_WORKERS` and `PAPERLESS_THREADS_PER_WORKER`. See
+ TODO for details on concurrency.
+ - The consumer no longer blocks the database for extended periods
+ of time.
+ - An issue with tesseract running multiple threads per page and
+ slowing down the consumer was fixed.
+- **Modified \[breaking\]:** REST Api changes:
+ - New filters added, other filters removed (case sensitive
+ filters, slug filters)
+ - Endpoints for thumbnails, previews and downloads replace the old
+ `/fetch/` urls. Redirects are in place.
+ - Endpoint for document uploads replaces the old `/push` url.
+ Redirects are in place.
+ - Foreign key relationships are now served as IDs, not as urls.
+- **Modified \[breaking\]:** PostgreSQL:
+ - If `PAPERLESS_DBHOST` is specified in the settings, paperless
+ uses PostgreSQL instead of SQLite. Username, database and
+ password all default to `paperless` if not specified.
+- **Modified \[breaking\]:** document_retagger management command
+ rework. See `utilities-retagger`{.interpreted-text role="ref"} for
+ details. Replaces `document_correspondents` management command.
+- **Removed \[breaking\]:** Reminders.
+- **Removed:** All customizations made to the django admin pages.
+- **Removed \[breaking\]:** The docker image no longer supports SSL.
+ If you want to expose paperless to the internet, hide paperless
+ behind a proxy server that handles SSL requests.
+- **Internal changes:** Mostly code cleanup, including:
+ - Rework of the code of the tesseract parser. This is now a lot
+ cleaner.
+ - Rework of the filename handling code. It was a mess.
+ - Fixed some issues with the document exporter not exporting all
+ documents when encountering duplicate filenames.
+ - Added a task scheduler that takes care of checking mail,
+ training the classifier, maintaining the document search index
+ and consuming documents.
+ - Updated dependencies. Now uses Pipenv all around.
+ - Updated Dockerfile and docker-compose. Now uses `supervisord` to
+ run everything paperless-related in a single container.
+- **Settings:**
+ - `PAPERLESS_FORGIVING_OCR` is now default and gone. Reason: Even
+ if `langdetect` fails to detect a language, tesseract still does
+ a very good job at ocr\'ing a document with the default
+ language. Certain language specifics such as umlauts may not get
+ picked up properly.
+ - `PAPERLESS_DEBUG` defaults to `false`.
+ - The presence of `PAPERLESS_DBHOST` now determines whether to use
+ PostgreSQL or SQLite.
+ - `PAPERLESS_OCR_THREADS` is gone and replaced with
+ `PAPERLESS_TASK_WORKERS` and `PAPERLESS_THREADS_PER_WORKER`.
+ Refer to the config example for details.
+ - `PAPERLESS_OPTIMIZE_THUMBNAILS` allows you to disable or enable
+ thumbnail optimization. This is useful on less powerful devices.
+- Many more small changes here and there. The usual stuff.
+
+## Paperless
+
+### 2.7.0
+
+- [syntonym](https://github.com/syntonym) submitted a pull request to
+ catch IMAP connection errors
+ [\#475](https://github.com/the-paperless-project/paperless/pull/475).
+- [Stéphane Brunner](https://github.com/sbrunner) added `psycopg2` to
+ the Pipfile
+ [\#489](https://github.com/the-paperless-project/paperless/pull/489).
+ He also fixed a syntax error in `docker-compose.yml.example`
+ [\#488](https://github.com/the-paperless-project/paperless/pull/488)
+ and added [DjangoQL](https://github.com/ivelum/djangoql), which
+ allows a litany of handy search functionality
+ [\#492](https://github.com/the-paperless-project/paperless/pull/492).
+- [CkuT](https://github.com/CkuT) and
+ [JOKer](https://github.com/MasterofJOKers) hacked out a simple, but
+ super-helpful optimisation to how the thumbnails are served up,
+ improving performance considerably
+ [\#481](https://github.com/the-paperless-project/paperless/pull/481).
+- [tsia](https://github.com/tsia) added a few fields to the tags REST
+ API.
+ [\#483](https://github.com/the-paperless-project/paperless/pull/483).
+- [Brian Cribbs](https://github.com/cribbstechnolog) improved the
+ documentation to help people using Paperless over NFS
+ [\#484](https://github.com/the-paperless-project/paperless/pull/484).
+- [Brendan M. Sleight](https://github.com/bmsleight) updated the
+ documentation to include a note for setting the `DEBUG` value. The
+ `paperless.conf.example` file was also updated to mirror the project
+ defaults.
+
+### 2.6.1
+
+- We now have a logo, complete with a favicon :-)
+- Removed some problematic tests.
+- Fix the docker-compose example config to include a shared consume
+ volume so that using the push API will work for users of the Docker
+ install. Thanks to [Colin Frei](https://github.com/colinfrei) for
+ fixing this in
+ [\#466](https://github.com/the-paperless-project/paperless/pull/466).
+- [khrise](https://github.com/khrise) submitted a pull request to
+ include the `added` property to the REST API
+ [\#471](https://github.com/the-paperless-project/paperless/pull/471).
+
+### 2.6.0
+
+- Allow an infinite number of logs to be deleted. Thanks to
+ [Ulli](https://github.com/Ulli2k) for noting the problem in
+ [\#433](https://github.com/the-paperless-project/paperless/issues/433).
+- Fix the `RecentCorrespondentsFilter` correspondents filter that was
+ added in 2.4 to play nice with the defaults. Thanks to
+ [tsia](https://github.com/tsia) and
+ [Sblop](https://github.com/Sblop) who pointed this out.
+ [\#423](https://github.com/the-paperless-project/paperless/issues/423).
+- Updated dependencies to include (among other things) a security
+ patch to requests.
+- Fix text in sample data for tests so that the language guesser stops
+ thinking that everything is in Catalan because we had _Lorem ipsum_
+ in there.
+- Tweaked the gunicorn sample command to use filesystem paths instead
+ of Python paths.
+ [\#441](https://github.com/the-paperless-project/paperless/pull/441)
+- Added pretty colour boxes next to the hex values in the Tags
+ section, thanks to a pull request from [Joshua
+ Taillon](https://github.com/jat255)
+ [\#442](https://github.com/the-paperless-project/paperless/pull/442).
+- Added a `.editorconfig` file to better specify coding style.
+- [Joshua Taillon](https://github.com/jat255) also added some logic to
+ tie Paperless\' date guessing logic into how it parses file names on
+ import.
+ [\#440](https://github.com/the-paperless-project/paperless/pull/440)
+
+### 2.5.0
+
+- **New dependency**: Paperless now optimises thumbnail generation
+ with [optipng](http://optipng.sourceforge.net/), so you\'ll need to
+ install that somewhere in your PATH or declare its location in
+ `PAPERLESS_OPTIPNG_BINARY`. The Docker image has already been
+ updated on the Docker Hub, so you just need to pull the latest one
+ from there if you\'re a Docker user.
+- \"Login free\" instances of Paperless were breaking whenever you
+ tried to edit objects in the admin: adding/deleting tags or
+ correspondents, or even fixing spelling. This was due to the \"user
+ hack\" we were applying to sessions that weren\'t using a login, as
+ that hack user didn\'t have a valid id. The fix was to attribute the
+ first user id in the system to this hack user.
+ [\#394](https://github.com/the-paperless-project/paperless/issues/394)
+- A problem in how we handle slug values on Tags and Correspondents
+ required a few changes to how we handle this field
+ [\#393](https://github.com/the-paperless-project/paperless/issues/393):
+ 1. Slugs are no longer editable. They\'re derived from the name of
+ the tag or correspondent at save time, so if you wanna change
+ the slug, you have to change the name, and even then you\'re
+ restricted to the rules of the `slugify()` function. The slug
+ value is still visible in the admin though.
+ 2. I\'ve added a migration to go over all existing tags &
+ correspondents and rewrite the `.slug` values to ones conforming
+ to the `slugify()` rules.
+ 3. The consumption process now uses the same rules as `.save()` in
+ determining a slug and using that to check for an existing
+ tag/correspondent.
+- An annoying bug in the date capture code was causing some bogus
+ dates to be attached to documents, which in turn busted the UI.
+ Thanks to [Andrew Peng](https://github.com/pengc99) for reporting
+ this.
+ [\#414](https://github.com/the-paperless-project/paperless/issues/414).
+- A bug in the Dockerfile meant that Tesseract language files weren\'t
+ being installed correctly. [euri10](https://github.com/euri10) was
+ quick to provide a fix:
+ [\#406](https://github.com/the-paperless-project/paperless/issues/406),
+ [\#413](https://github.com/the-paperless-project/paperless/pull/413).
+- Document consumption is now wrapped in a transaction as per an old
+ ticket
+ [\#262](https://github.com/the-paperless-project/paperless/issues/262).
+- The `get_date()` functionality of the parsers has been consolidated
+ onto the `DocumentParser` class since much of that code was
+ redundant anyway.
+
+### 2.4.0
+
+- A new set of actions are now available thanks to
+ [jonaswinkler](https://github.com/jonaswinkler)\'s very first pull
+ request! You can now do nifty things like tag documents in bulk, or
+ set correspondents in bulk.
+ [\#405](https://github.com/the-paperless-project/paperless/pull/405)
+- The import/export system is now a little smarter. By default,
+ documents are tagged as `unencrypted`, since exports are by their
+ nature unencrypted. It\'s now in the import step that we decide the
+ storage type. This allows you to export from an encrypted system and
+ import into an unencrypted one, or vice-versa.
+- The migration history has been slightly modified to accommodate
+ PostgreSQL users. Additionally, you can now tell paperless to use
+ PostgreSQL simply by declaring `PAPERLESS_DBUSER` in your
+ environment. This will attempt to connect to your Postgres database
+ without a password unless you also set `PAPERLESS_DBPASS`.
+- A bug was found in the REST API filter system that was the result of
+ an update of django-filter some time ago. This has now been patched
+ in
+ [\#412](https://github.com/the-paperless-project/paperless/issues/412).
+ Thanks to [thepill](https://github.com/thepill) for spotting it!
+
+### 2.3.0
+
+- Support for consuming plain text & markdown documents was added by
+ [Joshua Taillon](https://github.com/jat255)! This was a
+ long-requested feature, and it\'s addition is likely to be greatly
+ appreciated by the community:
+ [\#395](https://github.com/the-paperless-project/paperless/pull/395)
+ Thanks also to [David Martin](https://github.com/ddddavidmartin) for
+ his assistance on the issue.
+- [dubit0](https://github.com/dubit0) found & fixed a bug that
+ prevented management commands from running before we had an
+ operational database:
+ [\#396](https://github.com/the-paperless-project/paperless/pull/396)
+- Joshua also added a simple update to the thumbnail generation
+ process to improve performance:
+ [\#399](https://github.com/the-paperless-project/paperless/pull/399)
+- As his last bit of effort on this release, Joshua also added some
+ code to allow you to view the documents inline rather than download
+ them as an attachment.
+ [\#400](https://github.com/the-paperless-project/paperless/pull/400)
+- Finally, [ahyear](https://github.com/ahyear) found a slip in the
+ Docker documentation and patched it.
+ [\#401](https://github.com/the-paperless-project/paperless/pull/401)
+
+### 2.2.1
+
+- [Kyle Lucy](https://github.com/kmlucy) reported a bug quickly after
+ the release of 2.2.0 where we broke the `DISABLE_LOGIN` feature:
+ [\#392](https://github.com/the-paperless-project/paperless/issues/392).
+
+### 2.2.0
+
+- Thanks to [dadosch](https://github.com/dadosch), [Wolfgang
+ Mader](https://github.com/wmader), and [Tim
+ Brooks](https://github.com/brookst) this is the first version of
+ Paperless that supports Django 2.0! As a result of their hard work,
+ you can now also run Paperless on Python 3.7 as well:
+ [\#386](https://github.com/the-paperless-project/paperless/issues/386)
+ &
+ [\#390](https://github.com/the-paperless-project/paperless/pull/390).
+- [Stéphane Brunner](https://github.com/sbrunner) added a few lines of
+ code that made tagging interface a lot easier on those of us with
+ lots of different tags:
+ [\#391](https://github.com/the-paperless-project/paperless/pull/391).
+- [Kilian Koeltzsch](https://github.com/kiliankoe) noticed a bug in
+ how we capture & automatically create tags, so that\'s fixed now
+ too:
+ [\#384](https://github.com/the-paperless-project/paperless/issues/384).
+- [erikarvstedt](https://github.com/erikarvstedt) tweaked the
+ behaviour of the test suite to be better behaved for packaging
+ environments:
+ [\#383](https://github.com/the-paperless-project/paperless/pull/383).
+- [Lukasz Soluch](https://github.com/LukaszSolo) added CORS support to
+ make building a new Javascript-based front-end cleaner & easier:
+ [\#387](https://github.com/the-paperless-project/paperless/pull/387).
+
+### 2.1.0
+
+- [Enno Lohmeier](https://github.com/elohmeier) added three simple
+ features that make Paperless a lot more user (and developer)
+ friendly:
+ 1. There\'s a new search box on the front page:
+ [\#374](https://github.com/the-paperless-project/paperless/pull/374).
+ 2. The correspondents & tags pages now have a column showing the
+ number of relevant documents:
+ [\#375](https://github.com/the-paperless-project/paperless/pull/375).
+ 3. The Dockerfile has been tweaked to build faster for those of us
+ who are doing active development on Paperless using the Docker
+ environment:
+ [\#376](https://github.com/the-paperless-project/paperless/pull/376).
+- You now also have the ability to customise the interface to your
+ heart\'s content by creating a file called `overrides.css` and/or
+ `overrides.js` in the root of your media directory. Thanks to [Mark
+ McFate](https://github.com/SummittDweller) for this idea:
+ [\#371](https://github.com/the-paperless-project/paperless/issues/371)
+
+### 2.0.0
+
+This is a big release as we\'ve changed a core-functionality of
+Paperless: we no longer encrypt files with GPG by default.
+
+The reasons for this are many, but it boils down to that the encryption
+wasn\'t really all that useful, as files on-disk were still accessible
+so long as you had the key, and the key was most typically stored in the
+config file. In other words, your files are only as safe as the
+`paperless` user is. In addition to that, _the contents of the documents
+were never encrypted_, so important numbers etc. were always accessible
+simply by querying the database. Still, it was better than nothing, but
+the consensus from users appears to be that it was more an annoyance
+than anything else, so this feature is now turned off unless you
+explicitly set a passphrase in your config file.
+
+### Migrating from 1.x
+
+Encryption isn\'t gone, it\'s just off for new users. So long as you
+have `PAPERLESS_PASSPHRASE` set in your config or your environment,
+Paperless should continue to operate as it always has. If however, you
+want to drop encryption too, you only need to do two things:
+
+1. Run
+ `./manage.py migrate && ./manage.py change_storage_type gpg unencrypted`.
+ This will go through your entire database and Decrypt All The
+ Things.
+2. Remove `PAPERLESS_PASSPHRASE` from your `paperless.conf` file, or
+ simply stop declaring it in your environment.
+
+Special thanks to [erikarvstedt](https://github.com/erikarvstedt),
+[matthewmoto](https://github.com/matthewmoto), and
+[mcronce](https://github.com/mcronce) who did the bulk of the work on
+this big change.
+
+### 1.4.0
+
+- [Quentin Dawans](https://github.com/ovv) has refactored the document
+ consumer to allow for some command-line options. Notably, you can
+ now direct it to consume from a particular `--directory`, limit the
+ `--loop-time`, set the time between mail server checks with
+ `--mail-delta` or just run it as a one-off with `--one-shot`. See
+ [\#305](https://github.com/the-paperless-project/paperless/issues/305)
+ &
+ [\#313](https://github.com/the-paperless-project/paperless/pull/313)
+ for more information.
+- Refactor the use of travis/tox/pytest/coverage into two files:
+ `.travis.yml` and `setup.cfg`.
+- Start generating requirements.txt from a Pipfile. I\'ll probably
+ switch over to just using pipenv in the future.
+- All for a alternative FreeBSD-friendly location for
+ `paperless.conf`. Thanks to [Martin
+ Arendtsen](https://github.com/Arendtsen) who provided this
+ ([\#322](https://github.com/the-paperless-project/paperless/pull/322)).
+- Document consumption events are now logged in the Django admin
+ events log. Thanks to [CkuT](https://github.com/CkuT) for doing the
+ legwork on this one and to [Quentin Dawans](https://github.com/ovv)
+ & [David Martin](https://github.com/ddddavidmartin) for helping to
+ coordinate & work out how the feature would be developed.
+- [erikarvstedt](https://github.com/erikarvstedt) contributed a pull
+ request
+ ([\#328](https://github.com/the-paperless-project/paperless/pull/328))
+ to add `--noreload` to the default server start process. This helps
+ reduce the load imposed by the running webservice.
+- Through some discussion on
+ [\#253](https://github.com/the-paperless-project/paperless/issues/253)
+ and
+ [\#323](https://github.com/the-paperless-project/paperless/issues/323),
+ we\'ve removed a few of the hardcoded URL values to make it easier
+ for people to host Paperless on a subdirectory. Thanks to [Quentin
+ Dawans](https://github.com/ovv) and [Kyle
+ Lucy](https://github.com/kmlucy) for helping to work this out.
+- The clickable area for documents on the listing page has been
+ increased to a more predictable space thanks to a glorious hack from
+ [erikarvstedt](https://github.com/erikarvstedt) in
+ [\#344](https://github.com/the-paperless-project/paperless/pull/344).
+- [Strubbl](https://github.com/strubbl) noticed an annoying bug in the
+ bash script wrapping the Docker entrypoint and fixed it with some
+ very creating Bash skills:
+ [\#352](https://github.com/the-paperless-project/paperless/pull/352).
+- You can now use the search field to find documents by tag thanks to
+ [thinkjk](https://github.com/thinkjk)\'s _first ever issue_:
+ [\#354](https://github.com/the-paperless-project/paperless/issues/354).
+- Inotify is now being used to detect additions to the consume
+ directory thanks to some excellent work from
+ [erikarvstedt](https://github.com/erikarvstedt) on
+ [\#351](https://github.com/the-paperless-project/paperless/pull/351)
+
+### 1.3.0
+
+- You can now run Paperless without a login, though you\'ll still have
+ to create at least one user. This is thanks to a pull-request from
+ [matthewmoto](https://github.com/matthewmoto):
+ [\#295](https://github.com/the-paperless-project/paperless/pull/295).
+ Note that logins are still required by default, and that you need to
+ disable them by setting `PAPERLESS_DISABLE_LOGIN="true"` in your
+ environment or in `/etc/paperless.conf`.
+- Fix for
+ [\#303](https://github.com/the-paperless-project/paperless/issues/303)
+ where sketchily-formatted documents could cause the consumer to
+ break and insert half-records into the database breaking all sorts
+ of things. We now capture the return codes of both `convert` and
+ `unpaper` and fail-out nicely.
+- Fix for additional date types thanks to input from
+ [Isaac](https://github.com/isaacsando) and code from
+ [BastianPoe](https://github.com/BastianPoe)
+ ([\#301](https://github.com/the-paperless-project/paperless/issues/301)).
+- Fix for running migrations in the Docker container
+ ([\#299](https://github.com/the-paperless-project/paperless/issues/299)).
+ Thanks to [Georgi Todorov](https://github.com/TeraHz) for the fix
+ ([\#300](https://github.com/the-paperless-project/paperless/pull/300))
+ and to [Pit](https://github.com/pitkley) for the review.
+- Fix for Docker cases where the issuing user is not UID 1000. This
+ was a collaborative fix between [Jeffrey
+ Portman](https://github.com/ChromoX) and
+ [Pit](https://github.com/pitkley) in
+ [\#311](https://github.com/the-paperless-project/paperless/pull/311)
+ and
+ [\#312](https://github.com/the-paperless-project/paperless/pull/312)
+ to fix
+ [\#306](https://github.com/the-paperless-project/paperless/issues/306).
+- Patch the historical migrations to support MySQL\'s um,
+ _interesting_ way of handing indexes
+ ([\#308](https://github.com/the-paperless-project/paperless/issues/308)).
+ Thanks to [Simon Taddiken](https://github.com/skuzzle) for reporting
+ the problem and helping me find where to fix it.
+
+### 1.2.0
+
+- New Docker image, now based on Alpine, thanks to the efforts of
+ [addadi](https://github.com/addadi) and
+ [Pit](https://github.com/pitkley). This new image is dramatically
+ smaller than the Debian-based one, and it also has [a new home on
+ Docker Hub](https://hub.docker.com/r/danielquinn/paperless/). A
+ proper thank-you to [Pit](https://github.com/pitkley) for hosting
+ the image on his Docker account all this time, but after some
+ discussion, we decided the image needed a more _official-looking_
+ home.
+- [BastianPoe](https://github.com/BastianPoe) has added the
+ long-awaited feature to automatically skip the OCR step when the PDF
+ already contains text. This can be overridden by setting
+ `PAPERLESS_OCR_ALWAYS=YES` either in your `paperless.conf` or in the
+ environment. Note that this also means that Paperless now requires
+ `libpoppler-cpp-dev` to be installed. **Important**: You\'ll need to
+ run `pip install -r requirements.txt` after the usual `git pull` to
+ properly update.
+- [BastianPoe](https://github.com/BastianPoe) has also contributed a
+ monumental amount of work
+ ([\#291](https://github.com/the-paperless-project/paperless/pull/291))
+ to solving
+ [\#158](https://github.com/the-paperless-project/paperless/issues/158):
+ setting the document creation date based on finding a date in the
+ document text.
+
+### 1.1.0
+
+- Fix for
+ [\#283](https://github.com/the-paperless-project/paperless/issues/283),
+ a redirect bug which broke interactions with paperless-desktop.
+ Thanks to [chris-aeviator](https://github.com/chris-aeviator) for
+ reporting it.
+- Addition of an optional new financial year filter, courtesy of
+ [David Martin](https://github.com/ddddavidmartin)
+ [\#256](https://github.com/the-paperless-project/paperless/pull/256)
+- Fixed a typo in how thumbnails were named in exports
+ [\#285](https://github.com/the-paperless-project/paperless/pull/285),
+ courtesy of [Dan Panzarella](https://github.com/pzl)
+
+### 1.0.0
+
+- Upgrade to Django 1.11. **You\'ll need to run \`\`pip install -r
+ requirements.txt\`\` after the usual \`\`git pull\`\` to properly
+ update**.
+- Replace the templatetag-based hack we had for document listing in
+ favour of a slightly less ugly solution in the form of another
+ template tag with less copypasta.
+- Support for multi-word-matches for auto-tagging thanks to an
+ excellent patch from [ishirav](https://github.com/ishirav)
+ [\#277](https://github.com/the-paperless-project/paperless/pull/277).
+- Fixed a CSS bug reported by [Stefan Hagen](https://github.com/xkpd3)
+ that caused an overlapping of the text and checkboxes under some
+ resolutions
+ [\#272](https://github.com/the-paperless-project/paperless/issues/272).
+- Patched the Docker config to force the serving of static files.
+ Credit for this one goes to [dev-rke](https://github.com/dev-rke)
+ via
+ [\#248](https://github.com/the-paperless-project/paperless/issues/248).
+- Fix file permissions during Docker start up thanks to
+ [Pit](https://github.com/pitkley) on
+ [\#268](https://github.com/the-paperless-project/paperless/pull/268).
+- Date fields in the admin are now expressed as HTML5 date fields
+ thanks to [Lukas Winkler](https://github.com/Findus23)\'s issue
+ [\#278](https://github.com/the-paperless-project/paperless/issues/248)
+
+### 0.8.0
+
+- Paperless can now run in a subdirectory on a host (`/paperless`),
+ rather than always running in the root (`/`) thanks to
+ [maphy-psd](https://github.com/maphy-psd)\'s work on
+ [\#255](https://github.com/the-paperless-project/paperless/pull/255).
+
+### 0.7.0
+
+- **Potentially breaking change**: As per
+ [\#235](https://github.com/the-paperless-project/paperless/issues/235),
+ Paperless will no longer automatically delete documents attached to
+ correspondents when those correspondents are themselves deleted.
+ This was Django\'s default behaviour, but didn\'t make much sense in
+ Paperless\' case. Thanks to [Thomas
+ Brueggemann](https://github.com/thomasbrueggemann) and [David
+ Martin](https://github.com/ddddavidmartin) for their input on this
+ one.
+- Fix for
+ [\#232](https://github.com/the-paperless-project/paperless/issues/232)
+ wherein Paperless wasn\'t recognising `.tif` files properly. Thanks
+ to [ayounggun](https://github.com/ayounggun) for reporting this one
+ and to [Kusti Skytén](https://github.com/kskyten) for posting the
+ correct solution in the Github issue.
+
+### 0.6.0
+
+- Abandon the shared-secret trick we were using for the POST API in
+ favour of BasicAuth or Django session.
+- Fix the POST API so it actually works.
+ [\#236](https://github.com/the-paperless-project/paperless/issues/236)
+- **Breaking change**: We\'ve dropped the use of
+ `PAPERLESS_SHARED_SECRET` as it was being used both for the API (now
+ replaced with a normal auth) and form email polling. Now that we\'re
+ only using it for email, this variable has been renamed to
+ `PAPERLESS_EMAIL_SECRET`. The old value will still work for a while,
+ but you should change your config if you\'ve been using the email
+ polling feature. Thanks to [Joshua
+ Gilman](https://github.com/jmgilman) for all the help with this
+ feature.
+
+### 0.5.0
+
+- Support for fuzzy matching in the auto-tagger & auto-correspondent
+ systems thanks to [Jake Gysland](https://github.com/jgysland)\'s
+ patch
+ [\#220](https://github.com/the-paperless-project/paperless/pull/220).
+- Modified the Dockerfile to prepare an export directory
+ ([\#212](https://github.com/the-paperless-project/paperless/pull/212)).
+ Thanks to combined efforts from [Pit](https://github.com/pitkley)
+ and [Strubbl](https://github.com/strubbl) in working out the kinks
+ on this one.
+- Updated the import/export scripts to include support for thumbnails.
+ Big thanks to [CkuT](https://github.com/CkuT) for finding this
+ shortcoming and doing the work to get it fixed in
+ [\#224](https://github.com/the-paperless-project/paperless/pull/224).
+- All of the following changes are thanks to [David
+ Martin](https://github.com/ddddavidmartin): \* Bumped the dependency on pyocr to 0.4.7 so new users can make use
+ of Tesseract 4 if they so prefer
+ ([\#226](https://github.com/the-paperless-project/paperless/pull/226)).
+ - Fixed a number of issues with the automated mail handler
+ ([\#227](https://github.com/the-paperless-project/paperless/pull/227),
+ [\#228](https://github.com/the-paperless-project/paperless/pull/228))
+ - Amended the documentation for better handling of systemd service
+ files
+ ([\#229](https://github.com/the-paperless-project/paperless/pull/229))
+ - Amended the Django Admin configuration to have nice headers
+ ([\#230](https://github.com/the-paperless-project/paperless/pull/230))
+
+### 0.4.1
+
+- Fix for
+ [\#206](https://github.com/the-paperless-project/paperless/issues/206)
+ wherein the pluggable parser didn\'t recognise files with all-caps
+ suffixes like `.PDF`
+
+### 0.4.0
+
+- Introducing reminders. See
+ [\#199](https://github.com/the-paperless-project/paperless/issues/199)
+ for more information, but the short explanation is that you can now
+ attach simple notes & times to documents which are made available
+ via the API. Currently, the default API (basically just the Django
+ admin) doesn\'t really make use of this, but [Thomas
+ Brueggemann](https://github.com/thomasbrueggemann) over at
+ [Paperless
+ Desktop](https://github.com/thomasbrueggemann/paperless-desktop) has
+ said that he would like to make use of this feature in his project.
+
+### 0.3.6
+
+- Fix for
+ [\#200](https://github.com/the-paperless-project/paperless/issues/200)
+ (!!) where the API wasn\'t configured to allow updating the
+ correspondent or the tags for a document.
+- The `content` field is now optional, to allow for the edge case of a
+ purely graphical document.
+- You can no longer add documents via the admin. This never worked in
+ the first place, so all I\'ve done here is remove the link to the
+ broken form.
+- The consumer code has been heavily refactored to support a pluggable
+ interface. Install a paperless consumer via pip and tell paperless
+ about it with an environment variable, and you\'re good to go.
+ Proper documentation is on its way.
+
+### 0.3.5
+
+- A serious facelift for the documents listing page wherein we drop
+ the tabular layout in favour of a tiled interface.
+- Users can now configure the number of items per page.
+- Fix for
+ [\#171](https://github.com/the-paperless-project/paperless/issues/171):
+ Allow users to specify their own `SECRET_KEY` value.
+- Moved the dotenv loading to the top of settings.py
+- Fix for
+ [\#112](https://github.com/the-paperless-project/paperless/issues/112):
+ Added checks for binaries required for document consumption.
+
+### 0.3.4
+
+- Removal of django-suit due to a licensing conflict I bumped into in
+ 0.3.3. Note that you _can_ use Django Suit with Paperless, but only
+ in a non-profit situation as their free license prohibits for-profit
+ use. As a result, I can\'t bundle Suit with Paperless without
+ conflicting with the GPL. Further development will be done against
+ the stock Django admin.
+- I shrunk the thumbnails a little \'cause they were too big for me,
+ even on my high-DPI monitor.
+- BasicAuth support for document and thumbnail downloads, as well as
+ the Push API thanks to \@thomasbrueggemann. See
+ [\#179](https://github.com/the-paperless-project/paperless/pull/179).
+
+### 0.3.3
+
+- Thumbnails in the UI and a Django-suit -based face-lift courtesy of
+ \@ekw!
+- Timezone, items per page, and default language are now all
+ configurable, also thanks to \@ekw.
+
+### 0.3.2
+
+- Fix for
+ [\#172](https://github.com/the-paperless-project/paperless/issues/172):
+ defaulting ALLOWED_HOSTS to `["*"]` and allowing the user to set
+ her own value via `PAPERLESS_ALLOWED_HOSTS` should the need arise.
+
+### 0.3.1
+
+- Added a default value for `CONVERT_BINARY`
+
+### 0.3.0
+
+- Updated to using django-filter 1.x
+- Added some system checks so new users aren\'t confused by
+ misconfigurations.
+- Consumer loop time is now configurable for systems with slow writes.
+ Just set `PAPERLESS_CONSUMER_LOOP_TIME` to a number of seconds. The
+ default is 10.
+- As per
+ [\#44](https://github.com/the-paperless-project/paperless/issues/44),
+ we\'ve removed support for `PAPERLESS_CONVERT`, `PAPERLESS_CONSUME`,
+ and `PAPERLESS_SECRET`. Please use `PAPERLESS_CONVERT_BINARY`,
+ `PAPERLESS_CONSUMPTION_DIR`, and `PAPERLESS_SHARED_SECRET`
+ respectively instead.
+
+### 0.2.0
+
+- [\#150](https://github.com/the-paperless-project/paperless/pull/150):
+ The media root is now a variable you can set in `paperless.conf`.
+- [\#148](https://github.com/the-paperless-project/paperless/pull/148):
+ The database location (sqlite) is now a variable you can set in
+ `paperless.conf`.
+- [\#146](https://github.com/the-paperless-project/paperless/issues/146):
+ Fixed a bug that allowed unauthorised access to the `/fetch` URL.
+- [\#131](https://github.com/the-paperless-project/paperless/issues/131):
+ Document files are now automatically removed from disk when they\'re
+ deleted in Paperless.
+- [\#121](https://github.com/the-paperless-project/paperless/issues/121):
+ Fixed a bug where Paperless wasn\'t setting document creation time
+ based on the file naming scheme.
+- [\#81](https://github.com/the-paperless-project/paperless/issues/81):
+ Added a hook to run an arbitrary script after every document is
+ consumed.
+- [\#98](https://github.com/the-paperless-project/paperless/issues/98):
+ Added optional environment variables for ImageMagick so that it
+ doesn\'t explode when handling Very Large Documents or when it\'s
+ just running on a low-memory system. Thanks to [Florian
+ Harr](https://github.com/evils) for his help on this one.
+- [\#89](https://github.com/the-paperless-project/paperless/issues/89)
+ Ported the auto-tagging code to correspondents as well. Thanks to
+ [Justin Snyman](https://github.com/stringlytyped) for the pointers
+ in the issue queue.
+- Added support for guessing the date from the file name along with
+ the correspondent, title, and tags. Thanks to [Tikitu de
+ Jager](https://github.com/tikitu) for his pull request that I took
+ forever to merge and to [Pit](https://github.com/pitkley) for his
+ efforts on the regex front.
+- [\#94](https://github.com/the-paperless-project/paperless/issues/94):
+ Restored support for changing the created date in the UI. Thanks to
+ [Martin Honermeyer](https://github.com/djmaze) and [Tim
+ White](https://github.com/timwhite) for working with me on this.
+
+### 0.1.1
+
+- Potentially **Breaking Change**: All references to \"sender\" in the
+ code have been renamed to \"correspondent\" to better reflect the
+ nature of the property (one could quite reasonably scan a document
+ before sending it to someone.)
+- [\#67](https://github.com/the-paperless-project/paperless/issues/67):
+ Rewrote the document exporter and added a new importer that allows
+ for full metadata retention without depending on the file name and
+ modification time. A big thanks to [Tikitu de
+ Jager](https://github.com/tikitu),
+ [Pit](https://github.com/pitkley), [Florian
+ Jung](https://github.com/the01), and [Christopher
+ Luu](https://github.com/nuudles) for their code snippets and
+ contributing conversation that lead to this change.
+- [\#20](https://github.com/the-paperless-project/paperless/issues/20):
+ Added _unpaper_ support to help in cleaning up the scanned image
+ before it\'s OCR\'d. Thanks to [Pit](https://github.com/pitkley) for
+ this one.
+- [\#71](https://github.com/the-paperless-project/paperless/issues/71)
+ Added (encrypted) thumbnails in anticipation of a proper UI.
+- [\#68](https://github.com/the-paperless-project/paperless/issues/68):
+ Added support for using a proper config file at
+ `/etc/paperless.conf` and modified the systemd unit files to use it.
+- Refactored the Vagrant installation process to use environment
+ variables rather than asking the user to modify `settings.py`.
+- [\#44](https://github.com/the-paperless-project/paperless/issues/44):
+ Harmonise environment variable names with constant names.
+- [\#60](https://github.com/the-paperless-project/paperless/issues/60):
+ Setup logging to actually use the Python native logging framework.
+- [\#53](https://github.com/the-paperless-project/paperless/issues/53):
+ Fixed an annoying bug that caused `.jpeg` and `.JPG` images to be
+ imported but made unavailable.
+
+### 0.1.0
+
+- Docker support! Big thanks to [Wayne
+ Werner](https://github.com/waynew), [Brian
+ Conn](https://github.com/TheConnMan), and [Tikitu de
+ Jager](https://github.com/tikitu) for this one, and especially to
+ [Pit](https://github.com/pitkley) who spearheadded this effort.
+- A simple REST API is in place, but it should be considered unstable.
+- Cleaned up the consumer to use temporary directories instead of a
+ single scratch space. (Thanks [Pit](https://github.com/pitkley))
+- Improved the efficiency of the consumer by parsing pages more
+ intelligently and introducing a threaded OCR process (thanks again
+ [Pit](https://github.com/pitkley)).
+- [\#45](https://github.com/the-paperless-project/paperless/issues/45):
+ Cleaned up the logic for tag matching. Reported by
+ [darkmatter](https://github.com/darkmatter).
+- [\#47](https://github.com/the-paperless-project/paperless/issues/47):
+ Auto-rotate landscape documents. Reported by
+ [Paul](https://github.com/polo2ro) and fixed by
+ [Pit](https://github.com/pitkley).
+- [\#48](https://github.com/the-paperless-project/paperless/issues/48):
+ Matching algorithms should do so on a word boundary
+ ([darkmatter](https://github.com/darkmatter))
+- [\#54](https://github.com/the-paperless-project/paperless/issues/54):
+ Documented the re-tagger ([zedster](https://github.com/zedster))
+- [\#57](https://github.com/the-paperless-project/paperless/issues/57):
+ Make sure file is preserved on import failure
+ ([darkmatter](https://github.com/darkmatter))
+- Added tox with pep8 checking
+
+### 0.0.6
+
+- Added support for parallel OCR (significant work from
+ [Pit](https://github.com/pitkley))
+- Sped up the language detection (significant work from
+ [Pit](https://github.com/pitkley))
+- Added simple logging
+
+### 0.0.5
+
+- Added support for image files as documents (png, jpg, gif, tiff)
+- Added a crude means of HTTP POST for document imports
+- Added IMAP mail support
+- Added a re-tagging utility
+- Documentation for the above as well as data migration
+
+### 0.0.4
+
+- Added automated tagging basted on keyword matching
+- Cleaned up the document listing page
+- Removed `User` and `Group` from the admin
+- Added `pytz` to the list of requirements
+
+### 0.0.3
+
+- Added basic tagging
+
+### 0.0.2
+
+- Added language detection
+- Added datestamps to `document_exporter`.
+- Changed `settings.TESSERACT_LANGUAGE` to `settings.OCR_LANGUAGE`.
+
+### 0.0.1
+
+- Initial release
diff --git a/docs/changelog.rst b/docs/changelog.rst
deleted file mode 100644
index 984c86075..000000000
--- a/docs/changelog.rst
+++ /dev/null
@@ -1,1787 +0,0 @@
-
-.. _paperless_changelog:
-
-*********
-Changelog
-*********
-
-paperless-ngx 1.7.0
-###################
-
-Breaking Changes
-
-* ``PAPERLESS_URL`` is now required when using a reverse proxy. See `#674`_.
-
-Features
-
-* Allow setting more than one tag in mail rules `@jonasc`_ (#270)
-* global drag'n'drop `@shamoon`_ (#283).
-* Fix: download buttons should disable while waiting `@shamoon`_ (#630).
-* Update checker `@shamoon`_ (#591).
-* Show prompt on password-protected pdfs `@shamoon`_ (#564).
-* Filtering query params aka browser navigation for filtering `@shamoon`_ (#540).
-* Clickable tags in dashboard widgets `@shamoon`_ (#515).
-* Add bottom pagination `@shamoon`_ (#372).
-* Feature barcode splitter `@gador`_ (#532).
-* App loading screen `@shamoon`_ (#298).
-* Use progress bar for delayed buttons `@shamoon`_ (#415).
-* Add minimum length for documents text filter `@shamoon`_ (#401).
-* Added nav buttons in the document detail view `@GruberViktor`_ (#273).
-* Improve date keyboard input `@shamoon`_ (#253).
-* Color theming `@shamoon`_ (#243).
-* Parse dates when entered without separators `@GruberViktor`_ (#250).
-
-Bug Fixes
-
-* add "localhost" to ALLOWED_HOSTS `@gador`_ (#700).
-* Fix: scanners table `@qcasey`_ (#690).
-* Adds wait for file before consuming `@stumpylog`_ (#483).
-* Fix: frontend document editing erases time data `@shamoon`_ (#654).
-* Increase length of SavedViewFilterRule `@stumpylog`_ (#612).
-* Fixes attachment filename matching during mail fetching `@stumpylog`_ (#680).
-* Add ``PAPERLESS_URL`` env variable & CSRF var `@shamoon`_ (#674).
-* Fix: download buttons should disable while waiting `@shamoon`_ (#630).
-* Fixes downloaded filename, add more consumer ignore settings `@stumpylog`_ (#599).
-* FIX BUG: case-sensitive matching was not possible `@danielBreitlauch`_ (#594).
-* uses shutil.move instead of rename `@gador`_ (#617).
-* Fix npm deps 01.02.22 2 `@shamoon`_ (#610).
-* Fix npm dependencies 01.02.22 `@shamoon`_ (#600).
-* fix issue 416: implement PAPERLESS_OCR_MAX_IMAGE_PIXELS `@hacker-h`_ (#441).
-* fix: exclude cypress from build in Dockerfile `@FrankStrieter`_ (#526).
-* Corrections to pass pre-commit hooks `@schnuffle`_ (#454).
-* Fix 311 unable to click checkboxes in document list `@shamoon`_ (#313).
-* Fix imap tools bug `@stumpylog`_ (#393).
-* Fix filterable dropdown buttons arent translated `@shamoon`_ (#366).
-* Fix 224: "Auto-detected date is day before receipt date" `@a17t`_ (#246).
-* Fix minor sphinx errors `@shamoon`_ (#322).
-* Fix page links hidden `@shamoon`_ (#314).
-* Fix: Include excluded items in dropdown count `@shamoon`_ (#263).
-
-Translation
-
-* `@miku323`_ contributed to Slovenian translation.
-* `@FaintGhost`_ contributed to Chinese Simplified translation.
-* `@DarkoBG79`_ contributed to Serbian translation.
-* `Kemal Secer`_ contributed to Turkish translation.
-* `@Prominence`_ contributed to Belarusian translation.
-
-Documentation
-
-* Fix: scanners table `@qcasey`_ (#690).
-* Add `PAPERLESS_URL` env variable & CSRF var `@shamoon`_ (#674).
-* Fixes downloaded filename, add more consumer ignore settings `@stumpylog`_ (#599).
-* fix issue 416: implement ``PAPERLESS_OCR_MAX_IMAGE_PIXELS`` `@hacker-h`_ (#441).
-* Fix minor sphinx errors `@shamoon`_ (#322).
-
-Maintenance
-
-* Add ``PAPERLESS_URL`` env variable & CSRF var `@shamoon`_ (#674).
-* Chore: Implement release-drafter action for Changelogs `@qcasey`_ (#669).
-* Chore: Add CODEOWNERS `@qcasey`_ (#667).
-* Support docker-compose v2 in install `@stumpylog`_ (#611).
-* Add Belarusian localization `@shamoon`_ (#588).
-* Add Turkish localization `@shamoon`_ (#536).
-* Add Serbian localization `@shamoon`_ (#504).
-* Create PULL_REQUEST_TEMPLATE.md `@shamoon`_ (#304).
-* Add Chinese localization `@shamoon`_ (#247).
-* Add Slovenian language for frontend `@shamoon`_ (#315).
-
-paperless-ngx 1.6.0
-###################
-
-This is the first release of the revived paperless-ngx project 🎉. Thank you to everyone on the paperless-ngx team for your initiative and excellent teamwork!
-
-Version 1.6.0 merges several pending PRs from jonaswinkler's repo and includes new feature updates and bug fixes. Major backend and UI changes include:
-
-* Updated docs, scripts, CI, and containers to paperless-ngx.
-* Updated Python and Angular dependencies.
-* Dropped support for Python 3.7.
-* Dropped support for Ansible playbooks (thanks `@slankes`_ #109). If someone would like to continue supporting them, please see the `ansible repo`_.
-* Python code is now required to use Black formatting (thanks `@kpj`_ #168).
-* `@tribut`_ added support for a custom SSO logout redirect (jonaswinkler#1258). See ``PAPERLESS_LOGOUT_REDIRECT_URL``.
-* `@shamoon`_ added a loading indicator when document list is reloading (jonaswinkler#1297).
-* `@shamoon`_ improved the PDF viewer on mobile (#2).
-* `@shamoon`_ added 'any' / 'all' and 'not' filtering with tags (#10).
-* `@shamoon`_ added warnings for unsaved changes, with smart edit buttons (#13).
-* `@benjaminfrank`_ enabled a non-root access to port 80 via systemd (#18).
-* `@tribut`_ added simple "delete to trash" functionality (#24). See ``PAPERLESS_TRASH_DIR``.
-* `@amenk`_ fixed the search box overlay menu on mobile (#32).
-* `@dblitt`_ updated the login form to not auto-capitalize usernames (#36).
-* `@evilsidekick293`_ made the worker timeout configurable (#37). See ``PAPERLESS_WORKER_TIMEOUT``.
-* `@Nicarim`_ fixed downloads of UTF-8 formatted documents in Firefox (#56).
-* `@mweimerskirch`_ sorted the language dropdown by locale (#78).
-* `@mweimerskirch`_ enabled the Czech (#83) and Danish (#84) translations.
-* `@cschmatzler`_ enabled specifying the webserver port (#124). See ``PAPERLESS_PORT``.
-* `@muellermartin`_ fixed an error when uploading transparent PNGs (#133).
-* `@shamoon`_ created a slick new logo (#165).
-* `@tim-vogel`_ fixed exports missing groups (#193).
-
-Known issues:
-
-* 1.6.0 included a malformed package-lock.json, as a result users who want to build the docker image themselves need to change line 6 of the ``Dockerfile`` to ``RUN npm update npm -g && npm install --legacy-peer-deps``.
-
-Thank you to the following people for their documentation updates, fixes, and comprehensive testing:
-
-`@m0veax`_, `@a17t`_, `@fignew`_, `@muued`_, `@bauerj`_, `@isigmund`_, `@denilsonsa`_, `@mweimerskirch`_, `@alexander-bauer`_, `@apeltzer`_, `@tribut`_, `@yschroeder`_, `@gador`_, `@sAksham-Ar`_, `@sbrunner`_, `@philpagel`_, `@davemachado`_, `@2600box`_, `@qcasey`_, `@Nicarim`_, `@kpj`_, `@filcuk`_, `@Timoms`_, `@mattlamb99`_, `@padraigkitterick`_, `@ajkavanagh`_, `@Tooa`_, `@Unkn0wnCat`_, `@pewter77`_, `@stumpylog`_, `@Toxix`_, `@azapater`_, `@jschpp`_
-
-Another big thanks to the people who have contributed translations:
-
-* Michel Weimerskirch (michel_weimerskirch) suggested 31 translations into French and Luxembourgish.
-* jo.vandeginste suggested 21 translations into Dutch.
-* Lars Sørensen (Lrss) suggested 486 translations into Danish.
-* Alex (Sky-Dragon) voted for 46 translations in German.
-* Yannic Schröder (yschroeder) suggested 14 translations into German.
-* David Morais Ferreira (DavidMoraisFerreira) voted for 10 translations in Portuguese and Luxembourgish.
-* David Morais Ferreira (DavidMoraisFerreira) suggested 88 translations into French, German, Portuguese, Portuguese, Brazilian and Luxembourgish.
-* æ±ªæ³ æ²£ (wlfcss) suggested 13 translations into Chinese Traditional.
-* Lars Sørensen (Lrss) suggested 167 translations into Danish.
-* Philmo67 suggested 11 translations into French.
-
-Paperless-ng
-############
-
-paperless-ng 1.5.0
-==================
-
-Support for Python 3.6 was dropped.
-
-* Updated python dependencies.
-* Base image of the docker image changed from Debian Buster to Debian Bullseye due to its recent release.
-* The docker image now uses python 3.9.
-* Added the Luxembourgish locale. Thanks for translating!
-* `Daniel Albers`_ added support for making the files and folders ignored by the paperless consume folder scanner configurable. See ``PAPERLESS_CONSUMER_IGNORE_PATTERNS``.
-
-paperless-ng 1.4.5
-==================
-
-This is a maintenance release.
-
-* Updated Python and Angular dependencies.
-* Changed the algorithm that changes permissions during startup. This is still fast,
- and will hopefully cause less issues.
-* Fixed an issue that would sometimes cause paperless to write an incomplete
- classification model file to disk.
-* Fixed an issue with the OCRmyPDF parser that would always try to extract text
- with PDFminer even from non-PDF files.
-
-paperless-ng 1.4.4
-==================
-
-* Drastically decreased the startup time of the docker container. The startup script adjusts file permissions of all data only if changes are required.
-* Paperless mail: Added ability to specify the character set for each server.
-* Document consumption: Ignore Mac OS specific files such as ``.DS_STORE`` and ``._XXXXX.pdf``.
-* Fixed an issue with the automatic matching algorithm that prevents paperless from consuming new files.
-* Updated translations.
-
-paperless-ng 1.4.3
-==================
-
-* Additions and changes
-
- * Added Swedish locale.
- * `Stéphane Brunner`_ added an option to disable the progress bars of all management commands.
- * `Jo Vandeginste`_ added support for RTF documents to the Apache TIKA parser.
- * `Michael Shamoon`_ added dark mode for the login and logout pages.
- * `Alexander Menk`_ added additional stylesheets for printing. You can now print any page of paperless and the print result will hide the page header, sidebar, and action buttons.
- * Added support for sorting when using full text search.
-
-* Fixes
-
- * `puuu`_ fixed ``PAPERLESS_FORCE_SCRIPT_NAME``. You can now host paperless on sub paths such as ``https://localhost:8000/paperless/``.
- * Fixed an issue with the document consumer crashing on certain documents due to issues with pdfminer.six. This library is used for PDF text extraction.
-
-paperless-ng 1.4.2
-==================
-
-* Fixed an issue with ``sudo`` that caused paperless to not start on many Raspberry Pi devices. Thank you `WhiteHatTux`_!
-
-paperless-ng 1.4.1
-==================
-
-* Added Polish locale.
-
-* Changed some parts of the Dockerfile to hopefully restore functionality on certain ARM devices.
-
-* Updated python dependencies.
-
-* `Michael Shamoon`_ added a sticky filter / bulk edit bar.
-
-* `sbrl`_ changed the docker-entrypoint.sh script to increase compatibility with NFS shares.
-
-* `Chris Nagy`_ added support for creating a super user by passing ``PAPERLESS_ADMIN_USER`` and
- ``PAPERLESS_ADMIN_PASSWORD`` as environment variables to the docker container.
-
-paperless-ng 1.4.0
-==================
-
-* Docker images now use tesseract 4.1.1, which should fix a series of issues with OCR.
-
-* The full text search now displays results using the default document list. This enables
- selection, filtering and bulk edit on search results.
-
-* Changes
-
- * Firefox only: Highlight search query in PDF previews.
-
- * New URL pattern for accessing documents by ASN directly (http:///asn/123)
-
- * Added logging when executing pre* and post-consume scripts.
-
- * Better error logging during document consumption.
-
- * Updated python dependencies.
-
- * Automatically inserts typed text when opening "Create new" dialogs on the document details page.
-
-* Fixes
-
- * Fixed an issue with null characters in the document content.
-
-.. note::
-
- The changed to the full text searching require you to reindex your documents.
- *The docker image does this automatically, you don't need to do anything.*
- To do this, execute the ``document_index reindex`` management command
- (see :ref:`administration-index`).
-
-paperless-ng 1.3.2
-==================
-
-* Added translation into Portuguese.
-
-* Changes
-
- * The exporter now exports user accounts, mail accounts, mail rules and saved views as well.
-
-* Fixes
-
- * Minor layout issues with document cards and the log viewer.
-
- * Fixed an issue with any/all/exact matching when characters used in regular expressions were used for the match.
-
-paperless-ng 1.3.1
-==================
-
-* Added translation into Spanish and Russian.
-
-* Other changes
-
- * ISO-8601 date format will now always show years with 4 digits.
-
- * Added the ability to search for a document with a specific ASN.
-
- * The document cards now display ASN, types and dates in a more organized way.
-
- * Added document previews when hovering over the preview button.
-
-* Fixes
-
- * The startup check for write permissions now works properly on NFS shares.
-
- * Fixed an issue with the search results score indicator.
-
- * Paperless was unable to generate thumbnails for encrypted PDF files and failed. Paperless will now generate a default thumbnail for these files.
-
- * Fixed ``AUTO_LOGIN_USERNAME``: Unable to perform POST/PUT/DELETE requests and unable to receive WebSocket messages.
-
-paperless-ng 1.3.0
-==================
-
-This release contains new database migrations.
-
-* Changes
-
- * The REST API is versioned from this point onwards. This will allow me to make changes without breaking existing clients. See the documentation about :ref:`api-versioning` for details.
-
- * Added a color picker for tag colors.
-
- * Added the ability to use the filter for searching the document content as well.
-
- * Added translations into Italian and Romanian. Thank you!
-
- * Close individual documents from the sidebar. Thanks to `Michael Shamoon`_.
-
- * `BolkoSchreiber `_ added an option to disable/enable thumbnail inversion in dark mode.
-
- * `Simon Taddiken `_ added the ability to customize the header used for remote user authentication with SSO applications.
-
-* Bug fixes
-
- * Fixed an issue with the auto matching algorithm when more than 256 tags were used.
-
-
-paperless-ng 1.2.1
-==================
-
-* `Rodrigo Avelino `_ translated Paperless into Portuguese (Brazil)!
-
-* The date input fields now respect the currently selected date format.
-
-* Added a fancy icon when adding paperless to the home screen on iOS devices. Thanks to `Joel Nordell `_.
-
-* When using regular expression matching, the regular expression is now validated before saving the tag/correspondent/type.
-
-* Regression fix: Dates on the front end did not respect date locale settings in some cases.
-
-paperless-ng 1.2.0
-==================
-
-* Changes to the OCRmyPDF integration
-
- * Added support for deskewing and automatic rotation of incorrectly rotated pages. This is enabled by default, see :ref:`configuration-ocr`.
- * Better support for encrypted files.
- * Better support for various other PDF files: Paperless will now attempt to force OCR with safe options when OCR fails with the configured options.
- * Added an explicit option to skip cleaning with ``unpaper``.
-
-* Download multiple selected documents as a zip archive.
-
-* The document list now remembers the current page.
-
-* Improved responsiveness when switching between saved views and the document list.
-
-* Increased the default wait time when observing files in the consumption folder
- with polling from 1 to 5 seconds. This will decrease the likelihood of paperless
- consuming partially written files.
-
-* Fixed a crash of the document archiver management command when trying to process documents with unknown mime types.
-
-* Paperless no longer depends on ``libpoppler-cpp-dev``.
-
-paperless-ng 1.1.4
-==================
-
-* Added English (GB) locale.
-
-* Added ISO-8601 date display option.
-
-paperless-ng 1.1.3
-==================
-
-* Added a docker-specific configuration option to adjust the number of
- worker processes of the web server. See :ref:`configuration-docker`.
-
-* Some more memory usage optimizations.
-
-* Don't show inbox statistics if no inbox tag is defined.
-
-paperless-ng 1.1.2
-==================
-
-* Always show top left corner of thumbnails, even for extra wide documents.
-
-* Added a management command for executing the sanity checker directly.
- See :ref:`utilities-sanity-checker`.
-
-* The weekly sanity check now reports messages in the log files.
-
-* Fixed an issue with the metadata tab not reporting anything in case of missing files.
-
-* Reverted a change from 1.1.0 that caused huge memory usage due to redis caching.
-
-* Some memory usage optimizations.
-
-paperless-ng 1.1.1
-==================
-
-This release contains new database migrations.
-
-* Fixed a bug in the sanity checker that would cause it to display "x not in list" errors instead of actual issues.
-
-* Fixed a bug with filename generation for archive filenames that would cause the archive files of two documents to overlap.
-
- * This happened when ``PAPERLESS_FILENAME_FORMAT`` is used and the filenames of two or more documents are the same, except for the file extension.
- * Paperless will now store the archive filename in the database as well instead of deriving it from the original filename, and use the
- same logic for detecting and avoiding filename clashes that's also used for original filenames.
- * The migrations will repair any missing archive files. If you're using tika, ensure that tika is running while performing the migration. Docker-compose will take care of that.
-
-* Fixed a bug with thumbnail regeneration when TIKA integration was used.
-
-* Added ASN as a placeholder field to the filename format.
-
-* The docker image now comes with built-in shortcuts for most management commands. These are now the recommended way to execute management commands, since these
- also ensure that they're always executed as the paperless user and you're less likely to run into permission issues. See :ref:`utilities-management-commands`.
-
-paperless-ng 1.1.0
-==================
-
-* Document processing status
-
- * Paperless now shows the status of processing documents on the dashboard in real time.
- * Status notifications when
-
- * New documents are detected in the consumption folder, in mails, uploaded on the front end,
- or added with one of the mobile apps.
- * Documents are successfully added to paperless.
- * Document consumption failed (with error messages)
-
- * Configuration options to enable/disable individual notifications.
-
-* Live updates to document lists and saved views when new documents are added.
-
- .. hint::
-
- For status notifications and live updates to work, paperless now requires an `ASGI `_-enabled
- web server. The docker images uses ``gunicorn`` and an ASGI-enabled worker called `uvicorn `_,
- and there is no need to configure anything.
-
- For bare metal installations, changes are required for the notifications to work. Adapt the service ``paperless-webserver.service``
- to use the supplied ``gunicorn.conf.py`` configuration file and adapt the reference to the ASGI application as follows:
-
- .. code::
-
- ExecStart=/opt/paperless/.local/bin/gunicorn -c /opt/paperless/gunicorn.conf.py paperless.asgi:application
-
- Paperless will continue to work with WSGI, but you will not get any status notifications.
-
- Apache ``mod_wsgi`` users, see :ref:`this note `.
-
-* Paperless now offers suggestions for tags, correspondents and types on the document detail page.
-
-* Added an interactive easy install script that automatically downloads, configures and starts paperless with docker.
-
-* Official support for Python 3.9.
-
-* Other changes and fixes
-
- * Adjusted the default parallelization settings to run more than one task in parallel on systems with 4 or less cores.
- This addresses issues with paperless not consuming any new files when other tasks are running.
-
- * Fixed a rare race condition that would cause paperless to process incompletely written files when using the upload on the dashboard.
-
- * The document classifier no longer issues warnings and errors when auto matching is not used at all.
-
- * Better icon for document previews.
-
- * Better info section in the side bar.
-
- * Paperless no longer logs to the database. Instead, logs are written to rotating log files. This solves many "database is locked"
- issues on Raspberry Pi, especially when SQLite is used.
-
- * By default, log files are written to ``PAPERLESS_DATA_DIR/log/``. Logging settings can be adjusted with
- ``PAPERLESS_LOGGING_DIR``, ``PAPERLESS_LOGROTATE_MAX_SIZE`` and
- ``PAPERLESS_LOGROTATE_MAX_BACKUPS``.
-
-paperless-ng 1.0.0
-==================
-
-Nothing special about this release, but since there are relatively few bug reports coming in, I think that this is reasonably stable.
-
-* Document export
-
- * The document exporter has been rewritten to support updating an already existing export in place.
- This enables incremental backups with ``rsync``.
- * The document exporter supports naming exported files according to ``PAPERLESS_FILENAME_FORMAT``.
- * The document exporter locks the media directory and the database during execution to ensure that
- the resulting export is consistent.
- * See the :ref:`updated documentation ` for more details.
-
-* Other changes and additions
-
- * Added a language selector to the settings.
- * Added date format options to the settings.
- * Range selection with shift clicking is now possible in the document list.
- * Filtering correspondent, type and tag management pages by name.
- * Focus "Name" field in dialogs by default.
-
-
-paperless-ng 0.9.14
-===================
-
-Starting with this version, releases are getting built automatically. This release also comes with changes on how to install and
-update paperless.
-
-* Paperless now uses GitHub Actions to make releases and build docker images.
-
- * Docker images are available for amd64, armhf, and aarch64.
- * When you pull an image from Docker Hub, Docker will automatically select the correct image for you.
-
-* Changes to docker installations and updates
-
- * The ``-dockerfiles.tar.xz`` release archive is gone. Instead, simply grab the docker files from ``/docker/compose`` in the repository
- if you wish to install paperless by pulling from the hub.
- * The docker compose files in ``/docker/compose`` were changed to always use the ``latest`` version automatically. In order to do further
- updates, simply do a ``docker-compose pull``. The documentation has been updated.
- * The docker compose files were changed to restart paperless on system boot only if it was running before shutdown.
- * Documentation of the docker-compose files about what they do.
-
-* Changes to bare metal installations and updates
-
- * The release archive is built exactly like before. However, the release now comes with already compiled translation messages and
- collected static files. Therefore, the update steps ``compilemessages`` and ``collectstatic`` are now obsolete.
-
-* Other changes
-
- * A new configuration option ``PAPERLESS_IGNORE_DATES`` was added by `jayme-github`_. This can be used to instruct paperless to ignore
- certain dates (such as your date of birth) when guessing the date from the document content. This was actually introduced in 0.9.12,
- I just forgot to mention it in the changelog.
- * The filter drop downs now display selected entries on top of all other entries.
- * The PostgreSQL client now supports setting an explicit ``sslmode`` to force encryption of the connection to PostgreSQL.
- * The docker images now come with ``jbig2enc``, which is a lossless image encoder for PDF documents and decreases the size of certain
- PDF/A documents.
- * When using any of the manual matching algorithms, paperless now logs messages about when and why these matching algorithms matched.
- * The default settings for parallelization in paperless were adjusted to always leave one CPU core free.
- * Added an option to the frontend to choose which method to use for displaying PDF documents.
-
-* Fixes
-
- * An issue with the tika parser not picking up files from the consumption directory was fixed.
- * A couple changes to the dark mode and fixes to several other layout issues.
- * An issue with the drop downs for correspondents, tags and types not properly supporting filtering with special characters was fixed.
- * Fixed an issue with filenames of downloaded files: Dates where off by one day due to timezone issues.
- * Searching will continue to work even when the index returns non-existing documents. This resulted in "Document does not exist" errors
- before. Instead, a warning is logged, indicating the issue.
- * An issue with the consumer crashing when invalid regular expression were used was fixed.
-
-paperless-ng 0.9.13
-===================
-
-* Fixed an issue with Paperless not starting due to the new Tika integration when ``USERMAP_UID`` and ``USERMAP_GID`` was used
- in the ``docker-compose.env`` file.
-
-paperless-ng 0.9.12
-===================
-
-* Paperless localization
-
- * Thanks to the combined efforts of many users, Paperless is now available in English, Dutch, French and German.
-
-* Thanks to `Jo Vandeginste`_, Paperless has optional support for Office documents such as .docx, .doc, .odt and more.
-
- * See the :ref:`configuration` on how to enable this feature. This feature requires two additional services
- (one for parsing Office documents and metadata extraction and another for converting Office documents to PDF), and is therefore
- not enabled on default installations.
- * As with all other documents, paperless converts Office documents to PDF and stores both the original as well as the archived PDF.
-
-* Dark mode
-
- * Thanks to `Michael Shamoon`_, paperless now has a dark mode. Configuration is available in the settings.
-
-* Other changes and additions
-
- * The PDF viewer now uses a local copy of some dependencies instead of fetching them from the internet. Thanks to `slorenz`_.
- * Revamped search bar styling thanks to `Michael Shamoon`_.
- * Sorting in the document list by clicking on table headers.
- * A button was added to the document detail page that assigns a new ASN to a document.
- * Form field validation: When providing invalid input in a form (such as a duplicate ASN or no name), paperless now has visual
- indicators and clearer error messages about what's wrong.
- * Paperless disables buttons with network actions (such as save and delete) when a network action is active. This indicates that
- something is happening and prevents double clicking.
- * When using "Save & next", the title field is focussed automatically to better support keyboard editing.
- * E-Mail: Added filter rule parameters to allow inline attachments (watch out for mails with inlined images!) and attachment filename filters
- with wildcards.
- * Support for remote user authentication thanks to `Michael Shamoon`_. This is useful for hiding Paperless behind single sign on applications
- such as `authelia `_.
- * "Clear filters" has been renamed to "Reset filters" and now correctly restores the default filters on saved views. Thanks to `Michael Shamoon`_
-
-* Fixes
-
- * Paperless was unable to save views when "Not assigned" was chosen in one of the filter dropdowns.
- * Clearer error messages when pre and post consumption scripts do not exist.
- * The post consumption script is executed later in the consumption process. Before the change, an ID was passed to the script referring to
- a document that did not yet exist in the database.
-
-paperless-ng 0.9.11
-===================
-
-* Fixed an issue with the docker image not starting at all due to a configuration change of the web server.
-
-
-paperless-ng 0.9.10
-===================
-
-* Bulk editing
-
- * Thanks to `Michael Shamoon`_, we've got a new interface for the bulk editor.
- * There are some configuration options in the settings to alter the behavior.
-
-* Other changes and additions
-
- * Thanks to `zjean`_, paperless now publishes a webmanifest, which is useful for adding the application to home screens on mobile devices.
- * The Paperless-ng logo now navigates to the dashboard.
- * Filter for documents that don't have any correspondents, types or tags assigned.
- * Tags, types and correspondents are now sorted case insensitive.
- * Lots of preparation work for localization support.
-
-* Fixes
-
- * Added missing dependencies for Raspberry Pi builds.
- * Fixed an issue with plain text file consumption: Thumbnail generation failed due to missing fonts.
- * An issue with the search index reporting missing documents after bulk deletes was fixed.
- * Issue with the tag selector not clearing input correctly.
- * The consumer used to stop working when encountering an incomplete classifier model file.
-
-.. note::
-
- The bulk delete operations did not update the search index. Therefore, documents that you deleted remained in the index and
- caused the search to return messages about missing documents when searching. Further bulk operations will properly update
- the index.
-
- However, this change is not retroactive: If you used the delete method of the bulk editor, you need to reindex your search index
- by :ref:`running the management command document_index with the argument reindex `.
-
-paperless-ng 0.9.9
-==================
-
-Christmas release!
-
-* Bulk editing
-
- * Paperless now supports bulk editing.
- * The following operations are available: Add and remove correspondents, tags, document types from selected documents, as well as mass-deleting documents.
- * We've got a more fancy UI in the works that makes these features more accessible, but that's not quite ready yet.
-
-* Searching
-
- * Paperless now supports searching for similar documents ("More like this") both from the document detail page as well as from individual search results.
- * A search score indicates how well a document matches the search query, or how similar a document is to a given reference document.
-
-* Other additions and changes
-
- * Clarification in the UI that the fields "Match" and "Is insensitive" are not relevant for the Auto matching algorithm.
- * New select interface for tags, types and correspondents allows filtering. This also improves tag selection. Thanks again to `Michael Shamoon`_!
- * Page navigation controls for the document viewer, thanks to `Michael Shamoon`_.
- * Layout changes to the small cards document list.
- * The dashboard now displays the username (or full name if specified in the admin) on the dashboard.
-
-* Fixes
-
- * An error that caused the document importer to crash was fixed.
- * An issue with changes not being possible when ``PAPERLESS_COOKIE_PREFIX`` is used was fixed.
- * The date selection filters now allow manual entry of dates.
-
-* Feature Removal
-
- * Most of the guesswork features have been removed. Paperless no longer tries to extract correspondents and tags from file names.
-
-paperless-ng 0.9.8
-==================
-
-This release addresses two severe issues with the previous release.
-
-* The delete buttons for document types, correspondents and tags were not working.
-* The document section in the admin was causing internal server errors (500).
-
-
-paperless-ng 0.9.7
-==================
-
-
-* Front end
-
- * Thanks to the hard work of `Michael Shamoon`_, paperless now comes with a much more streamlined UI for
- filtering documents.
-
- * `Michael Shamoon`_ replaced the document preview with another component. This should fix compatibility with Safari browsers.
-
- * Added buttons to the management pages to quickly show all documents with one specific tag, correspondent, or title.
-
- * Paperless now stores your saved views on the server and associates them with your user account.
- This means that you can access your views on multiple devices and have separate views for different users.
- You will have to recreate your views.
-
- * The GitHub and documentation links now open in new tabs/windows. Thanks to `rYR79435`_.
-
- * Paperless now generates default saved view names when saving views with certain filter rules.
-
- * Added a small version indicator to the front end.
-
-* Other additions and changes
-
- * The new filename format field ``{tag_list}`` inserts a list of tags into the filename, separated by comma.
- * The ``document_retagger`` no longer removes inbox tags or tags without matching rules.
- * The new configuration option ``PAPERLESS_COOKIE_PREFIX`` allows you to run multiple instances of paperless on different ports.
- This option enables you to be logged in into multiple instances by specifying different cookie names for each instance.
-
-* Fixes
-
- * Sometimes paperless would assign dates in the future to newly consumed documents.
- * The filename format fields ``{created_month}`` and ``{created_day}`` now use a leading zero for single digit values.
- * The filename format field ``{tags}`` can no longer be used without arguments.
- * Paperless was not able to consume many images (especially images from mobile scanners) due to missing DPI information.
- Paperless now assumes A4 paper size for PDF generation if no DPI information is present.
- * Documents with empty titles could not be opened from the table view due to the link being empty.
- * Fixed an issue with filenames containing special characters such as ``:`` not being accepted for upload.
- * Fixed issues with thumbnail generation for plain text files.
-
-
-paperless-ng 0.9.6
-==================
-
-This release focusses primarily on many small issues with the UI.
-
-* Front end
-
- * Paperless now has proper window titles.
- * Fixed an issue with the small cards when more than 7 tags were used.
- * Navigation of the "Show all" links adjusted. They navigate to the saved view now, if available in the sidebar.
- * Some indication on the document lists that a filter is active was added.
- * There's a new filter to filter for documents that do *not* have a certain tag.
- * The file upload box now shows upload progress.
- * The document edit page was reorganized.
- * The document edit page shows various information about a document.
- * An issue with the height of the preview was fixed.
- * Table issues with too long document titles fixed.
-
-* API
-
- * The API now serves file names with documents.
- * The API now serves various metadata about documents.
- * API documentation updated.
-
-* Other
-
- * Fixed an issue with the docker image when a non-standard PostgreSQL port was used.
- * The docker image was trying check for installed languages before actually installing them.
- * ``FILENAME_FORMAT`` placeholder for document types.
- * The filename formatter is now less restrictive with file names and tries to
- conserve the original correspondents, types and titles as much as possible.
- * The filename formatter does not include the document ID in filenames anymore. It will
- rather append ``_01``, ``_02``, etc when it detects duplicate filenames.
-
-.. note::
-
- The changes to the filename format will apply to newly added documents and changed documents.
- If you want all files to reflect these changes, execute the ``document_renamer`` management
- command.
-
-
-paperless-ng 0.9.5
-==================
-
-This release concludes the big changes I wanted to get rolled into paperless. The next releases before 1.0 will
-focus on fixing issues, primarily.
-
-* OCR
-
- * Paperless now uses `OCRmyPDF `_ to perform OCR on documents.
- It still uses tesseract under the hood, but the PDF parser of Paperless has changed considerably and
- will behave different for some douments.
- * OCRmyPDF creates archived PDF/A documents with embedded text that can be selected in the front end.
- * Paperless stores archived versions of documents alongside with the originals. The originals can be
- accessed on the document edit page. If available, a dropdown menu will appear next to the download button.
- * Many of the configuration options regarding OCR have changed. See :ref:`configuration-ocr` for details.
- * Paperless no longer guesses the language of your documents. It always uses the language that you
- specified with ``PAPERLESS_OCR_LANGUAGE``. Be sure to set this to the language the majority of your
- documents are in. Multiple languages can be specified, but that requires more CPU time.
- * The management command :ref:`document_archiver ` can be used to create archived versions for already
- existing documents.
-
-* Tags from consumption folder.
-
- * Thanks to `jayme-github`_, paperless now consumes files from sub folders in the consumption folder and is able to assign tags
- based on the sub folders a document was found in. This can be configured with ``PAPERLESS_CONSUMER_RECURSIVE`` and
- ``PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS``.
-
-* API
-
- * The API now offers token authentication.
- * The endpoint for uploading documents now supports specifying custom titles, correspondents, tags and types.
- This can be used by clients to override the default behavior of paperless. See :ref:`api-file_uploads`.
- * The document endpoint of API now serves documents in this form:
-
- * correspondents, document types and tags are referenced by their ID in the fields ``correspondent``, ``document_type`` and ``tags``. The ``*_id`` versions are gone. These fields are read/write.
- * paperless does not serve nested tags, correspondents or types anymore.
-
-* Front end
-
- * Paperless does some basic caching of correspondents, tags and types and will only request them from the server when necessary or when entirely reloading the page.
- * Document list fetching is about 10%-30% faster now, especially when lots of tags/correspondents are present.
- * Some minor improvements to the front end, such as document count in the document list, better highlighting of the current page, and improvements to the filter behavior.
-
-* Fixes:
-
- * A bug with the generation of filenames for files with unsupported types caused the exporter and
- document saving to crash.
- * Mail handling no longer exits entirely when encountering errors. It will skip the account/rule/message on which the error occured.
- * Assigning correspondents from mail sender names failed for very long names. Paperless no longer assigns correspondents in these cases.
-
-paperless-ng 0.9.4
-==================
-
-* Searching:
-
- * Paperless now supports searching by tags, types and dates and correspondents. In order to have this applied to your
- existing documents, you need to perform a ``document_index reindex`` management command
- (see :ref:`administration-index`)
- that adds the data to the search index. You only need to do this once, since the schema of the search index changed.
- Paperless keeps the index updated after that whenever something changes.
- * Paperless now has spelling corrections ("Did you mean") for miss-typed queries.
- * The documentation contains :ref:`information about the query syntax `.
-
-* Front end:
-
- * Clickable tags, correspondents and types allow quick filtering for related documents.
- * Saved views are now editable.
- * Preview documents directly in the browser.
- * Navigation from the dashboard to saved views.
-
-* Fixes:
-
- * A severe error when trying to use post consume scripts.
- * An error in the consumer that cause invalid messages of missing files to show up in the log.
-
-* The documentation now contains information about bare metal installs and a section about
- how to setup the development environment.
-
-paperless-ng 0.9.3
-==================
-
-* Setting ``PAPERLESS_AUTO_LOGIN_USERNAME`` replaces ``PAPERLESS_DISABLE_LOGIN``.
- You have to specify your username.
-* Added a simple sanity checker that checks your documents for missing or orphaned files,
- files with wrong checksums, inaccessible files, and documents with empty content.
-* It is no longer possible to encrypt your documents. For the time being, paperless will
- continue to operate with already encrypted documents.
-* Fixes:
-
- * Paperless now uses inotify again, since the watchdog was causing issues which I was not
- aware of.
- * Issue with the automatic classifier not working with only one tag.
- * A couple issues with the search index being opened to eagerly.
-
-* Added lots of tests for various parts of the application.
-
-paperless-ng 0.9.2
-==================
-
-* Major changes to the front end (colors, logo, shadows, layout of the cards,
- better mobile support)
-
-* Paperless now uses mime types and libmagic detection to determine
- if a file type is supported and which parser to use. Removes all
- file type checks that where present in MANY different places in
- paperless.
-
-* Mail consumer now correctly consumes documents even when their
- content type was not set correctly. (i.e. PDF documents with
- content type ``application/octet-stream``)
-
-* Basic sorting of mail rules added
-
-* Much better admin for mail rule editing.
-
-* Docker entrypoint script awaits the database server if it is
- configured.
-
-* Disabled editing of logs.
-
-* New setting ``PAPERLESS_OCR_PAGES`` limits the tesseract parser
- to the first n pages of scanned documents.
-
-* Fixed a bug where tasks with too long task names would not show
- up in the admin.
-
-paperless-ng 0.9.1
-==================
-
-* Moved documentation of the settings to the actual documentation.
-* Updated release script to force the user to choose between SQLite
- and PostgreSQL. This avoids confusion when upgrading from paperless.
-
-
-paperless-ng 0.9.0
-==================
-
-* **Deprecated:** GnuPG. :ref:`See this note on the state of GnuPG in paperless-ng. `
- This features will most likely be removed in future versions.
-
-* **Added:** New frontend. Features:
-
- * Single page application: It's much more responsive than the django admin pages.
- * Dashboard. Shows recently scanned documents, or todo notes, or other documents
- at wish. Allows uploading of documents. Shows basic statistics.
- * Better document list with multiple display options.
- * Full text search with result highlighting, auto completion and scoring based
- on the query. It uses a document search index in the background.
- * Saveable filters.
- * Better log viewer.
-
-* **Added:** Document types. Assign these to documents just as correspondents.
- They may be used in the future to perform automatic operations on documents
- depending on the type.
-* **Added:** Inbox tags. Define an inbox tag and it will automatically be
- assigned to any new document scanned into the system.
-* **Added:** Automatic matching. A new matching algorithm that automatically
- assigns tags, document types and correspondents to your documents. It uses
- a neural network trained on your data.
-* **Added:** Archive serial numbers. Assign these to quickly find documents stored in
- physical binders.
-* **Added:** Enabled the internal user management of django. This isn't really a
- multi user solution, however, it allows more than one user to access the website
- and set some basic permissions / renew passwords.
-
-* **Modified [breaking]:** All new mail consumer with customizable filters, actions and
- multiple account support. Replaces the old mail consumer. The new mail consumer
- needs different configuration but can be configured to act exactly like the old
- consumer.
-
-
-* **Modified:** Changes to the consumer:
-
- * Now uses the excellent watchdog library that should make sure files are
- discovered no matter what the platform is.
- * The consumer now uses a task scheduler to run consumption processes in parallel.
- This means that consuming many documents should be much faster on systems with
- many cores.
- * Concurrency is controlled with the new settings ``PAPERLESS_TASK_WORKERS``
- and ``PAPERLESS_THREADS_PER_WORKER``. See TODO for details on concurrency.
- * The consumer no longer blocks the database for extended periods of time.
- * An issue with tesseract running multiple threads per page and slowing down
- the consumer was fixed.
-
-* **Modified [breaking]:** REST Api changes:
-
- * New filters added, other filters removed (case sensitive filters, slug filters)
- * Endpoints for thumbnails, previews and downloads replace the old ``/fetch/`` urls. Redirects are in place.
- * Endpoint for document uploads replaces the old ``/push`` url. Redirects are in place.
- * Foreign key relationships are now served as IDs, not as urls.
-
-* **Modified [breaking]:** PostgreSQL:
-
- * If ``PAPERLESS_DBHOST`` is specified in the settings, paperless uses PostgreSQL instead of SQLite.
- Username, database and password all default to ``paperless`` if not specified.
-
-* **Modified [breaking]:** document_retagger management command rework. See
- :ref:`utilities-retagger` for details. Replaces ``document_correspondents``
- management command.
-* **Removed [breaking]:** Reminders.
-* **Removed:** All customizations made to the django admin pages.
-* **Removed [breaking]:** The docker image no longer supports SSL. If you want to expose
- paperless to the internet, hide paperless behind a proxy server that handles SSL
- requests.
-* **Internal changes:** Mostly code cleanup, including:
-
- * Rework of the code of the tesseract parser. This is now a lot cleaner.
- * Rework of the filename handling code. It was a mess.
- * Fixed some issues with the document exporter not exporting all documents when encountering duplicate filenames.
- * Added a task scheduler that takes care of checking mail, training the classifier, maintaining the document search index
- and consuming documents.
- * Updated dependencies. Now uses Pipenv all around.
- * Updated Dockerfile and docker-compose. Now uses ``supervisord`` to run everything paperless-related in a single container.
-
-* **Settings:**
-
- * ``PAPERLESS_FORGIVING_OCR`` is now default and gone. Reason: Even if ``langdetect`` fails to detect
- a language, tesseract still does a very good job at ocr'ing a document with the default language.
- Certain language specifics such as umlauts may not get picked up properly.
- * ``PAPERLESS_DEBUG`` defaults to ``false``.
- * The presence of ``PAPERLESS_DBHOST`` now determines whether to use PostgreSQL or
- SQLite.
- * ``PAPERLESS_OCR_THREADS`` is gone and replaced with ``PAPERLESS_TASK_WORKERS`` and
- ``PAPERLESS_THREADS_PER_WORKER``. Refer to the config example for details.
- * ``PAPERLESS_OPTIMIZE_THUMBNAILS`` allows you to disable or enable thumbnail
- optimization. This is useful on less powerful devices.
-
-* Many more small changes here and there. The usual stuff.
-
-Paperless
-#########
-
-2.7.0
-=====
-
-* `syntonym`_ submitted a pull request to catch IMAP connection errors `#475`_.
-* `Stéphane Brunner`_ added ``psycopg2`` to the Pipfile `#489`_. He also fixed
- a syntax error in ``docker-compose.yml.example`` `#488`_ and added `DjangoQL`_,
- which allows a litany of handy search functionality `#492`_.
-* `CkuT`_ and `JOKer`_ hacked out a simple, but super-helpful optimisation to
- how the thumbnails are served up, improving performance considerably `#481`_.
-* `tsia`_ added a few fields to the tags REST API. `#483`_.
-* `Brian Cribbs`_ improved the documentation to help people using Paperless
- over NFS `#484`_.
-* `Brendan M. Sleight`_ updated the documentation to include a note for setting the
- ``DEBUG`` value. The ``paperless.conf.example`` file was also updated to
- mirror the project defaults.
-
-
-2.6.1
-=====
-
-* We now have a logo, complete with a favicon :-)
-* Removed some problematic tests.
-* Fix the docker-compose example config to include a shared consume volume so
- that using the push API will work for users of the Docker install. Thanks to
- `Colin Frei`_ for fixing this in `#466`_.
-* `khrise`_ submitted a pull request to include the ``added`` property to the
- REST API `#471`_.
-
-
-2.6.0
-=====
-
-* Allow an infinite number of logs to be deleted. Thanks to `Ulli`_ for noting
- the problem in `#433`_.
-* Fix the ``RecentCorrespondentsFilter`` correspondents filter that was added
- in 2.4 to play nice with the defaults. Thanks to `tsia`_ and `Sblop`_ who
- pointed this out. `#423`_.
-* Updated dependencies to include (among other things) a security patch to
- requests.
-* Fix text in sample data for tests so that the language guesser stops thinking
- that everything is in Catalan because we had *Lorem ipsum* in there.
-* Tweaked the gunicorn sample command to use filesystem paths instead of Python
- paths. `#441`_
-* Added pretty colour boxes next to the hex values in the Tags section, thanks
- to a pull request from `Joshua Taillon`_ `#442`_.
-* Added a ``.editorconfig`` file to better specify coding style.
-* `Joshua Taillon`_ also added some logic to tie Paperless' date guessing logic
- into how it parses file names on import. `#440`_
-
-
-2.5.0
-=====
-
-* **New dependency**: Paperless now optimises thumbnail generation with
- `optipng`_, so you'll need to install that somewhere in your PATH or declare
- its location in ``PAPERLESS_OPTIPNG_BINARY``. The Docker image has already
- been updated on the Docker Hub, so you just need to pull the latest one from
- there if you're a Docker user.
-
-* "Login free" instances of Paperless were breaking whenever you tried to edit
- objects in the admin: adding/deleting tags or correspondents, or even fixing
- spelling. This was due to the "user hack" we were applying to sessions that
- weren't using a login, as that hack user didn't have a valid id. The fix was
- to attribute the first user id in the system to this hack user. `#394`_
-
-* A problem in how we handle slug values on Tags and Correspondents required a
- few changes to how we handle this field `#393`_:
-
- 1. Slugs are no longer editable. They're derived from the name of the tag or
- correspondent at save time, so if you wanna change the slug, you have to
- change the name, and even then you're restricted to the rules of the
- ``slugify()`` function. The slug value is still visible in the admin
- though.
- 2. I've added a migration to go over all existing tags & correspondents and
- rewrite the ``.slug`` values to ones conforming to the ``slugify()``
- rules.
- 3. The consumption process now uses the same rules as ``.save()`` in
- determining a slug and using that to check for an existing
- tag/correspondent.
-
-* An annoying bug in the date capture code was causing some bogus dates to be
- attached to documents, which in turn busted the UI. Thanks to `Andrew Peng`_
- for reporting this. `#414`_.
-
-* A bug in the Dockerfile meant that Tesseract language files weren't being
- installed correctly. `euri10`_ was quick to provide a fix: `#406`_, `#413`_.
-
-* Document consumption is now wrapped in a transaction as per an old ticket
- `#262`_.
-
-* The ``get_date()`` functionality of the parsers has been consolidated onto
- the ``DocumentParser`` class since much of that code was redundant anyway.
-
-
-2.4.0
-=====
-
-* A new set of actions are now available thanks to `jonaswinkler`_'s very first
- pull request! You can now do nifty things like tag documents in bulk, or set
- correspondents in bulk. `#405`_
-* The import/export system is now a little smarter. By default, documents are
- tagged as ``unencrypted``, since exports are by their nature unencrypted.
- It's now in the import step that we decide the storage type. This allows you
- to export from an encrypted system and import into an unencrypted one, or
- vice-versa.
-* The migration history has been slightly modified to accommodate PostgreSQL
- users. Additionally, you can now tell paperless to use PostgreSQL simply by
- declaring ``PAPERLESS_DBUSER`` in your environment. This will attempt to
- connect to your Postgres database without a password unless you also set
- ``PAPERLESS_DBPASS``.
-* A bug was found in the REST API filter system that was the result of an
- update of django-filter some time ago. This has now been patched in `#412`_.
- Thanks to `thepill`_ for spotting it!
-
-
-2.3.0
-=====
-
-* Support for consuming plain text & markdown documents was added by
- `Joshua Taillon`_! This was a long-requested feature, and it's addition is
- likely to be greatly appreciated by the community: `#395`_ Thanks also to
- `David Martin`_ for his assistance on the issue.
-* `dubit0`_ found & fixed a bug that prevented management commands from running
- before we had an operational database: `#396`_
-* Joshua also added a simple update to the thumbnail generation process to
- improve performance: `#399`_
-* As his last bit of effort on this release, Joshua also added some code to
- allow you to view the documents inline rather than download them as an
- attachment. `#400`_
-* Finally, `ahyear`_ found a slip in the Docker documentation and patched it.
- `#401`_
-
-
-2.2.1
-=====
-
-* `Kyle Lucy`_ reported a bug quickly after the release of 2.2.0 where we broke
- the ``DISABLE_LOGIN`` feature: `#392`_.
-
-
-2.2.0
-=====
-
-* Thanks to `dadosch`_, `Wolfgang Mader`_, and `Tim Brooks`_ this is the first
- version of Paperless that supports Django 2.0! As a result of their hard
- work, you can now also run Paperless on Python 3.7 as well: `#386`_ &
- `#390`_.
-* `Stéphane Brunner`_ added a few lines of code that made tagging interface a
- lot easier on those of us with lots of different tags: `#391`_.
-* `Kilian Koeltzsch`_ noticed a bug in how we capture & automatically create
- tags, so that's fixed now too: `#384`_.
-* `erikarvstedt`_ tweaked the behaviour of the test suite to be better behaved
- for packaging environments: `#383`_.
-* `Lukasz Soluch`_ added CORS support to make building a new Javascript-based
- front-end cleaner & easier: `#387`_.
-
-
-2.1.0
-=====
-
-* `Enno Lohmeier`_ added three simple features that make Paperless a lot more
- user (and developer) friendly:
-
- 1. There's a new search box on the front page: `#374`_.
- 2. The correspondents & tags pages now have a column showing the number of
- relevant documents: `#375`_.
- 3. The Dockerfile has been tweaked to build faster for those of us who are
- doing active development on Paperless using the Docker environment:
- `#376`_.
-
-* You now also have the ability to customise the interface to your heart's
- content by creating a file called ``overrides.css`` and/or ``overrides.js``
- in the root of your media directory. Thanks to `Mark McFate`_ for this
- idea: `#371`_
-
-
-2.0.0
-=====
-
-This is a big release as we've changed a core-functionality of Paperless: we no
-longer encrypt files with GPG by default.
-
-The reasons for this are many, but it boils down to that the encryption wasn't
-really all that useful, as files on-disk were still accessible so long as you
-had the key, and the key was most typically stored in the config file. In
-other words, your files are only as safe as the ``paperless`` user is. In
-addition to that, *the contents of the documents were never encrypted*, so
-important numbers etc. were always accessible simply by querying the database.
-Still, it was better than nothing, but the consensus from users appears to be
-that it was more an annoyance than anything else, so this feature is now turned
-off unless you explicitly set a passphrase in your config file.
-
-Migrating from 1.x
-==================
-
-Encryption isn't gone, it's just off for new users. So long as you have
-``PAPERLESS_PASSPHRASE`` set in your config or your environment, Paperless
-should continue to operate as it always has. If however, you want to drop
-encryption too, you only need to do two things:
-
-1. Run ``./manage.py migrate && ./manage.py change_storage_type gpg unencrypted``.
- This will go through your entire database and Decrypt All The Things.
-2. Remove ``PAPERLESS_PASSPHRASE`` from your ``paperless.conf`` file, or simply
- stop declaring it in your environment.
-
-Special thanks to `erikarvstedt`_, `matthewmoto`_, and `mcronce`_ who did the
-bulk of the work on this big change.
-
-1.4.0
-=====
-
-* `Quentin Dawans`_ has refactored the document consumer to allow for some
- command-line options. Notably, you can now direct it to consume from a
- particular ``--directory``, limit the ``--loop-time``, set the time between
- mail server checks with ``--mail-delta`` or just run it as a one-off with
- ``--one-shot``. See `#305`_ & `#313`_ for more information.
-* Refactor the use of travis/tox/pytest/coverage into two files:
- ``.travis.yml`` and ``setup.cfg``.
-* Start generating requirements.txt from a Pipfile. I'll probably switch over
- to just using pipenv in the future.
-* All for a alternative FreeBSD-friendly location for ``paperless.conf``.
- Thanks to `Martin Arendtsen`_ who provided this (`#322`_).
-* Document consumption events are now logged in the Django admin events log.
- Thanks to `CkuT`_ for doing the legwork on this one and to `Quentin Dawans`_
- & `David Martin`_ for helping to coordinate & work out how the feature would
- be developed.
-* `erikarvstedt`_ contributed a pull request (`#328`_) to add ``--noreload``
- to the default server start process. This helps reduce the load imposed
- by the running webservice.
-* Through some discussion on `#253`_ and `#323`_, we've removed a few of the
- hardcoded URL values to make it easier for people to host Paperless on a
- subdirectory. Thanks to `Quentin Dawans`_ and `Kyle Lucy`_ for helping to
- work this out.
-* The clickable area for documents on the listing page has been increased to a
- more predictable space thanks to a glorious hack from `erikarvstedt`_ in
- `#344`_.
-* `Strubbl`_ noticed an annoying bug in the bash script wrapping the Docker
- entrypoint and fixed it with some very creating Bash skills: `#352`_.
-* You can now use the search field to find documents by tag thanks to
- `thinkjk`_'s *first ever issue*: `#354`_.
-* Inotify is now being used to detect additions to the consume directory thanks
- to some excellent work from `erikarvstedt`_ on `#351`_
-
-1.3.0
-=====
-
-* You can now run Paperless without a login, though you'll still have to create
- at least one user. This is thanks to a pull-request from `matthewmoto`_:
- `#295`_. Note that logins are still required by default, and that you need
- to disable them by setting ``PAPERLESS_DISABLE_LOGIN="true"`` in your
- environment or in ``/etc/paperless.conf``.
-* Fix for `#303`_ where sketchily-formatted documents could cause the consumer
- to break and insert half-records into the database breaking all sorts of
- things. We now capture the return codes of both ``convert`` and ``unpaper``
- and fail-out nicely.
-* Fix for additional date types thanks to input from `Isaac`_ and code from
- `BastianPoe`_ (`#301`_).
-* Fix for running migrations in the Docker container (`#299`_). Thanks to
- `Georgi Todorov`_ for the fix (`#300`_) and to `Pit`_ for the review.
-* Fix for Docker cases where the issuing user is not UID 1000. This was a
- collaborative fix between `Jeffrey Portman`_ and `Pit`_ in `#311`_ and
- `#312`_ to fix `#306`_.
-* Patch the historical migrations to support MySQL's um, *interesting* way of
- handing indexes (`#308`_). Thanks to `Simon Taddiken`_ for reporting the
- problem and helping me find where to fix it.
-
-1.2.0
-=====
-
-* New Docker image, now based on Alpine, thanks to the efforts of `addadi`_
- and `Pit`_. This new image is dramatically smaller than the Debian-based
- one, and it also has `a new home on Docker Hub`_. A proper thank-you to
- `Pit`_ for hosting the image on his Docker account all this time, but after
- some discussion, we decided the image needed a more *official-looking* home.
-* `BastianPoe`_ has added the long-awaited feature to automatically skip the
- OCR step when the PDF already contains text. This can be overridden by
- setting ``PAPERLESS_OCR_ALWAYS=YES`` either in your ``paperless.conf`` or
- in the environment. Note that this also means that Paperless now requires
- ``libpoppler-cpp-dev`` to be installed. **Important**: You'll need to run
- ``pip install -r requirements.txt`` after the usual ``git pull`` to
- properly update.
-* `BastianPoe`_ has also contributed a monumental amount of work (`#291`_) to
- solving `#158`_: setting the document creation date based on finding a date
- in the document text.
-
-1.1.0
-=====
-
-* Fix for `#283`_, a redirect bug which broke interactions with
- paperless-desktop. Thanks to `chris-aeviator`_ for reporting it.
-* Addition of an optional new financial year filter, courtesy of
- `David Martin`_ `#256`_
-* Fixed a typo in how thumbnails were named in exports `#285`_, courtesy of
- `Dan Panzarella`_
-
-1.0.0
-=====
-
-* Upgrade to Django 1.11. **You'll need to run
- ``pip install -r requirements.txt`` after the usual ``git pull`` to
- properly update**.
-* Replace the templatetag-based hack we had for document listing in favour of
- a slightly less ugly solution in the form of another template tag with less
- copypasta.
-* Support for multi-word-matches for auto-tagging thanks to an excellent
- patch from `ishirav`_ `#277`_.
-* Fixed a CSS bug reported by `Stefan Hagen`_ that caused an overlapping of
- the text and checkboxes under some resolutions `#272`_.
-* Patched the Docker config to force the serving of static files. Credit for
- this one goes to `dev-rke`_ via `#248`_.
-* Fix file permissions during Docker start up thanks to `Pit`_ on `#268`_.
-* Date fields in the admin are now expressed as HTML5 date fields thanks to
- `Lukas Winkler`_'s issue `#278`_
-
-0.8.0
-=====
-
-* Paperless can now run in a subdirectory on a host (``/paperless``), rather
- than always running in the root (``/``) thanks to `maphy-psd`_'s work on
- `#255`_.
-
-0.7.0
-=====
-
-* **Potentially breaking change**: As per `#235`_, Paperless will no longer
- automatically delete documents attached to correspondents when those
- correspondents are themselves deleted. This was Django's default
- behaviour, but didn't make much sense in Paperless' case. Thanks to
- `Thomas Brueggemann`_ and `David Martin`_ for their input on this one.
-* Fix for `#232`_ wherein Paperless wasn't recognising ``.tif`` files
- properly. Thanks to `ayounggun`_ for reporting this one and to
- `Kusti Skytén`_ for posting the correct solution in the Github issue.
-
-0.6.0
-=====
-
-* Abandon the shared-secret trick we were using for the POST API in favour
- of BasicAuth or Django session.
-* Fix the POST API so it actually works. `#236`_
-* **Breaking change**: We've dropped the use of ``PAPERLESS_SHARED_SECRET``
- as it was being used both for the API (now replaced with a normal auth)
- and form email polling. Now that we're only using it for email, this
- variable has been renamed to ``PAPERLESS_EMAIL_SECRET``. The old value
- will still work for a while, but you should change your config if you've
- been using the email polling feature. Thanks to `Joshua Gilman`_ for all
- the help with this feature.
-
-0.5.0
-=====
-
-* Support for fuzzy matching in the auto-tagger & auto-correspondent systems
- thanks to `Jake Gysland`_'s patch `#220`_.
-* Modified the Dockerfile to prepare an export directory (`#212`_). Thanks
- to combined efforts from `Pit`_ and `Strubbl`_ in working out the kinks on
- this one.
-* Updated the import/export scripts to include support for thumbnails. Big
- thanks to `CkuT`_ for finding this shortcoming and doing the work to get
- it fixed in `#224`_.
-* All of the following changes are thanks to `David Martin`_:
- * Bumped the dependency on pyocr to 0.4.7 so new users can make use of
- Tesseract 4 if they so prefer (`#226`_).
- * Fixed a number of issues with the automated mail handler (`#227`_, `#228`_)
- * Amended the documentation for better handling of systemd service files (`#229`_)
- * Amended the Django Admin configuration to have nice headers (`#230`_)
-
-0.4.1
-=====
-
-* Fix for `#206`_ wherein the pluggable parser didn't recognise files with
- all-caps suffixes like ``.PDF``
-
-0.4.0
-=====
-
-* Introducing reminders. See `#199`_ for more information, but the short
- explanation is that you can now attach simple notes & times to documents
- which are made available via the API. Currently, the default API
- (basically just the Django admin) doesn't really make use of this, but
- `Thomas Brueggemann`_ over at `Paperless Desktop`_ has said that he would
- like to make use of this feature in his project.
-
-0.3.6
-=====
-
-* Fix for `#200`_ (!!) where the API wasn't configured to allow updating the
- correspondent or the tags for a document.
-* The ``content`` field is now optional, to allow for the edge case of a
- purely graphical document.
-* You can no longer add documents via the admin. This never worked in the
- first place, so all I've done here is remove the link to the broken form.
-* The consumer code has been heavily refactored to support a pluggable
- interface. Install a paperless consumer via pip and tell paperless about
- it with an environment variable, and you're good to go. Proper
- documentation is on its way.
-
-0.3.5
-=====
-
-* A serious facelift for the documents listing page wherein we drop the
- tabular layout in favour of a tiled interface.
-* Users can now configure the number of items per page.
-* Fix for `#171`_: Allow users to specify their own ``SECRET_KEY`` value.
-* Moved the dotenv loading to the top of settings.py
-* Fix for `#112`_: Added checks for binaries required for document
- consumption.
-
-0.3.4
-=====
-
-* Removal of django-suit due to a licensing conflict I bumped into in 0.3.3.
- Note that you *can* use Django Suit with Paperless, but only in a
- non-profit situation as their free license prohibits for-profit use. As a
- result, I can't bundle Suit with Paperless without conflicting with the
- GPL. Further development will be done against the stock Django admin.
-* I shrunk the thumbnails a little 'cause they were too big for me, even on
- my high-DPI monitor.
-* BasicAuth support for document and thumbnail downloads, as well as the Push
- API thanks to @thomasbrueggemann. See `#179`_.
-
-0.3.3
-=====
-
-* Thumbnails in the UI and a Django-suit -based face-lift courtesy of @ekw!
-* Timezone, items per page, and default language are now all configurable,
- also thanks to @ekw.
-
-0.3.2
-=====
-
-* Fix for `#172`_: defaulting ALLOWED_HOSTS to ``["*"]`` and allowing the
- user to set her own value via ``PAPERLESS_ALLOWED_HOSTS`` should the need
- arise.
-
-0.3.1
-=====
-
-* Added a default value for ``CONVERT_BINARY``
-
-0.3.0
-=====
-
-* Updated to using django-filter 1.x
-* Added some system checks so new users aren't confused by misconfigurations.
-* Consumer loop time is now configurable for systems with slow writes. Just
- set ``PAPERLESS_CONSUMER_LOOP_TIME`` to a number of seconds. The default
- is 10.
-* As per `#44`_, we've removed support for ``PAPERLESS_CONVERT``,
- ``PAPERLESS_CONSUME``, and ``PAPERLESS_SECRET``. Please use
- ``PAPERLESS_CONVERT_BINARY``, ``PAPERLESS_CONSUMPTION_DIR``, and
- ``PAPERLESS_SHARED_SECRET`` respectively instead.
-
-0.2.0
-=====
-
-* `#150`_: The media root is now a variable you can set in
- ``paperless.conf``.
-* `#148`_: The database location (sqlite) is now a variable you can set in
- ``paperless.conf``.
-* `#146`_: Fixed a bug that allowed unauthorised access to the ``/fetch``
- URL.
-* `#131`_: Document files are now automatically removed from disk when
- they're deleted in Paperless.
-* `#121`_: Fixed a bug where Paperless wasn't setting document creation time
- based on the file naming scheme.
-* `#81`_: Added a hook to run an arbitrary script after every document is
- consumed.
-* `#98`_: Added optional environment variables for ImageMagick so that it
- doesn't explode when handling Very Large Documents or when it's just
- running on a low-memory system. Thanks to `Florian Harr`_ for his help on
- this one.
-* `#89`_ Ported the auto-tagging code to correspondents as well. Thanks to
- `Justin Snyman`_ for the pointers in the issue queue.
-* Added support for guessing the date from the file name along with the
- correspondent, title, and tags. Thanks to `Tikitu de Jager`_ for his pull
- request that I took forever to merge and to `Pit`_ for his efforts on the
- regex front.
-* `#94`_: Restored support for changing the created date in the UI. Thanks
- to `Martin Honermeyer`_ and `Tim White`_ for working with me on this.
-
-0.1.1
-=====
-
-* Potentially **Breaking Change**: All references to "sender" in the code
- have been renamed to "correspondent" to better reflect the nature of the
- property (one could quite reasonably scan a document before sending it to
- someone.)
-* `#67`_: Rewrote the document exporter and added a new importer that allows
- for full metadata retention without depending on the file name and
- modification time. A big thanks to `Tikitu de Jager`_, `Pit`_,
- `Florian Jung`_, and `Christopher Luu`_ for their code snippets and
- contributing conversation that lead to this change.
-* `#20`_: Added *unpaper* support to help in cleaning up the scanned image
- before it's OCR'd. Thanks to `Pit`_ for this one.
-* `#71`_ Added (encrypted) thumbnails in anticipation of a proper UI.
-* `#68`_: Added support for using a proper config file at
- ``/etc/paperless.conf`` and modified the systemd unit files to use it.
-* Refactored the Vagrant installation process to use environment variables
- rather than asking the user to modify ``settings.py``.
-* `#44`_: Harmonise environment variable names with constant names.
-* `#60`_: Setup logging to actually use the Python native logging framework.
-* `#53`_: Fixed an annoying bug that caused ``.jpeg`` and ``.JPG`` images
- to be imported but made unavailable.
-
-0.1.0
-=====
-
-* Docker support! Big thanks to `Wayne Werner`_, `Brian Conn`_, and
- `Tikitu de Jager`_ for this one, and especially to `Pit`_
- who spearheadded this effort.
-* A simple REST API is in place, but it should be considered unstable.
-* Cleaned up the consumer to use temporary directories instead of a single
- scratch space. (Thanks `Pit`_)
-* Improved the efficiency of the consumer by parsing pages more intelligently
- and introducing a threaded OCR process (thanks again `Pit`_).
-* `#45`_: Cleaned up the logic for tag matching. Reported by `darkmatter`_.
-* `#47`_: Auto-rotate landscape documents. Reported by `Paul`_ and fixed by
- `Pit`_.
-* `#48`_: Matching algorithms should do so on a word boundary (`darkmatter`_)
-* `#54`_: Documented the re-tagger (`zedster`_)
-* `#57`_: Make sure file is preserved on import failure (`darkmatter`_)
-* Added tox with pep8 checking
-
-0.0.6
-=====
-
-* Added support for parallel OCR (significant work from `Pit`_)
-* Sped up the language detection (significant work from `Pit`_)
-* Added simple logging
-
-0.0.5
-=====
-
-* Added support for image files as documents (png, jpg, gif, tiff)
-* Added a crude means of HTTP POST for document imports
-* Added IMAP mail support
-* Added a re-tagging utility
-* Documentation for the above as well as data migration
-
-0.0.4
-=====
-
-* Added automated tagging basted on keyword matching
-* Cleaned up the document listing page
-* Removed ``User`` and ``Group`` from the admin
-* Added ``pytz`` to the list of requirements
-
-0.0.3
-=====
-
-* Added basic tagging
-
-0.0.2
-=====
-
-* Added language detection
-* Added datestamps to ``document_exporter``.
-* Changed ``settings.TESSERACT_LANGUAGE`` to ``settings.OCR_LANGUAGE``.
-
-0.0.1
-=====
-
-* Initial release
-
-.. _Alexander Menk: https://github.com/amenk
-.. _puuu: https://github.com/puuu
-.. _WhiteHatTux: https://github.com/WhiteHatTux
-.. _Chris Nagy: https://github.com/what-name
-.. _sbrl: https://github.com/sbrl
-.. _slorenz: https://github.com/sisao
-.. _Jo Vandeginste: https://github.com/jovandeginste
-.. _zjean: https://github.com/zjean
-.. _rYR79435: https://github.com/rYR79435
-.. _Michael Shamoon: https://github.com/shamoon
-.. _jayme-github: http://github.com/jayme-github
-.. _Brian Conn: https://github.com/TheConnMan
-.. _Christopher Luu: https://github.com/nuudles
-.. _Florian Jung: https://github.com/the01
-.. _Tikitu de Jager: https://github.com/tikitu
-.. _Paul: https://github.com/polo2ro
-.. _Pit: https://github.com/pitkley
-.. _Wayne Werner: https://github.com/waynew
-.. _darkmatter: https://github.com/darkmatter
-.. _zedster: https://github.com/zedster
-.. _Martin Honermeyer: https://github.com/djmaze
-.. _Tim White: https://github.com/timwhite
-.. _Florian Harr: https://github.com/evils
-.. _Justin Snyman: https://github.com/stringlytyped
-.. _Thomas Brueggemann: https://github.com/thomasbrueggemann
-.. _Jake Gysland: https://github.com/jgysland
-.. _Strubbl: https://github.com/strubbl
-.. _CkuT: https://github.com/CkuT
-.. _David Martin: https://github.com/ddddavidmartin
-.. _Paperless Desktop: https://github.com/thomasbrueggemann/paperless-desktop
-.. _Joshua Gilman: https://github.com/jmgilman
-.. _ayounggun: https://github.com/ayounggun
-.. _Kusti Skytén: https://github.com/kskyten
-.. _maphy-psd: https://github.com/maphy-psd
-.. _ishirav: https://github.com/ishirav
-.. _Stefan Hagen: https://github.com/xkpd3
-.. _dev-rke: https://github.com/dev-rke
-.. _Lukas Winkler: https://github.com/Findus23
-.. _chris-aeviator: https://github.com/chris-aeviator
-.. _Dan Panzarella: https://github.com/pzl
-.. _addadi: https://github.com/addadi
-.. _BastianPoe: https://github.com/BastianPoe
-.. _matthewmoto: https://github.com/matthewmoto
-.. _Isaac: https://github.com/isaacsando
-.. _Georgi Todorov: https://github.com/TeraHz
-.. _Jeffrey Portman: https://github.com/ChromoX
-.. _Simon Taddiken: https://github.com/skuzzle
-.. _Quentin Dawans: https://github.com/ovv
-.. _Martin Arendtsen: https://github.com/Arendtsen
-.. _erikarvstedt: https://github.com/erikarvstedt
-.. _Kyle Lucy: https://github.com/kmlucy
-.. _thinkjk: https://github.com/thinkjk
-.. _mcronce: https://github.com/mcronce
-.. _Enno Lohmeier: https://github.com/elohmeier
-.. _Mark McFate: https://github.com/SummittDweller
-.. _dadosch: https://github.com/dadosch
-.. _Wolfgang Mader: https://github.com/wmader
-.. _Tim Brooks: https://github.com/brookst
-.. _Stéphane Brunner: https://github.com/sbrunner
-.. _Kilian Koeltzsch: https://github.com/kiliankoe
-.. _Lukasz Soluch: https://github.com/LukaszSolo
-.. _Joshua Taillon: https://github.com/jat255
-.. _dubit0: https://github.com/dubit0
-.. _ahyear: https://github.com/ahyear
-.. _jonaswinkler: https://github.com/jonaswinkler
-.. _thepill: https://github.com/thepill
-.. _Andrew Peng: https://github.com/pengc99
-.. _euri10: https://github.com/euri10
-.. _Ulli: https://github.com/Ulli2k
-.. _tsia: https://github.com/tsia
-.. _Sblop: https://github.com/Sblop
-.. _Colin Frei: https://github.com/colinfrei
-.. _khrise: https://github.com/khrise
-.. _syntonym: https://github.com/syntonym
-.. _JOKer: https://github.com/MasterofJOKers
-.. _Brian Cribbs: https://github.com/cribbstechnolog
-.. _Brendan M. Sleight: https://github.com/bmsleight
-.. _Daniel Albers: https://github.com/AlD
-.. _@shamoon: https://github.com/shamoon
-.. _@amenk: https://github.com/amenk
-.. _@dblitt: https://github.com/dblitt
-.. _@evilsidekick293: https://github.com/evilsidekick293
-.. _@m0veax: https://github.com/m0veax
-.. _@fignew: https://github.com/fignew
-.. _@muued: https://github.com/muued
-.. _@isigmund: https://github.com/isigmund
-.. _@denilsonsa: https://github.com/denilsonsa
-.. _@sAksham-Ar: https://github.com/sAksham-Ar
-.. _@philpagel: https://github.com/philpagel
-.. _@davemachado: https://github.com/davemachado
-.. _@2600box: https://github.com/2600box
-.. _@qcasey: https://github.com/qcasey
-.. _@kpj: https://github.com/kpj
-.. _@mweimerskirch: https://github.com/mweimerskirch
-.. _@filcuk: https://github.com/filcuk
-.. _@FrankStrieter: https://github.com/FrankStrieter
-.. _@tribut: https://github.com/tribut
-.. _@yschroeder: https://github.com/yschroeder
-.. _@gador: https://github.com/gador
-.. _@Nicarim: https://github.com/Nicarim
-.. _@bauerj: https://github.com/bauerj
-.. _@a17t: https://github.com/a17t
-.. _@alexander-bauer: https://github.com/alexander-bauer
-.. _@apeltzer: https://github.com/apeltzer
-.. _@Timoms: https://github.com/Timoms
-.. _@sbrunner: https://github.com/sbrunner
-.. _@slankes: https://github.com/slankes
-.. _@mattlamb99: https://github.com/mattlamb99
-.. _@padraigkitterick: https://github.com/padraigkitterick
-.. _@ajkavanagh: https://github.com/ajkavanagh
-.. _@Tooa: https://github.com/Tooa
-.. _@Unkn0wnCat: https://github.com/Unkn0wnCat
-.. _@pewter77: https://github.com/pewter77
-.. _@cschmatzler: https://github.com/cschmatzler
-.. _@muellermartin: https://github.com/muellermartin
-.. _@stumpylog: https://github.com/stumpylog
-.. _@Toxix: https://github.com/Toxix
-.. _@benjaminfrank: https://github.com/benjaminfrank
-.. _@azapater: https://github.com/azapater
-.. _@tim-vogel: https://github.com/tim-vogel
-.. _@jschpp: https://github.com/jschpp
-.. _@schnuffle: https://github.com/schnuffle
-.. _@GruberViktor: https://github.com/gruberviktor
-.. _@hacker-h: https://github.com/hacker-h
-.. _@danielBreitlauch: https://github.com/danielbreitlauch
-.. _@miku323: https://github.com/miku323
-.. _@FaintGhost: https://github.com/FaintGhost
-.. _@DarkoBG79: https://github.com/DarkoBG79
-.. _Kemal Secer: https://crowdin.com/profile/kemal.secer
-.. _@Prominence: https://github.com/Prominence
-.. _@jonasc: https://github.com/jonasc
-
-.. _#20: https://github.com/the-paperless-project/paperless/issues/20
-.. _#44: https://github.com/the-paperless-project/paperless/issues/44
-.. _#45: https://github.com/the-paperless-project/paperless/issues/45
-.. _#47: https://github.com/the-paperless-project/paperless/issues/47
-.. _#48: https://github.com/the-paperless-project/paperless/issues/48
-.. _#53: https://github.com/the-paperless-project/paperless/issues/53
-.. _#54: https://github.com/the-paperless-project/paperless/issues/54
-.. _#57: https://github.com/the-paperless-project/paperless/issues/57
-.. _#60: https://github.com/the-paperless-project/paperless/issues/60
-.. _#67: https://github.com/the-paperless-project/paperless/issues/67
-.. _#68: https://github.com/the-paperless-project/paperless/issues/68
-.. _#71: https://github.com/the-paperless-project/paperless/issues/71
-.. _#81: https://github.com/the-paperless-project/paperless/issues/81
-.. _#89: https://github.com/the-paperless-project/paperless/issues/89
-.. _#94: https://github.com/the-paperless-project/paperless/issues/94
-.. _#98: https://github.com/the-paperless-project/paperless/issues/98
-.. _#112: https://github.com/the-paperless-project/paperless/issues/112
-.. _#121: https://github.com/the-paperless-project/paperless/issues/121
-.. _#131: https://github.com/the-paperless-project/paperless/issues/131
-.. _#146: https://github.com/the-paperless-project/paperless/issues/146
-.. _#148: https://github.com/the-paperless-project/paperless/pull/148
-.. _#150: https://github.com/the-paperless-project/paperless/pull/150
-.. _#158: https://github.com/the-paperless-project/paperless/issues/158
-.. _#171: https://github.com/the-paperless-project/paperless/issues/171
-.. _#172: https://github.com/the-paperless-project/paperless/issues/172
-.. _#179: https://github.com/the-paperless-project/paperless/pull/179
-.. _#199: https://github.com/the-paperless-project/paperless/issues/199
-.. _#200: https://github.com/the-paperless-project/paperless/issues/200
-.. _#206: https://github.com/the-paperless-project/paperless/issues/206
-.. _#212: https://github.com/the-paperless-project/paperless/pull/212
-.. _#220: https://github.com/the-paperless-project/paperless/pull/220
-.. _#224: https://github.com/the-paperless-project/paperless/pull/224
-.. _#226: https://github.com/the-paperless-project/paperless/pull/226
-.. _#227: https://github.com/the-paperless-project/paperless/pull/227
-.. _#228: https://github.com/the-paperless-project/paperless/pull/228
-.. _#229: https://github.com/the-paperless-project/paperless/pull/229
-.. _#230: https://github.com/the-paperless-project/paperless/pull/230
-.. _#232: https://github.com/the-paperless-project/paperless/issues/232
-.. _#235: https://github.com/the-paperless-project/paperless/issues/235
-.. _#236: https://github.com/the-paperless-project/paperless/issues/236
-.. _#255: https://github.com/the-paperless-project/paperless/pull/255
-.. _#268: https://github.com/the-paperless-project/paperless/pull/268
-.. _#277: https://github.com/the-paperless-project/paperless/pull/277
-.. _#272: https://github.com/the-paperless-project/paperless/issues/272
-.. _#248: https://github.com/the-paperless-project/paperless/issues/248
-.. _#278: https://github.com/the-paperless-project/paperless/issues/248
-.. _#283: https://github.com/the-paperless-project/paperless/issues/283
-.. _#256: https://github.com/the-paperless-project/paperless/pull/256
-.. _#285: https://github.com/the-paperless-project/paperless/pull/285
-.. _#291: https://github.com/the-paperless-project/paperless/pull/291
-.. _#295: https://github.com/the-paperless-project/paperless/pull/295
-.. _#299: https://github.com/the-paperless-project/paperless/issues/299
-.. _#300: https://github.com/the-paperless-project/paperless/pull/300
-.. _#301: https://github.com/the-paperless-project/paperless/issues/301
-.. _#303: https://github.com/the-paperless-project/paperless/issues/303
-.. _#305: https://github.com/the-paperless-project/paperless/issues/305
-.. _#306: https://github.com/the-paperless-project/paperless/issues/306
-.. _#308: https://github.com/the-paperless-project/paperless/issues/308
-.. _#311: https://github.com/the-paperless-project/paperless/pull/311
-.. _#312: https://github.com/the-paperless-project/paperless/pull/312
-.. _#313: https://github.com/the-paperless-project/paperless/pull/313
-.. _#322: https://github.com/the-paperless-project/paperless/pull/322
-.. _#328: https://github.com/the-paperless-project/paperless/pull/328
-.. _#253: https://github.com/the-paperless-project/paperless/issues/253
-.. _#262: https://github.com/the-paperless-project/paperless/issues/262
-.. _#323: https://github.com/the-paperless-project/paperless/issues/323
-.. _#344: https://github.com/the-paperless-project/paperless/pull/344
-.. _#351: https://github.com/the-paperless-project/paperless/pull/351
-.. _#352: https://github.com/the-paperless-project/paperless/pull/352
-.. _#354: https://github.com/the-paperless-project/paperless/issues/354
-.. _#371: https://github.com/the-paperless-project/paperless/issues/371
-.. _#374: https://github.com/the-paperless-project/paperless/pull/374
-.. _#375: https://github.com/the-paperless-project/paperless/pull/375
-.. _#376: https://github.com/the-paperless-project/paperless/pull/376
-.. _#383: https://github.com/the-paperless-project/paperless/pull/383
-.. _#384: https://github.com/the-paperless-project/paperless/issues/384
-.. _#386: https://github.com/the-paperless-project/paperless/issues/386
-.. _#387: https://github.com/the-paperless-project/paperless/pull/387
-.. _#391: https://github.com/the-paperless-project/paperless/pull/391
-.. _#390: https://github.com/the-paperless-project/paperless/pull/390
-.. _#392: https://github.com/the-paperless-project/paperless/issues/392
-.. _#393: https://github.com/the-paperless-project/paperless/issues/393
-.. _#395: https://github.com/the-paperless-project/paperless/pull/395
-.. _#394: https://github.com/the-paperless-project/paperless/issues/394
-.. _#396: https://github.com/the-paperless-project/paperless/pull/396
-.. _#399: https://github.com/the-paperless-project/paperless/pull/399
-.. _#400: https://github.com/the-paperless-project/paperless/pull/400
-.. _#401: https://github.com/the-paperless-project/paperless/pull/401
-.. _#405: https://github.com/the-paperless-project/paperless/pull/405
-.. _#406: https://github.com/the-paperless-project/paperless/issues/406
-.. _#412: https://github.com/the-paperless-project/paperless/issues/412
-.. _#413: https://github.com/the-paperless-project/paperless/pull/413
-.. _#414: https://github.com/the-paperless-project/paperless/issues/414
-.. _#423: https://github.com/the-paperless-project/paperless/issues/423
-.. _#433: https://github.com/the-paperless-project/paperless/issues/433
-.. _#440: https://github.com/the-paperless-project/paperless/pull/440
-.. _#441: https://github.com/the-paperless-project/paperless/pull/441
-.. _#442: https://github.com/the-paperless-project/paperless/pull/442
-.. _#466: https://github.com/the-paperless-project/paperless/pull/466
-.. _#471: https://github.com/the-paperless-project/paperless/pull/471
-.. _#475: https://github.com/the-paperless-project/paperless/pull/475
-.. _#481: https://github.com/the-paperless-project/paperless/pull/481
-.. _#483: https://github.com/the-paperless-project/paperless/pull/483
-.. _#484: https://github.com/the-paperless-project/paperless/pull/484
-.. _#488: https://github.com/the-paperless-project/paperless/pull/488
-.. _#489: https://github.com/the-paperless-project/paperless/pull/489
-.. _#492: https://github.com/the-paperless-project/paperless/pull/492
-.. _#674: https://github.com/paperless-ngx/paperless-ngx/pull/674
-
-.. _a new home on Docker Hub: https://hub.docker.com/r/danielquinn/paperless/
-.. _optipng: http://optipng.sourceforge.net/
-.. _DjangoQL: https://github.com/ivelum/djangoql
-.. _ansible repo: https://github.com/paperless-ngx/paperless-ngx-ansible
diff --git a/docs/conf.py b/docs/conf.py
index 0f30772ea..096ccc1af 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -14,13 +14,17 @@ extensions = [
"sphinx.ext.imgmath",
"sphinx.ext.viewcode",
"sphinx_rtd_theme",
+ "myst_parser",
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# The suffix of source filenames.
-source_suffix = ".rst"
+source_suffix = {
+ ".rst": "restructuredtext",
+ ".md": "markdown",
+}
# The encoding of source files.
# source_encoding = 'utf-8-sig'
diff --git a/docs/index.rst b/docs/index.rst
index 040d39e4f..715fef588 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -52,7 +52,7 @@ resources in the documentation:
* Paperless is now integrated with a
:ref:`task processing queue ` that tells you
at a glance when and why something is not working.
-* The :ref:`changelog ` contains a detailed list of all changes
+* The :doc:`changelog ` contains a detailed list of all changes
in paperless-ngx.
Contents
diff --git a/docs/setup.rst b/docs/setup.rst
index d3290b432..ffc81791b 100644
--- a/docs/setup.rst
+++ b/docs/setup.rst
@@ -513,7 +513,7 @@ how you installed paperless.
This setup describes how to update an existing paperless Docker installation.
The important things to keep in mind are as follows:
-* Read the :ref:`changelog ` and take note of breaking changes.
+* Read the :doc:`changelog ` and take note of breaking changes.
* You should decide if you want to stick with SQLite or want to migrate your database
to PostgreSQL. See :ref:`setup-sqlite_to_psql` for details on how to move your data from
SQLite to PostgreSQL. Both work fine with paperless. However, if you already have a