Docker

[Docker] OCR 기능 탑재한 Paperless-ngx 구축 하기

IT-PAPA 2024. 9. 25. 06:29
728x90
반응형

Paperless-ngx는 커뮤니티가 지원하는 오픈 소스 문서 관리 시스템으로, 물리적 문서를 검색 가능한 온라인 아카이브로 변환하여 종이 사용을 줄일 수 있게 도와줍니다

주요 기능

  • 문서 관리: 스캔한 문서를 태그, 발신자, 유형 등으로 정리하고 인덱싱할 수 있습니다.
  • OCR: Tesseract 엔진을 사용하여 100개 이상의 언어를 인식하고, 이미지로만 스캔된 문서에도 검색 가능한 텍스트를 추가합니다.
  • PDF/A 저장: 문서를 장기 보관을 위해 PDF/A 형식으로 저장하며, 원본도 함께 보관합니다.
  • 자동 태깅: 머신러닝을 사용하여 자동으로 태그, 발신자, 문서 유형을 추가합니다.
  • 다양한 파일 형식 지원: PDF, 이미지, 텍스트 파일, Office 문서 등을 지원합니다.
  • 웹 애플리케이션: 현대적이고 사용자 친화적인 웹 인터페이스를 제공하며, 대시보드, 필터링, 대량 편집, 드래그 앤 드롭 업로드 등의 기능을 포함합니다.
  • 이메일 처리: 이메일 계정을 설정하여 문서를 자동으로 가져오고, 메시지에 대한 다양한 작업을 수행할 수 있습니다.
  • 다중 사용자 권한 시스템: 문서나 객체별로 권한을 설정할 수 있는 강력한 권한 시스템을 제공합니다.
  • 워크플로우 시스템: 문서 처리에 대한 더 많은 제어를 제공합니다.
  • 멀티코어 최적화: 여러 문서를 병렬로 처리할 수 있습니다.
  • 건강 상태 검사: 문서 아카이브의 상태를 점검하는 통합 검사기를 포함합니다

이 시스템은 원래 Paperless 및 Paperless-ng 프로젝트의 공식 후속작으로, 프로젝트의 발전과 지원을 여러 사람에게 분산시키기 위해 설계되었습니다

 

[Docker] 도커의 모든 것, 도커 추천 이미지!!! (tistory.com)

 

[Docker] 도커의 모든 것, 도커 추천 이미지!!!

필자는 이때까지 docker로 구축한 모든 목록을 이 블로그에 담았다. 앞으로도 이 페이지는 필자가 도커를 구축할 때마다 업데이트하려고 하니, 즐겨찾기 해두면 나쁘지 않을 거 같다. 유용하게 사

betwe.tistory.com

 

docker-compose.yml 파일

docker-compose.yml
services:
  broker:
    image: docker.io/library/redis:7
    restart: always
    volumes:
      - /APP/paperless-ngx/redisdata:/data

  db:
    image: docker.io/library/postgres:16
    restart: always
    volumes:
      - /APP/paperless-ngx/pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: always
    depends_on:
      - db
      - broker
    ports:
      - "8000:8000"
    volumes:
      - /APP/paperless-ngx/data:/usr/src/paperless/data
      - /APP/paperless-ngx/media:/usr/src/paperless/media
      - /APP/paperless-ngx/export:/usr/src/paperless/export
      - /APP/paperless-ngx/consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db

volumes:
  data:
  media:
  pgdata:
  redisdata:

 

docker-compose.env 생성

# The UID and GID of the user used to run paperless in the container. Set this
# to your UID and GID on the host so that you have write access to the
# consumption directory.
#USERMAP_UID=1000
#USERMAP_GID=1000

# Additional languages to install for text recognition, separated by a
# whitespace. Note that this is
# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the
# language used for OCR.
# The container installs English, German, Italian, Spanish and French by
# default.
# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
# for available languages.
PAPERLESS_OCR_LANGUAGES=tur ces

###############################################################################
# Paperless-specific settings                                                 #
###############################################################################

# All settings defined in the paperless.conf.example can be used here. The
# Docker setup does not use the configuration file.
# A few commonly adjusted settings are provided below.

# This is required if you will be exposing Paperless-ngx on a public domain
# (if doing so please consider security measures such as reverse proxy)
PAPERLESS_URL=https://paperless.example.org

# Adjust this key if you plan to make paperless available publicly. It should
# be a very long sequence of random characters. You don't need to remember it.
PAPERLESS_SECRET_KEY=change-me

# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC.
PAPERLESS_TIME_ZONE=Asia/Seoul

# The default language to use for OCR. Set this to the language most of your
# documents are written in.
PAPERLESS_OCR_LANGUAGE=eng

# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx
PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX
PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required

 

Web Service 계정 생성 - docker 컨테이너에서 생성하도록 한다

root@dev-document:~/docker/docker/OFFICE/paperless-ngx# docker exec -it paperless-ngx-webserver-1 bash
root@cfafc068e089:/usr/src/paperless/src# python3 manage.py createsuperuser
Username (leave blank to use 'root'): admin
Email address: admin@gmail.com
Password: 
Password (again): 
Superuser created successfully.

 

docker-compose 시작

docker-compose up -d

 

서비스 URL 접속

http://[서버 IP]:8000

서비스 URL 접속
서비스 URL 접속
서비스 URL 접속
로그인 완료 후, 메인 화면
PDF 파일 업로드 중
PDF 파일 업로드 중

 

내용 검색 시 문서 선택 화면

내용 검색 시 문서 선택 화면
내용 검색 시 문서 선택 화면

 

PDF 안에 내용들이 TEXT로 추출되어있다

PDF 안에 내용들이 TEXT로 추출되어있다.
PDF 안에 내용들이 TEXT로 추출되어있다.

 

docker-comopse 중지

docker-compose down

 

참고 사이트

paperless-ngx/paperless-ngx: A community-supported supercharged version of paperless: scan, index and archive all your physical documents (github.com)

 

GitHub - paperless-ngx/paperless-ngx: A community-supported supercharged version of paperless: scan, index and archive all your

A community-supported supercharged version of paperless: scan, index and archive all your physical documents - paperless-ngx/paperless-ngx

github.com

 

728x90
반응형
LIST