在這個數(shù)字化時代,我們每天都在處理大量的文件和文檔,隨著時間推移,這些紙質(zhì)文件不斷堆積,不僅占用大量空間,查找起來非常讓人頭疼。
你是否也曾因?yàn)檎也坏街匾募箲]不已?或是被滿屋子的文件弄得焦頭爛額?
而今天要介紹的這款開源神器 Paperless-ngx,帶來了一站式的文檔管理解決方案:智能OCR識別讓所有掃描文件變得可搜索,強(qiáng)大的全文檢索幫你快速定位文檔,機(jī)器學(xué)習(xí)還能自動分類和打標(biāo)簽。
更贊的是,它支持多用戶權(quán)限管理和文件安全分享,所有數(shù)據(jù)都在自己的服務(wù)器上。最重要的是,它完全免費(fèi),沒有用戶數(shù)限制,沒有存儲空間限制,幫你輕松省下每年上萬元的訂閱費(fèi)用。
項(xiàng)目地址
https://github.com/paperless-ngx/paperless-ngx
項(xiàng)目特性
- 強(qiáng)大的文檔管理:支持標(biāo)簽、關(guān)聯(lián)方、類型等多維度文檔組織
- 智能OCR識別:可識別100多種語言,將掃描文檔轉(zhuǎn)換為可搜索的文本
- 全文檢索:支持關(guān)鍵詞提示、相關(guān)性排序、結(jié)果高亮顯示
- 本地存儲:所有數(shù)據(jù)保存在您自己的服務(wù)器上,確保隱私安全
- 機(jī)器學(xué)習(xí):自動添加標(biāo)簽、識別文檔類型
- 批量處理:支持多核并行處理文檔
- 郵件導(dǎo)入:可配置多個郵箱賬戶自動導(dǎo)入文檔
- 文件格式:支持PDF、圖片、Office文檔等多種格式
群暉部署
下面一起來看看怎么通過群暉部署Paperless-ngx。
如果你了解命令行以及SSH,可以直接通過運(yùn)行官方腳本進(jìn)行部署。
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
或者直接下載官方倉庫的compose文件來部署。
因?yàn)?Paperless-ngx 項(xiàng)目需要數(shù)據(jù)庫,而群暉中自帶 MariaDB,所以我們可以復(fù)用數(shù)據(jù)庫,不需要再單獨(dú)創(chuàng)建數(shù)據(jù)庫容器。
通過群暉 phpAdmin 套件,登錄到數(shù)據(jù)庫管理界面,在賬戶菜單下新增賬戶并同時創(chuàng)建數(shù)據(jù)庫。
如果不了解phpAdmin套件以及MariaDB數(shù)據(jù)庫相關(guān)的配置,可以參閱這篇文章。
配置完數(shù)據(jù)庫后,在 File Station 套件中新增 paperless-ngx 項(xiàng)目的文件夾paperlessNgx
。
并創(chuàng)建子文件夾comsume
、data
、exprot
、media
、redis
五個文件夾。
分別進(jìn)入屬性界面,修改它們的權(quán)限為Everyone
可讀寫。
下面來看看docker-compose文件,這里老寧修改了官方的compose文件,去掉了下載MariaDB 數(shù)據(jù)庫的操作。我們只需把它復(fù)制粘貼保存為docker-compose.yml
文件即可。
version: '3.4' services: broker: image: docker.io/library/redis:7 restart: unless-stopped volumes: - ${REDIS_DATA_DIR:-./redis}:/data webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: unless-stopped depends_on: - broker - gotenberg - tika ports: - "${PORT:-8000}:8000" volumes: - ${DATA_DIR:-./data}:/usr/src/paperless/data - ${MEDIA_DIR:-./media}:/usr/src/paperless/media - ${EXPORT_DIR:-./export}:/usr/src/paperless/export - ${CONSUME_DIR:-./consume}:/usr/src/paperless/consume environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBENGINE: mariadb PAPERLESS_DBHOST: ${DB_HOST:-localhost} PAPERLESS_DBUSER: ${DB_USER:-paperless} PAPERLESS_DBPASS: ${DB_PASSWORD:-paperless} PAPERLESS_DBPORT: ${DB_PORT:-3306} PAPERLESS_TIKA_ENABLED: 1 PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 PAPERLESS_TIKA_ENDPOINT: http://tika:9998 gotenberg: image: docker.io/gotenberg/gotenberg:8.7 restart: unless-stopped command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/.*" tika: image: docker.io/apache/tika:latest restart: unless-stopped
對應(yīng)的環(huán)境變量文件如下,同樣把它復(fù)制粘貼下來并保存為.env
文件。
PORT=8200 DATA_DIR=/volume1/test/paperlessNgx/data MEDIA_DIR=/volume1/test/paperlessNgx/media EXPORT_DIR=/volume1/test/paperlessNgx/export CONSUME_DIR=/volume1/test/paperlessNgx/consume REDIS_DATA_DIR=/volume1/test/paperlessNgx/redis DB_HOST=192.168.2.99 DB_NAME=paperless DB_USER=paperless DB_PASSWORD=12345678 DB_PORT=3307 PAPERLESS_TIME_ZONE=Asia/Shanghai
- 如果要修改 paperless-ngx 服務(wù)的端口,可以PORT對應(yīng)的值。
- DATA_DIR 這五個變量對應(yīng)的值為前面創(chuàng)建文件夾的路經(jīng)。
- DB_HOST為數(shù)據(jù)庫配置,需對應(yīng)開始在 MariaDB 中創(chuàng)建的 paperless 數(shù)據(jù)庫相關(guān)值。
- 至于 PAPERLESS_TIME_ZONE 等其他的配置可以參考官方文檔進(jìn)行配置。
修改完畢后,把docker-compose.yml
和.env
文件都上傳到paperlessNgx
文件夾下。
打開群暉 Container Manager 套件,在項(xiàng)目菜單中新增一個項(xiàng)目paperless-ngx
,選擇路徑為前面創(chuàng)建的文件夾并選擇使用已有的docker-compose文件創(chuàng)建。
接著點(diǎn)擊下一步直接進(jìn)行構(gòu)建。
可以查看paperless-webserver
容器的日志來觀察構(gòu)建狀態(tài)。因?yàn)橐獎?chuàng)建數(shù)據(jù)庫操作,所以過稱較慢。
還有種方法更簡單:嘗試用瀏覽器打開【群暉ip:8200】,如果界面出現(xiàn)則構(gòu)建成功。
構(gòu)建完畢后在paperless-webserver
容器中打開終端機(jī)進(jìn)行賬戶配置。
需要先點(diǎn)擊新增才能輸入命令。
輸入python3 manage.py createsuperuser
創(chuàng)建用戶。(輸入用戶名、郵箱和密碼,郵箱可選,密碼輸入會看不見)
再用瀏覽器打開【群暉ip:8200】,輸入用戶名和密碼就可以登錄。
使用
首頁點(diǎn)擊右側(cè)的瀏覽文件即可上傳文檔到 paperless-ngx 中。
paperless-ngx 支持多種文檔格式。
支持聯(lián)系人、標(biāo)簽、自定文檔類型創(chuàng)建。
可以直接對文檔內(nèi)容進(jìn)行搜索。文檔在上傳時,已經(jīng)被OCR識別轉(zhuǎn)為了PFD,所以可以直接搜索文檔的內(nèi)容。
除了網(wǎng)頁上傳,我們也可以通過各平臺客戶端把文檔上傳到 paperless-ngx 中。
具體細(xì)節(jié)可以查看官方文檔:https://github.com/paperless-ngx/paperless-ngx/wiki/Related-Projects。
后記
paperless-ngx 這個項(xiàng)目是非常強(qiáng)大的,使用的人群也非常廣泛。它可以把我們平時用到的文檔進(jìn)行分類管理,并且還支持內(nèi)容級別的搜索,極大解決了文件雜亂的問題。
這篇文章其實(shí)寫的不是很全,很多用法、高級功能都沒有進(jìn)行介紹,因?yàn)樗姆创渲梦腋懔藥讉€小時都沒有成功,所以把我整不會了。
如果哪位小伙伴的反代配置成功了,麻煩告訴我是如何配置的。
我是老寧
一個熱愛技術(shù)的程序員和極客,群暉NAS深度玩家!
專注NAS相關(guān)技術(shù)分享,原創(chuàng)!干貨!
覺得老寧的文章對你有幫助,記得點(diǎn)贊、收藏、加關(guān)注!
,