Home > Software > How to Deploy Paperless-ngx with Docker Compose

How to Deploy Paperless-ngx with Docker Compose

Anastasios Antoniadis

Learn how to deploy Paperless-ngx, the document management solution, using Docker Compose with our comprehensive guide. Simplify your digital archiving process, ensuring easy access and organization of your documents.

Docker (1)

In the digital age, managing paperwork can still be surprisingly cumbersome. Enter Paperless-ngx, an open-source project born from the idea of living a clutter-free, paperless life. It allows you to scan, index, and archive all your physical documents in a digital format, making them searchable and easily accessible. Deploying Paperless-ngx using Docker Compose streamlines the setup process, enabling you to get your personal document management system up and running with minimal fuss. This guide will walk you through setting up Paperless-ngx using Docker Compose.

Prerequisites

Before beginning, ensure you have:

  • Docker installed on your system.
  • Docker Compose installed on your system.
  • Basic familiarity with Docker concepts and the YAML syntax used in Docker Compose files.

Step 1: Create a Docker Compose File

First, create a directory dedicated to your Paperless-ngx deployment. This directory will contain your Docker Compose file (docker-compose.yml) and any additional configuration files or directories you might need.

mkdir paperless-ngx-docker && cd paperless-ngx-docker

Create the docker-compose.yml file:

touch docker-compose.yml

Open this file in a text editor and insert the following configuration:

version: '3.8'
services:
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless
    volumes:
      - pgdata:/var/lib/postgresql/data

  redis:
    image: redis:6.0

  paperless:
    image: jonaswinkler/paperless-ngx:latest
    depends_on:
      - db
      - redis
    ports:
      - "8000:8000"
    environment:
      PAPERLESS_DBHOST: db
      PAPERLESS_DBNAME: paperless
      PAPERLESS_DBUSER: paperless
      PAPERLESS_DBPASS: paperless
      PAPERLESS_REDIS: redis://redis:6379
    volumes:
      - data:/usr/src/paperless/data
      - media:/usr/src/paperless/media
      - consume:/usr/src/paperless/consume
      - export:/usr/src/paperless/export

volumes:
  pgdata:
  data:
  media:
  consume:
  export:

Configuration Explained:

  • db: Sets up a PostgreSQL database for Paperless-ngx. The POSTGRES_* environment variables configure the database, user, and password.
  • redis: Deploys a Redis container, which Paperless-ngx uses for caching and task queuing.
  • paperless: Configures the Paperless-ngx service. It depends on the db and redis services, exposing port 8000 for web access. Environment variables are used to connect Paperless-ngx to the database and Redis services. Volumes are mapped for persistent storage of documents, metadata, and other data.
  • volumes: Declares named volumes for the database and Paperless-ngx data, ensuring data persists across container restarts.

Step 2: Launch Paperless-ngx

Navigate to the directory containing your docker-compose.yml file and start the services by running:

docker compose up -d

This command pulls the required Docker images and starts the Paperless-ngx, PostgreSQL, and Redis containers in detached mode.

Step 3: Access Paperless-ngx

After the containers have started, open a web browser and navigate to http://localhost:8000. You will be greeted by the Paperless-ngx web interface, where you can begin configuring your document management system.

Conclusion

Deploying Paperless-ngx with Docker Compose offers an efficient and straightforward path to digitizing your physical documents and embracing a paperless lifestyle. Following the steps outlined in this guide, you can set up a robust, self-hosted document management system, making your documents searchable, secure, and easily accessible. Docker Compose simplifies the management of the Paperless-ngx services, ensuring your deployment is scalable and maintainable. With Paperless-ngx, you’re not just decluttering your physical space but also optimizing your document retrieval and storage processes for the digital era.

Anastasios Antoniadis
Follow me
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x