· 3 months ago · Jun 22, 2025, 08:25 AM
1#
2# DOCKER COMPOSE STACK FOR DOCKER COMPOSE MANAGER PLUGIN FOR UNRAID
3#
4#
5# 1 EDIT YOUR LOCAL SERVER ADDRESS FOR LOCAl WEB ACCESS
6#
7# Replace the 3 instances of "192.168.1.173" with the IP address of your server
8#
9#
10# 2 CHANGE THE DEFAULT PASSWORD FOR THE DATABASE (optional)
11#
12# Replace the 3 instances of "password123"
13#
14#
15# 3 CREATE THE EXPECTED DIRECTORIES IN APPDATA BEFORE CREATING THE CONTAINERS
16#
17# sudo mkdir -p /mnt/user/appdata/paperless/{consume,export,redis,mariadb,paperless-ai,ollama}
18# sudo mkdir -p /mnt/user/appdata/paperless/paperless/{data,media}
19# sudo mkdir -p /mnt/user/appdata/paperless/paperless-gpt/{prompts,hocr,pdf}
20# sudo chown 999:999 /mnt/user/appdata/paperless/mariadb
21#
22#
23# 3.1 YOU CAN CHECK THE PERMISSIONS ARE CORRECT WITH THE ls -l COMMAND
24#
25# ls -l /mnt/user/appdata/paperless
26#
27# drwxr-xr-x 1 root root 6 Jun 22 17:00 consume/
28# drwxr-xr-x 1 root root 6 Jun 22 17:00 export/
29# drwxr-xr-x 1 999 999 4096 Jun 22 17:01 mariadb/
30# drwxr-xr-x 1 root root 60 Jun 22 17:01 ollama/
31# drwxr-xr-x 1 root root 31 Jun 22 17:00 paperless/
32# drwxr-xr-x 1 root root 12 7 Jun 22 17:26 paperless-ai/
33# drwxr-xr-x 1 root root 44 Jun 22 17:00 paperless-gpt/
34# drwxr-xr-x 1 root root 22 Jun 22 18:26 redis/
35#
36#
37# 4. AFTER RUNNING OLLAMA CONTAINER YOU NEED TO PULL THE AI MODELS
38#
39# docker exec -it paperless-ollama ollama pull llama3
40# docker exec -it paperless-ollama ollama pull minicpm-v
41#
42#
43# 6. PAPERLESS-NGX SETUP (WEB GUI)
44#
45# you need to generate an API key
46# edit my profile in top right had corner to generate a token
47#
48#
49# 7. PAPERLESS-AI SETUP (WEB GUI)
50#
51# Paerless-ngx API URL = http://paperless:8000
52# API Token = the token generated by paperless-ngx
53# Ollama API URL = http://paperless-ollama:11434
54#
55#
56# 8. PAPERLESS-GPT SETUP (EDIT docker-compose file)
57#
58# Edit the compose file section for paperless-gpt and add the API token
59# eg. PAPERLESS_API_TOKEN: e3087dd8e058aebfc522fb91426d48d8b4a53a72
60#
61#
62# EXTERNAL PORTS OPENED BY THIS DOCKER STACK
63#
64# 8000 = paperless-ngx
65# 3000 = paperless-ai
66# 8082 = paperless-gpt
67#
68
69
70services:
71
72 paperless:
73 container_name: paperless
74 image: ghcr.io/paperless-ngx/paperless-ngx:latest
75 restart: unless-stopped
76 depends_on:
77 - paperless-mariadb
78 - paperless-redis
79 - paperless-gotenberg
80 - paperless-tika
81 ports:
82 - "8000:8000"
83 volumes:
84 - /mnt/user/appdata/paperless/paperless/data:/usr/src/paperless/data
85 - /mnt/user/appdata/paperless/paperless/media:/usr/src/paperless/media
86 # - /mnt/user/appdata/paperless/consume:/usr/src/paperless/consume
87 # - /mnt/user/appdata/paperless/export:/usr/src/paperless/export
88 environment:
89 USERMAP_UID: 99
90 USERMAP_GID: 100
91 PAPERLESS_REDIS: redis://paperless-redis:6379
92 PAPERLESS_DBENGINE: mariadb
93 PAPERLESS_DBHOST: paperless-mariadb
94 PAPERLESS_DBPORT: 3306
95 PAPERLESS_DBUSER: paperless
96 PAPERLESS_DBPASS: password123 # Password here
97 PAPERLESS_TIME_ZONE: Pacific/Auckland
98 PAPERLESS_OCR_LANGUAGE: eng
99 PAPERLESS_TIKA_ENABLED: 1
100 PAPERLESS_TIKA_ENDPOINT: http://paperless-tika:9998
101 PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://paperless-gotenberg:3000
102 PAPERLESS_TASK_WORKERS: 6
103 PAPERLESS_ENABLE_WEBSERVER: true
104 PAPERLESS_PRE_CONSUME_SCRIPT: ""
105 PAPERLESS_POST_CONSUME_SCRIPT: ""
106 labels:
107 net.unraid.docker.icon: "https://libs.websoft9.com/Websoft9/logo/product/paperlessngx-websoft9.png"
108 net.unraid.docker.webui: "http://192.168.1.173:8000"
109 networks:
110 - paperless-net
111
112
113 paperless-redis:
114 container_name: paperless-redis
115 image: docker.io/library/redis:8
116 restart: unless-stopped
117 volumes:
118 - /mnt/user/appdata/paperless/redis:/data
119 cap_drop:
120 - ALL
121 security_opt:
122 - no-new-privileges=true
123 networks:
124 - paperless-net
125
126
127 paperless-mariadb:
128 container_name: paperless-mariadb
129 image: docker.io/library/mariadb:11
130 restart: unless-stopped
131 volumes:
132 - /mnt/user/appdata/paperless/mariadb:/var/lib/mysql
133 environment:
134 MARIADB_HOST: paperless
135 MARIADB_DATABASE: paperless
136 MARIADB_USER: paperless
137 MARIADB_PASSWORD: password123 # Password here
138 MARIADB_ROOT_PASSWORD: password123 # Password here
139 networks:
140 - paperless-net
141
142
143 paperless-gotenberg:
144 container_name: paperless-gotenberg
145 image: docker.io/gotenberg/gotenberg:8.20
146 restart: unless-stopped
147 command:
148 - "gotenberg"
149 - "--chromium-disable-javascript=true"
150 - "--chromium-allow-list=file:///tmp/.*"
151 cap_drop:
152 - ALL
153 security_opt:
154 - no-new-privileges=true
155 networks:
156 - paperless-net
157
158
159 paperless-tika:
160 container_name: paperless-tika
161 image: docker.io/apache/tika:latest
162 restart: unless-stopped
163 cap_drop:
164 - ALL
165 networks:
166 - paperless-net
167
168
169 paperless-ai:
170 container_name: paperless-ai
171 image: clusterzx/paperless-ai
172 restart: unless-stopped
173 environment:
174 - PUID=99
175 - PGID=100
176 - PAPERLESS_AI_PORT=3000
177 - RAG_SERVICE_URL=http://paperless:8000
178 - RAG_SERVICE_ENABLED=true
179 ports:
180 - "3000:3000"
181 volumes:
182 - /mnt/user/appdata/paperless/paperless-ai:/app/data
183 cap_drop:
184 - ALL
185 security_opt:
186 - no-new-privileges=true
187 labels:
188 net.unraid.docker.webui: "http://192.168.1.173:3000"
189 networks:
190 - paperless-net
191
192
193 paperless-gpt:
194 container_name: paperless-gpt
195 image: icereed/paperless-gpt:latest
196 restart: unless-stopped
197 environment:
198 PAPERLESS_BASE_URL: "http://paperless:8000"
199 PAPERLESS_API_TOKEN: e3087dd8e058aebfc522fb91426d48d8b4a53a72 # API TOKEN FROM PAPERLESS-NGX GOES HERE
200 LLM_PROVIDER: "ollama"
201 LLM_MODEL: "llama3"
202 OLLAMA_HOST: "http://paperless-ollama:11434"
203 TOKEN_LIMIT: 1000
204 OCR_PROVIDER: "llm"
205 VISION_LLM_PROVIDER: "ollama"
206 VISION_LLM_MODEL: "minicpm-v"
207 OCR_PROCESS_MODE: "image"
208 PDF_SKIP_EXISTING_OCR: "false"
209 CREATE_LOCAL_HOCR: "false"
210 LOCAL_HOCR_PATH: "/app/hocr"
211 CREATE_LOCAL_PDF: "false"
212 LOCAL_PDF_PATH: "/app/pdf"
213 PDF_UPLOAD: "false"
214 PDF_REPLACE: "false"
215 PDF_COPY_METADATA: "true"
216 PDF_OCR_TAGGING: "true"
217 OCR_LIMIT_PAGES: "0"
218 LOG_LEVEL: "info"
219 MANUAL_TAG: "paperless-gpt"
220 AUTO_TAG: "paperless-gpt-auto"
221 AUTO_OCR_TAG: "paperless-gpt-ocr-auto"
222 PDF_OCR_COMPLETE_TAG: "paperless-gpt-ocr-complete"
223 AUTO_GENERATE_TAGS: "true"
224 AUTO_GENERATE_TITLE: "true"
225 volumes:
226 - /mnt/user/appdata/paperless/paperless-gpt/prompts:/app/prompts
227 - /mnt/user/appdata/paperless/paperless-gpt/hocr:/app/hocr
228 - /mnt/user/appdata/paperless/paperless-gpt/pdf:/app/pdf
229 - ${HOME}/.config/gcloud/application_default_credentials.json:/app/credentials.json
230 ports:
231 - "8082:8080"
232 depends_on:
233 - paperless
234 cap_drop:
235 - ALL
236 security_opt:
237 - no-new-privileges=true
238 labels:
239 net.unraid.docker.webui: "http://192.168.1.173:8082"
240 networks:
241 - paperless-net
242
243
244 paperless-ollama:
245 container_name: paperless-ollama
246 image: ollama/ollama
247 restart: unless-stopped
248 volumes:
249 - /mnt/user/appdata/paperless/ollama:/root/.ollama
250 cap_drop:
251 - ALL
252 security_opt:
253 - no-new-privileges=true
254 networks:
255 - paperless-net
256
257networks:
258 paperless-net:
259 driver: bridge
260