{"id":4994,"date":"2026-01-10T16:52:17","date_gmt":"2026-01-10T15:52:17","guid":{"rendered":"https:\/\/michael-hoepfl.com\/netzwelt\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/"},"modified":"2026-08-11T14:22:00","modified_gmt":"2026-08-11T12:22:00","slug":"installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation","status":"publish","type":"post","link":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/","title":{"rendered":"Installing Paperless-NGX: Requirements, Deployment Models and the Path to a Working Installation"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Paperless-NGX is not a \u201cclick and you\u2019re done\u201d tool, but a platform deliberately designed for flexibility and self-hosting. Before dealing with details such as folder structures or automation, it is therefore worth taking a step back and clarifying:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>What requirements does Paperless have?<\/li>\n\n\n\n<li>In which environments can it be operated?<\/li>\n\n\n\n<li>What steps does a realistic installation involve?<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">On a Synology NAS, however, Paperless-NGX can be operated comparatively easily. With the integrated container application (Container Manager) and a basic understanding of Docker containers, a working basic installation can be implemented in a manageable amount of time. A simple configuration is enough to import, process and store documents in a searchable form.<\/p>\n\n<p class=\"wp-block-paragraph\">This basic installation is often the starting point. Once a minimal configuration is working, Paperless can be extended step by step \u2013 for example with more refined workflows, additional automation or optimised storage connections. Support from AI systems such as ChatGPT can help you understand configuration files, expand options selectively and avoid typical pitfalls. Alongside the functional result, you inevitably gain technical knowledge as well.<\/p>\n\n<p class=\"wp-block-paragraph\">This article is intended to provide exactly that orientation \u2013 without immediately diving into specialist topics such as NFS, performance tuning or fine optimisation.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading has-text-align-center has-medium-font-size\">More Articles About Paperless-ngx<\/h3>\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/michael-hoepfl.com\/en\/technology\/what-paperless-ngx-really-delivers-in-everyday-use\/01-2026\/\">What Paperless-NGX Really Delivers in Everyday Use<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/michael-hoepfl.com\/technologie\/paperless-ngx-auf-synology-nfs-mounts-saubere-drive-integration-und-ein-stabiles-docker-setup\/01-2026\/\">Paperless-NGX on Synology: NFS Mounts, Clean Drive Integration and a Stable Docker Setup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/michael-hoepfl.com\/technologie\/paperless-ngx-troubleshooting-typische-stolperfallen-und-schnelle-checks\/01-2026\/\">Paperless-NGX Troubleshooting \u2013 Common Pitfalls and Quick Checks<\/a><\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">What Do You Fundamentally Need for Paperless-NGX?<\/h2>\n\n<p class=\"wp-block-paragraph\">Paperless-NGX is a server-side application and requires a Linux-based runtime environment. Specifically, that means:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>a Linux system (physical or virtual)<\/li>\n\n\n\n<li>sufficient storage space for documents<\/li>\n\n\n\n<li>Docker or Docker Compose (recommended)<\/li>\n\n\n\n<li>a basic understanding of containers, volumes and networking<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">The hardware requirements are surprisingly moderate. Paperless is used productively on:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>conventional Linux servers (VM or bare metal)<\/li>\n\n\n\n<li>NAS systems with Docker support<\/li>\n\n\n\n<li>mini PCs<\/li>\n\n\n\n<li>even a Raspberry Pi, provided you have realistic expectations regarding performance and OCR throughput<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>What matters more than CPU performance is:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>sufficient RAM<\/li>\n\n\n\n<li>reliable storage<\/li>\n\n\n\n<li>clean integration of the data directories<\/li>\n<\/ul>\n\t\t<!-- begin AlertsDLX output -->\n\t\t<style>\n\t\t\t#alerts-dlx-bc174ea0 {\n\t\t\t\tmax-width: 650vw;\n\t\t\t\t--alerts-dlx-base-font-size: 14px;\n\t\t\t\t--alerts-dlx-bootstrap-base-size: 14px;\n\t\t\t}\n\t\t\t#alerts-dlx-bc174ea0 .alerts-dlx-icon-preview svg {\n\t\t\t\tmax-width: 1.8em;\n\t\t\t\tmax-height: 1.8em;\n\t\t\t}\n\t\t<\/style>\n\t\t<div\n\t\t\tclass=\"alerts-dlx template-bootstrap is-style-secondary is-appearance-default icon-vertical-align-top aligncenter\"\n\t\t\tdata-expiration=\"0\"\n\t\t>\n\t\t\t<figure\n\t\t\t\trole=\"alert\"\n\t\t\t\tclass=\"alerts-dlx-alert alerts-dlx-bootstrap alerts-dlx-has-icon alerts-dlx-has-description\"\n\t\t\t\tid=\"alerts-dlx-bc174ea0\"\n\t\t\t>\n\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-icon alerts-dlx-icon-frontend\" aria-hidden=\"true\">\n\t\t\t\t\t\t<div class=\"alerts-dlx-icon-preview\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"currentColor\" class=\"bi bi-info-square-fill\" viewbox=\"0 0 16 16\"><path d=\"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm8.93 4.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<section>\n\t\t\t\t\t<h2 class=\"alerts-dlx-title\">Praxisbeispiel: Paperless-NGX auf einer \u00e4lteren Synology DiskStation<\/h2>\t\t\t\t\t<div class=\"alerts-dlx-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-content\">\n\t\t\t\t\t\t\t\t<p class=\"wp-block-paragraph\">In my case, Paperless-NGX runs on a Synology DiskStation from 2018. Its CPU is now more than five years old and certainly not among the most powerful models. Nevertheless, Paperless can be used productively on it without problems.<\/p>\n<p class=\"wp-block-paragraph\">As I added more Docker containers, I upgraded the DiskStation\u2019s memory from 8 GB to 16 GB. This step alone had a clearly noticeable effect: both Paperless and other container applications became more stable and noticeably more responsive overall.<\/p>\n<p class=\"wp-block-paragraph\">In a second step, I equipped the DiskStation with a read\/write cache consisting of two 250 GB M.2 SSDs. Since then, Paperless-NGX and the other Docker services have run very smoothly and reliably \u2013 even with parallel use and regular document processing.<\/p>\n<p class=\"wp-block-paragraph\">This setup shows that Paperless-NGX does not require high-end hardware. With sufficient RAM, reliable storage and a well-designed container configuration, a stable and responsive environment can be built even on older hardware.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t<\/figure>\n\t\t<\/div>\n\t\t<!-- end AlertsDLX output -->\n\t\t\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Possible Deployment Models<\/h2>\n\n<p class=\"wp-block-paragraph\">Before choosing an installation path, you should be clear about the deployment model.<\/p>\n\n<h3 class=\"wp-block-heading\">1. Self-Hosting on Your Own Hardware<\/h3>\n\n<p class=\"wp-block-paragraph\">This is the classic approach:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>full control over your data<\/li>\n\n\n\n<li>maximum flexibility<\/li>\n\n\n\n<li>slightly more technical effort<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Typical environments:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Linux server<\/li>\n\n\n\n<li>NAS with Docker (e.g. Synology)<\/li>\n\n\n\n<li>mini server or Raspberry Pi<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">2. Running on a NAS (e.g. Synology)<\/h3>\n\n<p class=\"wp-block-paragraph\">A NAS is a good choice when:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>storage for documents is already available<\/li>\n\n\n\n<li>Docker is supported<\/li>\n\n\n\n<li>the system already runs 24\/7<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">I run Paperless-NGX myself on a Synology NAS in containers. This works well technically, but requires a clean setup and a few deliberate architectural decisions.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">3. Hosted Paperless Services<\/h3>\n\n<p class=\"wp-block-paragraph\">There are now providers offering Paperless-NGX as a hosted<strong> <\/strong>service. Advantages:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>no need to operate your own server<\/li>\n\n\n\n<li>quick deployment<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>Disadvantages:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>ongoing costs<\/li>\n\n\n\n<li>dependency on the provider<\/li>\n\n\n\n<li>sensitive documents are stored externally<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">For some scenarios this is a valid option; for others it is deliberately not.<\/p>\n\n<p class=\"wp-block-paragraph\"><strong>Here is an overview of hosted Paperless services:<\/strong><\/p>\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>Provider<\/th><th>Brief description<\/th><th>Pricing model<\/th><\/tr><\/thead><tbody><tr><td><a href=\"https:\/\/paperless-hosting.de\/\">paperless-hosting.de<\/a><\/td><td>Specialised German provider for Paperless-NGX hosting, focused on easy deployment and GDPR-compliant server locations.<\/td><td>Monthly flat rates, usually tiered by storage space and number of users<\/td><\/tr><tr><td><a href=\"https:\/\/www.cloudshift.de\/cloud-services\/paperless-ngx\/\">cloudshift.de<\/a><\/td><td>Paperless-NGX as a fully managed SaaS service, including maintenance, backups and optional support.<\/td><td>Monthly subscription, business plans with SLA<\/td><\/tr><tr><td><a href=\"https:\/\/elest.io\/open-source\/paperless-ngx\">elest.io<\/a><\/td><td>International managed-service provider for open-source software, offering fast deployment and technical flexibility.<\/td><td>Pay as you go, depending on resources (CPU, RAM, storage)<\/td><\/tr><tr><td><a href=\"https:\/\/www.peaknetworks.de\/server-cloud\/apps\/paperless-ngx\">peaknetworks.de<\/a><\/td><td>German cloud and app hosting with ISO-certified data centres and a focus on scalability.<\/td><td>Monthly hosting packages depending on performance and storage<\/td><\/tr><tr><td><a href=\"https:\/\/www.paperless-cloud.com\/\">paperless-cloud.com<\/a><\/td><td>Paperless-NGX as a managed SaaS solution hosted in Germany, with optional customisation.<\/td><td>Monthly subscriptions, usually based on users or storage<\/td><\/tr><tr><td><a href=\"https:\/\/bitbetter.de\/leistungen\/paperless-ngx\/\">bitbetter.de<\/a><\/td><td>Managed Paperless-NGX including hosting, maintenance and support, with a stronger focus on professional use.<\/td><td>Fixed monthly prices, generally starting in the mid double-digit range<\/td><\/tr><\/tbody><\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Hosted services are particularly suitable for users who do not want to operate their own server and are prepared to trade some control over infrastructure and data storage for convenience.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Choosing Docker as the Installation Basis<\/h2>\n\n<p class=\"wp-block-paragraph\">Regardless of the chosen host system, Docker has become the de facto standard for Paperless-NGX. Docker provides:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>reproducible setups<\/li>\n\n\n\n<li>clean separation of application and data<\/li>\n\n\n\n<li>easy updates<\/li>\n\n\n\n<li>clear dependencies (database, Redis, web service)<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">Especially on systems such as a Synology NAS, Docker is the cleanest way to keep Paperless maintainable over the long term.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Which Components Belong to a Paperless Installation?<\/h2>\n\n<p class=\"wp-block-paragraph\">A complete Paperless-NGX installation consists of more than \u201cone container\u201d. It typically includes:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Paperless-NGX web\/worker container<\/li>\n\n\n\n<li>PostgreSQL (database)<\/li>\n\n\n\n<li>Redis (task queue)<\/li>\n\n\n\n<li>persistent volumes for:\n<ul class=\"wp-block-list\">\n<li>scan inbox (Consume)<\/li>\n\n\n\n<li>archive (Media)<\/li>\n\n\n\n<li>optional export<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\"><strong>This separation is important in order to:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>back up data independently of the container<\/li>\n\n\n\n<li>perform updates safely<\/li>\n\n\n\n<li>enable future migrations<\/li>\n<\/ul>\n\t\t<!-- begin AlertsDLX output -->\n\t\t<style>\n\t\t\t#alerts-dlx-fb3fe483 {\n\t\t\t\tmax-width: 650vw;\n\t\t\t\t--alerts-dlx-base-font-size: 12px;\n\t\t\t\t--alerts-dlx-bootstrap-base-size: 12px;\n\t\t\t}\n\t\t\t#alerts-dlx-fb3fe483 .alerts-dlx-icon-preview svg {\n\t\t\t\tmax-width: 1.8em;\n\t\t\t\tmax-height: 1.8em;\n\t\t\t}\n\t\t<\/style>\n\t\t<div\n\t\t\tclass=\"alerts-dlx template-bootstrap is-style-secondary is-appearance-default icon-vertical-align-top aligncenter\"\n\t\t\tdata-expiration=\"0\"\n\t\t>\n\t\t\t<figure\n\t\t\t\trole=\"alert\"\n\t\t\t\tclass=\"alerts-dlx-alert alerts-dlx-bootstrap alerts-dlx-has-icon alerts-dlx-has-description\"\n\t\t\t\tid=\"alerts-dlx-fb3fe483\"\n\t\t\t>\n\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-icon alerts-dlx-icon-frontend\" aria-hidden=\"true\">\n\t\t\t\t\t\t<div class=\"alerts-dlx-icon-preview\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"currentColor\" class=\"bi bi-info-square-fill\" viewbox=\"0 0 16 16\"><path d=\"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm8.93 4.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<section>\n\t\t\t\t\t<h2 class=\"alerts-dlx-title\">Keine Angst vor den einzelnen Komponenten<\/h2>\t\t\t\t\t<div class=\"alerts-dlx-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-content\">\n\t\t\t\t\t\t\t\t<p class=\"wp-block-paragraph\">At first glance, these components appear more complex than they are in practice. On a Synology NAS in particular, Container Manager takes care of a large part of the work.<\/p>\n<p class=\"wp-block-paragraph\">All required services \u2013 Paperless-NGX itself, the database and Redis \u2013 are described together in a single YAML file. This file simply defines which containers should be started and how they are connected. No further configuration effort is required for a basic installation.<\/p>\n<p class=\"wp-block-paragraph\">In Container Manager, you then simply create a new project and point it to this YAML file. When the project starts, all containers are created and launched automatically \u2013 without individual manual configuration.<\/p>\n<p class=\"wp-block-paragraph\">An example YAML file for a basic configuration can be found further down in this article. A screenshot from Container Manager also shows how manageable this step is in practice.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t<\/figure>\n\t\t<\/div>\n\t\t<!-- end AlertsDLX output -->\n\t\t\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a7f74216ff8e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a7f74216ff8e\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-1024x598.png\" alt=\"Synology Container Manager showing the creation of a Paperless-NGX project based on a docker-compose YAML\" class=\"wp-image-4743\" srcset=\"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-1024x598.png 1024w, https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-300x175.png 300w, https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-768x448.png 768w, https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-1536x897.png 1536w, https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/synology-container-manager-paperless-ngx-projekt-erstellen-docker-compose-2048x1196.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Creating a new Paperless-NGX project in Synology Container Manager: the docker-compose YAML is entered directly in the project wizard.<\/figcaption><\/figure>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">The Actual Installation Steps (From Practice)<\/h2>\n\n<p class=\"wp-block-paragraph\">Based on my experience, the path to a working installation can be roughly divided into the following steps:<\/p>\n\n<h3 class=\"wp-block-heading\">1. Prepare the Basic Environment<\/h3>\n\n<ul class=\"wp-block-list\">\n<li>install or enable Docker \/ Docker Compose<\/li>\n\n\n\n<li>ensure containers are allowed to start automatically<\/li>\n\n\n\n<li>define a fixed storage location for Paperless data<\/li>\n<\/ul>\n\t\t<!-- begin AlertsDLX output -->\n\t\t<style>\n\t\t\t#alerts-dlx-64fb3725 {\n\t\t\t\tmax-width: 650vw;\n\t\t\t\t--alerts-dlx-base-font-size: 12px;\n\t\t\t\t--alerts-dlx-bootstrap-base-size: 12px;\n\t\t\t}\n\t\t\t#alerts-dlx-64fb3725 .alerts-dlx-icon-preview svg {\n\t\t\t\tmax-width: 1.8em;\n\t\t\t\tmax-height: 1.8em;\n\t\t\t}\n\t\t<\/style>\n\t\t<div\n\t\t\tclass=\"alerts-dlx template-bootstrap is-style-secondary is-appearance-default icon-vertical-align-top aligncenter\"\n\t\t\tdata-expiration=\"0\"\n\t\t>\n\t\t\t<figure\n\t\t\t\trole=\"alert\"\n\t\t\t\tclass=\"alerts-dlx-alert alerts-dlx-bootstrap alerts-dlx-has-icon alerts-dlx-has-description\"\n\t\t\t\tid=\"alerts-dlx-64fb3725\"\n\t\t\t>\n\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-icon alerts-dlx-icon-frontend\" aria-hidden=\"true\">\n\t\t\t\t\t\t<div class=\"alerts-dlx-icon-preview\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"currentColor\" class=\"bi bi-info-square-fill\" viewbox=\"0 0 16 16\"><path d=\"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm8.93 4.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<section>\n\t\t\t\t\t<h2 class=\"alerts-dlx-title\">Hinweis zur Installation auf einer Synology NAS<\/h2>\t\t\t\t\t<div class=\"alerts-dlx-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-content\">\n\t\t\t\t\t\t\t\t<p class=\"wp-block-paragraph\">When installing on a Synology NAS, Docker and Docker Compose do not need to be installed separately. Container Manager already includes both components and makes them available through its project functionality.<\/p>\n<p class=\"wp-block-paragraph\">The required storage locations for Paperless-NGX are not configured in Container Manager itself, but directly in the associated YAML file. The specific directories and how they are mounted are described in detail in the following steps.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t<\/figure>\n\t\t<\/div>\n\t\t<!-- end AlertsDLX output -->\n\t\t\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">2. Plan the Directory Structure<\/h3>\n\n<p class=\"wp-block-paragraph\">Even before the first container starts, you should know:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>where new documents arrive<\/li>\n\n\n\n<li>where archived documents are stored<\/li>\n\n\n\n<li>which folders may later need to be accessible externally<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">A clean structure saves a great deal of time and frustration later.<\/p>\n\t\t<!-- begin AlertsDLX output -->\n\t\t<style>\n\t\t\t#alerts-dlx-af426eb1 {\n\t\t\t\tmax-width: 650vw;\n\t\t\t\t--alerts-dlx-base-font-size: 12px;\n\t\t\t\t--alerts-dlx-bootstrap-base-size: 12px;\n\t\t\t}\n\t\t\t#alerts-dlx-af426eb1 .alerts-dlx-icon-preview svg {\n\t\t\t\tmax-width: 1.8em;\n\t\t\t\tmax-height: 1.8em;\n\t\t\t}\n\t\t<\/style>\n\t\t<div\n\t\t\tclass=\"alerts-dlx template-bootstrap is-style-secondary is-appearance-default icon-vertical-align-top aligncenter\"\n\t\t\tdata-expiration=\"0\"\n\t\t>\n\t\t\t<figure\n\t\t\t\trole=\"alert\"\n\t\t\t\tclass=\"alerts-dlx-alert alerts-dlx-bootstrap alerts-dlx-has-icon alerts-dlx-has-description\"\n\t\t\t\tid=\"alerts-dlx-af426eb1\"\n\t\t\t>\n\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-icon alerts-dlx-icon-frontend\" aria-hidden=\"true\">\n\t\t\t\t\t\t<div class=\"alerts-dlx-icon-preview\">\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"currentColor\" class=\"bi bi-info-square-fill\" viewbox=\"0 0 16 16\"><path d=\"M0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm8.93 4.588-2.29.287-.082.38.45.083c.294.07.352.176.288.469l-.738 3.468c-.194.897.105 1.319.808 1.319.545 0 1.178-.252 1.465-.598l.088-.416c-.2.176-.492.246-.686.246-.275 0-.375-.193-.304-.533L8.93 6.588zM8 5.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\"><\/path><\/svg>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<section>\n\t\t\t\t\t<h2 class=\"alerts-dlx-title\">Praxisempfehlung zur Verzeichnisstruktur auf einer Synology NAS<\/h2>\t\t\t\t\t<div class=\"alerts-dlx-content-wrapper\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"alerts-dlx-content\">\n\t\t\t\t\t\t\t\t<p class=\"wp-block-paragraph\">If, as in my scenario, a Synology Team Drive is to be used for importing documents, I recommend creating two separate shared folders on the Synology from the outset, for example \u201cPaperless Archive\u201d and \u201cPaperless Inbox\u201d.<br \/>The Paperless Inbox is later shared as a Team Drive and is used exclusively as the entry point for new documents. The Paperless Archive folder, by contrast, should not be shared through Synology Drive. It serves as a static archive for documents processed by Paperless and avoids unnecessary filesystem events.<\/p>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/section>\n\t\t\t<\/figure>\n\t\t<\/div>\n\t\t<!-- end AlertsDLX output -->\n\t\t\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">3. Create the Docker Compose File (Example Compose File)<\/h3>\n\n<p class=\"wp-block-paragraph\">In this step:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>containers are defined<\/li>\n\n\n\n<li>dependencies are specified<\/li>\n\n\n\n<li>environment variables are set<\/li>\n\n\n\n<li>volumes are mounted<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">This is where it is decided whether the setup will remain maintainable later. The following example is deliberately \u201cminimal\u201d, but practical. It uses local paths as volumes (without NFS details). Paths and ports can be adapted to your own environment.<\/p>\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"YAML\" data-shcb-language-slug=\"yaml\"><span><code class=\"hljs language-yaml shcb-code-table shcb-line-numbers shcb-wrap-lines\"><span class='shcb-loc'><span><span class=\"hljs-attr\">version:<\/span> <span class=\"hljs-string\">\"3.8\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attr\">services:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">broker:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">redis:7-alpine<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">container_name:<\/span> <span class=\"hljs-string\">paperless-redis<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">unless-stopped<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-comment\"># Redis wird ausschlie\u00dflich intern genutzt.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-comment\"># Paperless erreicht den Dienst \u00fcber den Servicenamen \"broker\".<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">healthcheck:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">test:<\/span> <span class=\"hljs-string\">&#91;\"CMD\",<\/span> <span class=\"hljs-string\">\"redis-cli\"<\/span><span class=\"hljs-string\">,<\/span> <span class=\"hljs-string\">\"ping\"<\/span><span class=\"hljs-string\">]<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">interval:<\/span> <span class=\"hljs-string\">10s<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">timeout:<\/span> <span class=\"hljs-string\">3s<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">retries:<\/span> <span class=\"hljs-number\">10<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">logging:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">options:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-size:<\/span> <span class=\"hljs-string\">\"10m\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-file:<\/span> <span class=\"hljs-string\">\"3\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">db:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">postgres:15-alpine<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">container_name:<\/span> <span class=\"hljs-string\">paperless-db<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">unless-stopped<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-comment\"># Datenbank-Zugangsdaten werden vollst\u00e4ndig aus der .env gelesen.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-comment\"># Keine Zugangsdaten direkt in dieser Datei hinterlegen.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">environment:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">POSTGRES_DB:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_NAME}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">POSTGRES_USER:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_USER}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">POSTGRES_PASSWORD:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_PASSWORD}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-comment\"># Persistente Speicherung der Datenbank<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">volumes:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">db-data:\/var\/lib\/postgresql\/data<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">healthcheck:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">test:<\/span> <span class=\"hljs-string\">&#91;\"CMD-SHELL\",<\/span> <span class=\"hljs-string\">\"pg_isready -U ${PAPERLESS_DB_USER} -d ${PAPERLESS_DB_NAME}\"<\/span><span class=\"hljs-string\">]<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">interval:<\/span> <span class=\"hljs-string\">10s<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">timeout:<\/span> <span class=\"hljs-string\">5s<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">retries:<\/span> <span class=\"hljs-number\">10<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">logging:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">options:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-size:<\/span> <span class=\"hljs-string\">\"10m\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-file:<\/span> <span class=\"hljs-string\">\"3\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">webserver:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">image:<\/span> <span class=\"hljs-string\">ghcr.io\/paperless-ngx\/paperless-ngx:latest<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">container_name:<\/span> <span class=\"hljs-string\">paperless<\/span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">restart:<\/span> <span class=\"hljs-string\">unless-stopped<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">depends_on:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">db:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">condition:<\/span> <span class=\"hljs-string\">service_healthy<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">broker:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">condition:<\/span> <span class=\"hljs-string\">service_healthy<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">ports:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Weboberfl\u00e4che erreichbar unter http:\/\/&lt;NAS-IP&gt;:8000<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"8000:8000\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">environment:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Interne Anbindung an Redis<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_REDIS:<\/span> <span class=\"hljs-string\">redis:\/\/broker:6379<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Datenbank-Verbindung<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_DBHOST:<\/span> <span class=\"hljs-string\">db<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_DBNAME:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_NAME}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_DBUSER:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_USER}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_DBPASS:<\/span> <span class=\"hljs-string\">${PAPERLESS_DB_PASSWORD}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Zeitzone und OCR-Sprachen<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_TIME_ZONE:<\/span> <span class=\"hljs-string\">Europe\/Berlin<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_OCR_LANGUAGE:<\/span> <span class=\"hljs-string\">deu+eng<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Kryptografischer Secret Key<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Wird bewusst aus der .env gelesen.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Hinweise zur Generierung stehen in der .env-Datei.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_SECRET_KEY:<\/span> <span class=\"hljs-string\">${PAPERLESS_SECRET_KEY}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Optional: Admin-Account beim ersten Start anlegen<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_ADMIN_USER:<\/span> <span class=\"hljs-string\">${PAPERLESS_ADMIN_USER}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_ADMIN_PASSWORD:<\/span> <span class=\"hljs-string\">${PAPERLESS_ADMIN_PASSWORD}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_ADMIN_MAIL:<\/span> <span class=\"hljs-string\">${PAPERLESS_ADMIN_MAIL}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># UID\/GID-Mapping f\u00fcr saubere Dateirechte auf der Synology<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">USERMAP_UID:<\/span> <span class=\"hljs-string\">${PAPERLESS_UID}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">USERMAP_GID:<\/span> <span class=\"hljs-string\">${PAPERLESS_GID}<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Rekursive Verarbeitung der Inbox<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_CONSUMER_RECURSIVE:<\/span> <span class=\"hljs-string\">\"true\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Unterordner der Inbox werden als Tags interpretiert<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS:<\/span> <span class=\"hljs-string\">\"true\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Duplikate automatisch entfernen<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_CONSUMER_DELETE_DUPLICATES:<\/span> <span class=\"hljs-string\">\"true\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Synology-spezifische Metadaten ignorieren<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_CONSUMER_IGNORE_PATTERNS:<\/span> <span class=\"hljs-string\">'&#91;\"@eaDir\/*\"]'<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Archivmodus: Dokumente werden in die Ablage verschoben<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_ARCHIVE_MODE:<\/span> <span class=\"hljs-string\">\"move\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Eigener Papierkorb f\u00fcr gel\u00f6schte Dokumente<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Ohne diese Einstellung werden Dokumente sofort endg\u00fcltig gel\u00f6scht.<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">PAPERLESS_TRASH_DIR:<\/span> <span class=\"hljs-string\">\/usr\/src\/paperless\/trash<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">volumes:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Interne Paperless-Daten (Index, Konfiguration)<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">paperless-data:\/usr\/src\/paperless\/data<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Medienverzeichnis<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">paperless-media:\/usr\/src\/paperless\/media<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Paperless Inbox<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Empfohlener freigegebener Ordner auf der Synology<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"\/volume1\/Paperless Inbox:\/usr\/src\/paperless\/consume\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Paperless Ablage \u2013 Archiv<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Statisches Archiv, nicht \u00fcber Synology Drive teilen<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"\/volume1\/Paperless Ablage\/Archiv:\/usr\/src\/paperless\/media\/documents\/archive\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Optionaler Export-Ordner<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"\/volume1\/Paperless Ablage\/Export:\/usr\/src\/paperless\/export\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-comment\"># Papierkorb<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">\"\/volume1\/Paperless Ablage\/Trash:\/usr\/src\/paperless\/trash\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span>    <span class=\"hljs-attr\">logging:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>      <span class=\"hljs-attr\">options:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-size:<\/span> <span class=\"hljs-string\">\"50m\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>        <span class=\"hljs-attr\">max-file:<\/span> <span class=\"hljs-string\">\"5\"<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attr\">volumes:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-comment\"># Docker-Volumes f\u00fcr interne Daten<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">db-data:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">paperless-data:<\/span>\n<\/span><\/span><span class='shcb-loc'><span>  <span class=\"hljs-attr\">paperless-media:<\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">YAML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">yaml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<p class=\"wp-block-paragraph\"><strong>Practical notes:<\/strong><\/p>\n\n<ul class=\"wp-block-list\">\n<li>The <code>.\/data\/...<\/code> paths can just as easily point to a fixed storage location (for example <code>\/volume1\/docker\/paperless\/...<\/code> on a Synology).<\/li>\n\n\n\n<li><code>USERMAP_UID\/GID<\/code> should match your own environment; consistency is what matters most.<\/li>\n\n\n\n<li><code>PAPERLESS_OCR_LANGUAGE<\/code> is useful when German-language documents predominate.<\/li>\n<\/ul>\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"Extended Backus-Naur Form\" data-shcb-language-slug=\"ebnf\"><span><code class=\"hljs language-ebnf shcb-code-table shcb-line-numbers shcb-wrap-lines\"><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span># Datenbank-Konfiguration\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Name der Paperless-Datenbank\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_DB_NAME<\/span>=paperlessdb\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Datenbank-User\n<\/span><\/span><span class='shcb-loc'><span># Nicht <span class=\"hljs-string\">\"paperless\"<\/span> verwenden, sondern einen eigenen Namen w\u00e4hlen.\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_DB_USER<\/span>=pl_user\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Datenbank-Passwort\n<\/span><\/span><span class='shcb-loc'><span># Empfehlung: mindestens 24 Zeichen, zuf\u00e4llig generiert.\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_DB_PASSWORD<\/span>=change-me-to-a-long-random-password\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span># Paperless Secret Key\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Pflichtfeld.\n<\/span><\/span><span class='shcb-loc'><span># Wird f\u00fcr Sessions, Tokens und kryptografische Signaturen verwendet.\n<\/span><\/span><span class='shcb-loc'><span>#\n<\/span><\/span><span class='shcb-loc'><span># Empfehlung:\n<\/span><\/span><span class='shcb-loc'><span># - mindestens 50 Zeichen, besser 64 oder mehr\n<\/span><\/span><span class='shcb-loc'><span># - vollst\u00e4ndig zuf\u00e4llig\n<\/span><\/span><span class='shcb-loc'><span># - keine W\u00f6rter oder Passphrasen\n<\/span><\/span><span class='shcb-loc'><span>#\n<\/span><\/span><span class='shcb-loc'><span># Geeignete Generierung im Terminal:\n<\/span><\/span><span class='shcb-loc'><span>#   openssl rand -base64 48\n<\/span><\/span><span class='shcb-loc'><span>#\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_SECRET_KEY<\/span>=generate-your-own-secret-key\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span># Optional: Admin-Benutzer\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Wird nur beim ersten Start verwendet.\n<\/span><\/span><span class='shcb-loc'><span># Danach erfolgt die Benutzerverwaltung \u00fcber die Weboberfl\u00e4che.\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_ADMIN_USER<\/span>=admin\n<\/span><\/span><span class='shcb-loc'><span>PAPERLESS_ADMIN_PASSWORD=change-me-too\n<\/span><\/span><span class='shcb-loc'><span>PAPERLESS_ADMIN_MAIL=admin@example.tld\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span># Synology UID \/ GID\n<\/span><\/span><span class='shcb-loc'><span># ------------------------------\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span># Muss zu den Besitzrechten der gemounteten Ordner passen.\n<\/span><\/span><span class='shcb-loc'><span># Typische Werte sind 1000:1000, k\u00f6nnen aber abweichen.\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-attribute\">PAPERLESS_UID<\/span>=1000\n<\/span><\/span><span class='shcb-loc'><span>PAPERLESS_GID=1000\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">Extended Backus-Naur Form<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">ebnf<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">4. First Start and Basic Configuration<\/h3>\n\n<p class=\"wp-block-paragraph\">After the first start, the tasks are to:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>configure Paperless initially<\/li>\n\n\n\n<li>create users<\/li>\n\n\n\n<li>check basic settings (language, OCR, time zone)<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">At this stage it usually becomes clear quickly whether:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>volumes are mounted correctly<\/li>\n\n\n\n<li>permissions are correct<\/li>\n\n\n\n<li>containers communicate cleanly with one another<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h3 class=\"wp-block-heading\">5. Test the First Documents<\/h3>\n\n<p class=\"wp-block-paragraph\">Before using the system productively, it is advisable to:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>import a few test documents<\/li>\n\n\n\n<li>check OCR recognition<\/li>\n\n\n\n<li>observe classification<\/li>\n\n\n\n<li>verify archive paths<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">This allows many later problems to be identified early.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Topics Deliberately Covered Elsewhere<\/h2>\n\n<p class=\"wp-block-paragraph\">In my view, some aspects deserve their own articles and are therefore only touched on here:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>NFS vs. SMB and clean mounts<\/strong><\/li>\n\n\n\n<li><strong>Synology Drive integration<\/strong><\/li>\n\n\n\n<li><strong>Security and backup strategies<\/strong><\/li>\n\n\n\n<li><strong>Automation rules in detail<\/strong><\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n<p class=\"wp-block-paragraph\">Paperless-NGX can be operated on a wide range of platforms \u2013 from a Raspberry Pi to a NAS or server. What matters less than the hardware is a well-designed setup. Anyone who, before installation:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>clarifies the deployment model<\/li>\n\n\n\n<li>understands the components<\/li>\n\n\n\n<li>assesses the steps realistically<\/li>\n<\/ul>\n\n<p class=\"wp-block-paragraph\">will avoid many of the typical pitfalls. The real strength of Paperless only becomes apparent later in everyday use \u2013 but a clean installation is the prerequisite.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Paperless-NGX is not a \u201cclick and you\u2019re done\u201d tool, but a platform deliberately designed for flexibility and self-hosting. Before dealing with details such as folder structures or automation, it is [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":4989,"comment_status":"closed","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[287],"tags":[222,232,223,164,233,221,227,165],"class_list":["post-4994","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","tag-docker","tag-docker-compose","tag-dokumentenmanagement","tag-nas","tag-opensource","tag-paperless","tag-self-hosting","tag-synology","bwp-blog-post","bwp-masonry-item","bwp-col-1","bwp-post-has-title"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Installing Paperless-ngx: Requirements, Models &amp; Setup<\/title>\n<meta name=\"description\" content=\"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Installing Paperless-ngx: Requirements, Models &amp; Setup\" \/>\n<meta property=\"og:description\" content=\"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/\" \/>\n<meta property=\"og:site_name\" content=\"michael-hoepfl.com\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-10T15:52:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-11T12:22:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1331\" \/>\n\t<meta property=\"og:image:height\" content=\"677\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Michael H\u00f6pfl\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael H\u00f6pfl\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/\"},\"author\":{\"name\":\"Michael H\u00f6pfl\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#\\\/schema\\\/person\\\/8d843bca28bfc5f703bcf977868eb8d7\"},\"headline\":\"Installing Paperless-NGX: Requirements, Deployment Models and the Path to a Working Installation\",\"datePublished\":\"2026-01-10T15:52:17+00:00\",\"dateModified\":\"2026-08-11T12:22:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/\"},\"wordCount\":1636,\"publisher\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#\\\/schema\\\/person\\\/8d843bca28bfc5f703bcf977868eb8d7\"},\"image\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/paperless-ngx-self-hosted-inputs-architecture.png\",\"keywords\":[\"Docker\",\"Docker-Compose\",\"Dokumentenmanagement\",\"NAS\",\"Opensource\",\"Paperless\",\"Self-Hosting\",\"Synology\"],\"articleSection\":[\"Technology\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/\",\"url\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/\",\"name\":\"Installing Paperless-ngx: Requirements, Models & Setup\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/paperless-ngx-self-hosted-inputs-architecture.png\",\"datePublished\":\"2026-01-10T15:52:17+00:00\",\"dateModified\":\"2026-08-11T12:22:00+00:00\",\"description\":\"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#primaryimage\",\"url\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/paperless-ngx-self-hosted-inputs-architecture.png\",\"contentUrl\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/paperless-ngx-self-hosted-inputs-architecture.png\",\"width\":1331,\"height\":677,\"caption\":\"Self-hosted Paperless-NGX system with document import via scanner, email and smartphone\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/technology\\\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\\\/01-2026\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Installing Paperless-NGX: Requirements, Deployment Models and the Path to a Working Installation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/\",\"name\":\"michael-hoepfl.com\",\"description\":\"my business. my brain stuff. my blog.\",\"publisher\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#\\\/schema\\\/person\\\/8d843bca28bfc5f703bcf977868eb8d7\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/#\\\/schema\\\/person\\\/8d843bca28bfc5f703bcf977868eb8d7\",\"name\":\"Michael H\u00f6pfl\",\"pronouns\":\"er\\\/ihr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/LinkedIn-Profile-Image-2026-1024x1024.png\",\"url\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/LinkedIn-Profile-Image-2026-1024x1024.png\",\"contentUrl\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/LinkedIn-Profile-Image-2026-1024x1024.png\",\"width\":1024,\"height\":1024,\"caption\":\"Michael H\u00f6pfl\"},\"logo\":{\"@id\":\"https:\\\/\\\/michael-hoepfl.com\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/LinkedIn-Profile-Image-2026-1024x1024.png\"},\"description\":\"Ich schreibe und poste hier zu Themen, die mich seit jeher privat als auch beruflich interessieren und begleiten. [Mehr \u00fcber mich]\",\"sameAs\":[\"https:\\\/\\\/michael-hoepfl.com\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/michael-hoepfl\"],\"url\":\"https:\\\/\\\/michael-hoepfl.com\\\/en\\\/author\\\/mhoepfl\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Installing Paperless-ngx: Requirements, Models & Setup","description":"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/","og_locale":"en_US","og_type":"article","og_title":"Installing Paperless-ngx: Requirements, Models & Setup","og_description":"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.","og_url":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/","og_site_name":"michael-hoepfl.com","article_published_time":"2026-01-10T15:52:17+00:00","article_modified_time":"2026-08-11T12:22:00+00:00","og_image":[{"width":1331,"height":677,"url":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","type":"image\/png"}],"author":"Michael H\u00f6pfl","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michael H\u00f6pfl","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#article","isPartOf":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/"},"author":{"name":"Michael H\u00f6pfl","@id":"https:\/\/michael-hoepfl.com\/en\/#\/schema\/person\/8d843bca28bfc5f703bcf977868eb8d7"},"headline":"Installing Paperless-NGX: Requirements, Deployment Models and the Path to a Working Installation","datePublished":"2026-01-10T15:52:17+00:00","dateModified":"2026-08-11T12:22:00+00:00","mainEntityOfPage":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/"},"wordCount":1636,"publisher":{"@id":"https:\/\/michael-hoepfl.com\/en\/#\/schema\/person\/8d843bca28bfc5f703bcf977868eb8d7"},"image":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","keywords":["Docker","Docker-Compose","Dokumentenmanagement","NAS","Opensource","Paperless","Self-Hosting","Synology"],"articleSection":["Technology"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/","url":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/","name":"Installing Paperless-ngx: Requirements, Models & Setup","isPartOf":{"@id":"https:\/\/michael-hoepfl.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#primaryimage"},"image":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#primaryimage"},"thumbnailUrl":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","datePublished":"2026-01-10T15:52:17+00:00","dateModified":"2026-08-11T12:22:00+00:00","description":"Install and run Paperless-ngx: this article explains the requirements, possible deployment models and the path to a working installation with Docker and NAS.","breadcrumb":{"@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#primaryimage","url":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","contentUrl":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","width":1331,"height":677,"caption":"Self-hosted Paperless-NGX system with document import via scanner, email and smartphone"},{"@type":"BreadcrumbList","@id":"https:\/\/michael-hoepfl.com\/en\/technology\/installing-paperless-ngx-requirements-deployment-models-and-the-path-to-a-working-installation\/01-2026\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/michael-hoepfl.com\/en\/"},{"@type":"ListItem","position":2,"name":"Installing Paperless-NGX: Requirements, Deployment Models and the Path to a Working Installation"}]},{"@type":"WebSite","@id":"https:\/\/michael-hoepfl.com\/en\/#website","url":"https:\/\/michael-hoepfl.com\/en\/","name":"michael-hoepfl.com","description":"my business. my brain stuff. my blog.","publisher":{"@id":"https:\/\/michael-hoepfl.com\/en\/#\/schema\/person\/8d843bca28bfc5f703bcf977868eb8d7"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/michael-hoepfl.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/michael-hoepfl.com\/en\/#\/schema\/person\/8d843bca28bfc5f703bcf977868eb8d7","name":"Michael H\u00f6pfl","pronouns":"er\/ihr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/08\/LinkedIn-Profile-Image-2026-1024x1024.png","url":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/08\/LinkedIn-Profile-Image-2026-1024x1024.png","contentUrl":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/08\/LinkedIn-Profile-Image-2026-1024x1024.png","width":1024,"height":1024,"caption":"Michael H\u00f6pfl"},"logo":{"@id":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/08\/LinkedIn-Profile-Image-2026-1024x1024.png"},"description":"Ich schreibe und poste hier zu Themen, die mich seit jeher privat als auch beruflich interessieren und begleiten. [Mehr \u00fcber mich]","sameAs":["https:\/\/michael-hoepfl.com","https:\/\/www.linkedin.com\/in\/michael-hoepfl"],"url":"https:\/\/michael-hoepfl.com\/en\/author\/mhoepfl\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/michael-hoepfl.com\/wp-content\/uploads\/2026\/01\/paperless-ngx-self-hosted-inputs-architecture.png","_links":{"self":[{"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/posts\/4994","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/comments?post=4994"}],"version-history":[{"count":2,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/posts\/4994\/revisions"}],"predecessor-version":[{"id":5004,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/posts\/4994\/revisions\/5004"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/media\/4989"}],"wp:attachment":[{"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/media?parent=4994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/categories?post=4994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michael-hoepfl.com\/en\/wp-json\/wp\/v2\/tags?post=4994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}