### Document importer {#importer}
The document importer takes the export produced by the [Document
-exporter](#document-exporter) and imports it into paperless.
+exporter](#exporter) and imports it into paperless.
The importer works just like the exporter. You point it at a directory,
and the script does the rest of the work:
Paperless checks the filename of a document whenever it is saved.
Therefore, you need to update the filenames of your documents and move
them after altering this setting by invoking the
- [`document renamer`](administration#renamer).
+ [`document renamer`](/administration#renamer).
!!! warning
# The REST API
Paperless makes use of the [Django REST
-Framework](http://django-rest-framework.org/) standard API interface. It
+Framework](https://django-rest-framework.org/) standard API interface. It
provides a browsable API for most of its endpoints, which you can
inspect at `http://<paperless-host>:<port>/api/`. This also documents
most of the available filters and ordering fields.
results:
- `/api/documents/?query=your%20search%20query`: Search for a document
- using a full text query. For details on the syntax, see [Basic Usage - Searching](usage#basic-usage_searching).
+ using a full text query. For details on the syntax, see [Basic Usage - Searching](/usage#basic-usage_searching).
- `/api/documents/?more_like=1234`: Search for documents similar to
the document with id 1234.
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
+ worker called [uvicorn](https://www.uvicorn.org/), and there is no
need to configure anything.
For bare metal installations, changes are required for the
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),
+ - Thanks to [jayme-github](https://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
### 2.5.0
- **New dependency**: Paperless now optimises thumbnail generation
- with [optipng](http://optipng.sourceforge.net/), so you'll need to
+ with [optipng](https://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
!!! warning
- Using MariaDB comes with some caveats. See [MySQL Caveats](advanced_usage#mysql-caveats).
+ Using MariaDB comes with some caveats. See [MySQL Caveats](/advanced_usage#mysql-caveats).
`PAPERLESS_DBHOST=<hostname>`
`PAPERLESS_FILENAME_FORMAT=<format>`
: Changes the filenames paperless uses to store documents in the media
-directory. See [File name handling](advanced_usage#file-name-handling) for details.
+directory. See [File name handling](/advanced_usage#file-name-handling) for details.
Default is none, which disables this feature.
: Tells paperless to replace placeholders in
`PAPERLESS_FILENAME_FORMAT` that would resolve to
'none' to be omitted from the resulting filename. This also holds
-true for directory names. See [File name handling](advanced_usage#file-name-handling) for
+true for directory names. See [File name handling](/advanced_usage#file-name-handling) for
details.
Defaults to `false` which disables this feature.
: After a document is consumed, Paperless can trigger an arbitrary
script if you like. This script will be passed a number of arguments
-for you to work with. For more information, take a look at [Post-consumption script](advanced_usage#post-consume-script).
+for you to work with. For more information, take a look at [Post-consumption script](/advanced_usage#post-consume-script).
The default is blank, which means nothing will be executed.
[Flower](https://flower.readthedocs.io/en/latest/index.html) will be
started by the container.
- You can read more about this in the [advanced documentation](advanced#celery-monitoring).
+ You can read more about this in the [advanced documentation](/advanced_usage#celery-monitoring).
## Update Checking {#update-checking}
- By default, paperless uses the internal ID of each document as its
filename. This might not be very convenient for export. However, you
can adjust the way files are stored in paperless by
- [configuring the filename format](advanced_usage#file-name-handling).
-- [The exporter](administration#exporter) is
+ [configuring the filename format](/advanced_usage#file-name-handling).
+- [The exporter](/administration#exporter) is
another easy way to get your files out of paperless with reasonable
file names.
WebP images are processed with OCR and converted into PDF documents.
- Plain text documents are supported as well and are added verbatim to
paperless.
-- With the optional Tika integration enabled (see [Tika configuration](configuration#tika),
+- With the optional Tika integration enabled (see [Tika configuration](/configuration#tika),
Paperless also supports various Office documents (.docx, .doc, odt,
.ppt, .pptx, .odp, .xls, .xlsx, .ods).
!!! note
You can adjust some of the settings so that paperless uses less
- processing power. See [setup](setup#less-powerful-devices) for details.
+ processing power. See [setup](/setup#less-powerful-devices) for details.
## _How do I install paperless-ngx on Raspberry Pi?_
## _How do I proxy this with NGINX?_
-**A:** See [here](setup#nginx).
+**A:** See [here](/setup#nginx).
## _How do I get WebSocket support with Apache mod_wsgi_?
**Paperless-ngx** is a _community-supported_ open-source document management system that transforms your
physical documents into a searchable online archive so you can keep, well, _less paper_.
-[Get started](/setup/){ .md-button .md-button--primary .index-callout }
+[Get started](/setup){ .md-button .md-button--primary .index-callout }
[Demo](https://demo.paperless-ngx.com){ .md-button .md-button--secondary target=\_blank }
</div>
- [Some screenshots](#screenshots) of the new UI are available.
- Read [this section](/advanced_usage/#advanced-automatic-matching) if you want to learn about how paperless automates all
tagging using machine learning.
-- Paperless now comes with a [proper email consumer](/usage/#usage-email) that's fully tested and production ready.
+- Paperless now comes with a [proper email consumer](/usage#usage-email) that's fully tested and production ready.
- Paperless creates searchable PDF/A documents from whatever you put into the consumption directory. This means
that you can select text in image-only documents coming from your scanner.
-- See [this note](/administration/#utilities-encyption) about GnuPG encryption in paperless-ngx.
+- See [this note](/administration#utilities-encyption) about GnuPG encryption in paperless-ngx.
- Paperless is now integrated with a
[task processing queue](/setup#task_processor) that tells you at a glance when and why something is not working.
- The [changelog](/changelog) contains a detailed list of all changes in paperless-ngx.
You can go multiple routes to setup and run Paperless:
-- [Use the easy install docker script](/setup#docker_script)
-- [Pull the image from Docker Hub](/setup#docker_hub)
-- [Build the Docker image yourself](/setup#docker_build)
-- [Install Paperless directly on your system manually (bare metal)](/setup#bare_metal)
+- [Use the easy install docker script](#docker_script)
+- [Pull the image from Docker Hub](#docker_hub)
+- [Build the Docker image yourself](#docker_build)
+- [Install Paperless directly on your system manually (bare metal)](#bare_metal)
The Docker routes are quick & easy. These are the recommended routes.
This configures all the stuff from the above automatically so that it
certain, more updated software. If you want to build these images
your self, that is possible, but beyond the scope of these steps.
-4. Follow steps 3 to 8 of [Docker Setup](setup#docker_hub)
+4. Follow steps 3 to 8 of [Docker Setup](#docker_hub)
role="ref"}. When asked to run `docker-compose pull` to pull the
image, do
<https://github.com/paperless-ngx/paperless-ngx/releases>. Extract the
archive to a place from where you wish to execute it, such as
`/opt/paperless`. If you clone the git repo as it is, you also have to
- compile the frontend yourself, see [here](/development/#front-end-development)
+ compile the frontend yourself, see [here](/development#front-end-development)
and use the `build` step, not `serve`.
-5. Configure paperless. See [configuration](configuration) for details.
+5. Configure paperless. See [configuration](/configuration) for details.
Edit the included `paperless.conf` and adjust the settings to your
needs. Required settings for getting
paperless running are:
allows third parties to forge authentication credentials.
- `PAPERLESS_URL` if you are behind a reverse proxy. This should
point to your domain. Please see
- [configuration](configuration) for more
+ [configuration](/configuration) for more
information.
Many more adjustments can be made to paperless, especially the OCR
not available for most distributions.
15. Optional: If using the NLTK machine learning processing (see
- `PAPERLESS_ENABLE_NLTK` in [configuration](configuration#software_tweaks) for details),
+ `PAPERLESS_ENABLE_NLTK` in [configuration](/configuration#software_tweaks) for details),
download the NLTK data for the Snowball
Stemmer, Stopwords and Punkt tokenizer to your
`PAPERLESS_DATA_DIR/nltk`. Refer to the [NLTK
the docker-compose files from
[here](https://github.com/paperless-ngx/paperless-ngx/tree/master/docker/compose)
or clone the repository to build the image yourself (see
- [above](/setup#docker_build)). You can
+ [above](#docker_build)). You can
either replace your current paperless folder or put paperless-ngx in
a different location.
after you migrated your existing SQLite database.
5. Adjust `docker-compose.yml` and `docker-compose.env` to your needs.
- See [Docker setup](setup#docker_hub) details on
+ See [Docker setup](#docker_hub) details on
which edits are advised.
6. [Update paperless.](/administration#updating)
!!! warning
MySQL is case insensitive by default, treating values like "Name" and
- "NAME" as identical. See [MySQL caveats](advanced##mysql-caveats) for details.
+ "NAME" as identical. See [MySQL caveats](/advanced_usage#mysql-caveats) for details.
!!! warning
file to `docker-compose.yml`. Remember to adjust the consumption
directory, if necessary.
b) Without docker, configure the database in your `paperless.conf`
- file. See [configuration](configuration) for
+ file. See [configuration](/configuration) for
details.
3. Open a shell and initialize the database:
more advanced language processing, which can take more memory and
processing time.
-For details, refer to [configuration](configuration).
+For details, refer to [configuration](/configuration).
!!! note
warns that
`OCR for XX failed, but we're going to stick with what we've got since FORGIVING_OCR is enabled`,
then you might need to install the [Tesseract language
-files](http://packages.ubuntu.com/search?keywords=tesseract-ocr)
+files](https://packages.ubuntu.com/search?keywords=tesseract-ocr)
marching your document's languages.
As an example, if you are running Paperless-ngx from any Ubuntu or
This happens when paperless does not have permission to delete files
inside the consumption directory. Ensure that `USERMAP_UID` and
`USERMAP_GID` are set to the user id and group id you use on the host
-operating system, if these are different from `1000`. See [Docker setup](setup#docker_hub).
+operating system, if these are different from `1000`. See [Docker setup](/setup#docker_hub).
Also ensure that you are able to read and write to the consumption
directory on the host.
setup some sort of service to accept the files from the scanner.
Typically, you're looking at an FTP server like
[Proftpd](http://www.proftpd.org/) or a Windows folder share with
-[Samba](http://www.samba.org/).
+[Samba](https://www.samba.org/).
### Web UI Upload
paperless will assign them automatically. After consuming a couple
documents, you can even ask paperless to *learn* when to assign tags and
correspondents by itself. For details on this feature, see
- [advanced matching](advanced_usage#matching).
+ [advanced matching](/advanced_usage#matching).
### Task management