mirror of
				https://github.com/tborychowski/self-hosted-cookbook.git
				synced 2025-11-04 07:37:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Paperless-ngx
 | 
						|
- decent ui that is also usable on mobile
 | 
						|
- lots of filters
 | 
						|
- very cool auto tagging, auto categorisation
 | 
						|
- trash
 | 
						|
- sometimes textual pdfs are OCR-ed, and show gibberish in preview
 | 
						|
 | 
						|
<br>
 | 
						|
 | 
						|
- [Github repo](https://github.com/paperless-ngx/paperless-ngx)
 | 
						|
- [Docs](https://paperless-ngx.readthedocs.io/en/latest/)
 | 
						|
 | 
						|
 | 
						|
## .env
 | 
						|
```ini
 | 
						|
COMPOSE_PROJECT_NAME=paperless
 | 
						|
```
 | 
						|
 | 
						|
## docker-compose.env
 | 
						|
```ini
 | 
						|
# The container installs English, German, Italian, Spanish and French by default.
 | 
						|
# available languages:
 | 
						|
# https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster
 | 
						|
# PAPERLESS_OCR_LANGUAGES=eng
 | 
						|
 | 
						|
# This is required to expose Paperless-ngx on a public domain
 | 
						|
PAPERLESS_URL=https://paperless.domain.com
 | 
						|
PAPERLESS_SECRET_KEY=changeme
 | 
						|
PAPERLESS_TIME_ZONE=Europe/Dublin
 | 
						|
 | 
						|
# Default language to use for OCR
 | 
						|
PAPERLESS_OCR_LANGUAGE=eng
 | 
						|
```
 | 
						|
 | 
						|
## docker-compose.yml
 | 
						|
```yml
 | 
						|
---
 | 
						|
services:
 | 
						|
  broker:
 | 
						|
    image: docker.io/library/redis:6.0
 | 
						|
    container_name: paperless-redis
 | 
						|
    restart: unless-stopped
 | 
						|
    volumes:
 | 
						|
      - ./redis:/data
 | 
						|
 | 
						|
  gotenberg:
 | 
						|
    image: docker.io/gotenberg/gotenberg:7.4
 | 
						|
    container_name: paperless-gotenberg
 | 
						|
    restart: unless-stopped
 | 
						|
    command:
 | 
						|
      - "gotenberg"
 | 
						|
      - "--chromium-disable-routes=true"
 | 
						|
 | 
						|
  tika:
 | 
						|
    image: ghcr.io/paperless-ngx/tika:latest
 | 
						|
    container_name: paperless-tika
 | 
						|
    restart: unless-stopped
 | 
						|
 | 
						|
  webserver:
 | 
						|
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
 | 
						|
    container_name: paperless-ngx
 | 
						|
    restart: unless-stopped
 | 
						|
    depends_on:
 | 
						|
      - broker
 | 
						|
      - gotenberg
 | 
						|
      - tika
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:8000"]
 | 
						|
      interval: 30s
 | 
						|
      timeout: 10s
 | 
						|
      retries: 5
 | 
						|
    env_file: docker-compose.env
 | 
						|
    environment:
 | 
						|
      PAPERLESS_REDIS: redis://broker:6379
 | 
						|
      PAPERLESS_TIKA_ENABLED: 1
 | 
						|
      PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
 | 
						|
      PAPERLESS_TIKA_ENDPOINT: http://tika:9998
 | 
						|
      PAPERLESS_TRASH_DIR: /usr/src/paperless/trash
 | 
						|
      PAPERLESS_OCR_MODE: skip_noarchive
 | 
						|
 | 
						|
    ports:
 | 
						|
      - 8000:8000
 | 
						|
    volumes:
 | 
						|
      - ./data:/usr/src/paperless/data
 | 
						|
      - ./media:/usr/src/paperless/media
 | 
						|
      - ./export:/usr/src/paperless/export
 | 
						|
      - ./consume:/usr/src/paperless/consume
 | 
						|
      - ./trash:/usr/src/paperless/trash
 | 
						|
```
 | 
						|
 | 
						|
## First run these:
 | 
						|
```sh
 | 
						|
# fetch the docker image
 | 
						|
docker-compose pull
 | 
						|
 | 
						|
# create admin user
 | 
						|
docker-compose run --rm webserver createsuperuser
 | 
						|
 | 
						|
# start
 | 
						|
docker-compose up -d
 | 
						|
```
 |