项目概述
Docspell是一款专为简化电子文档管理流程而设计的智能工具,其核心理念是让用户能够以最低的操作成本高效整理各类数字文档。该系统的突出功能涵盖自动化文档分类、OCR文字识别提取、全文内容检索、集成机器学习与自然语言处理技术,以及完善的多用户账户管理体系。
项目源代码地址
项目源码仓库位于:https://github.com/eikek/docspell
Docker Compose配置文件详解
name: docspell
services:
restserver:
image: docker.1ms.run/docspell/restserver:latest
hostname: docspell-restserver
container_name: docspell-restserver
restart: unless-stopped
ports:
- "7880:7880"
environment:
TZ: 'Asia/Shanghai'
DOCSPELL_SERVER_INTERNAL__URL: 'http://docspell-restserver:7880'
DOCSPELL_SERVER_ADMIN__ENDPOINT_SECRET: 'admin123'
DOCSPELL_SERVER_AUTH_SERVER__SECRET: ''
DOCSPELL_SERVER_BACKEND_JDBC_PASSWORD: 'dbpass'
DOCSPELL_SERVER_BACKEND_JDBC_URL: 'jdbc:postgresql://db:5432/dbname'
DOCSPELL_SERVER_BACKEND_JDBC_USER: 'dbuser'
DOCSPELL_SERVER_BIND_ADDRESS: '0.0.0.0'
DOCSPELL_SERVER_FULL__TEXT__SEARCH_ENABLED: 'true'
DOCSPELL_SERVER_FULL__TEXT__SEARCH_SOLR_URL: 'http://docspell-solr:8983/solr/docspell'
DOCSPELL_SERVER_INTEGRATION__ENDPOINT_ENABLED: 'true'
DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_ENABLED: 'true'
DOCSPELL_SERVER_INTEGRATION__ENDPOINT_HTTP__HEADER_HEADER__VALUE: 'integration-password123'
DOCSPELL_SERVER_BACKEND_SIGNUP_MODE: 'open'
DOCSPELL_SERVER_BACKEND_SIGNUP_NEW__INVITE__PASSWORD: ''
DOCSPELL_SERVER_BACKEND_ADDONS_ENABLED: 'false'
joex:
image: docker.1ms.run/docspell/joex:latest
hostname: docspell-joex
container_name: docspell-joex
restart: unless-stopped
environment:
TZ: 'Asia/Shanghai'
DOCSPELL_JOEX_APP__ID: 'joex1'
DOCSPELL_JOEX_PERIODIC__SCHEDULER_NAME: 'joex1'
DOCSPELL_JOEX_SCHEDULER_NAME: 'joex1'
DOCSPELL_JOEX_BASE__URL: 'http://docspell-joex:7878'
DOCSPELL_JOEX_BIND_ADDRESS: '0.0.0.0'
DOCSPELL_JOEX_FULL__TEXT__SEARCH_ENABLED: 'true'
DOCSPELL_JOEX_FULL__TEXT__SEARCH_SOLR_URL: 'http://docspell-solr:8983/solr/docspell'
DOCSPELL_JOEX_JDBC_PASSWORD: 'dbpass'
DOCSPELL_JOEX_JDBC_URL: 'jdbc:postgresql://db:5432/dbname'
DOCSPELL_JOEX_JDBC_USER: 'dbuser'
DOCSPELL_JOEX_ADDONS_EXECUTOR__CONFIG_RUNNER: 'docker,trivial'
DOCSPELL_JOEX_CONVERT_HTML__CONVERTER: 'weasyprint'
ports:
- "7878:7878"
consumedir:
image: docker.1ms.run/docspell/dsc:latest
container_name: docspell-consumedir
command:
- dsc
- "-d"
- "http://docspell-restserver:7880"
- "watch"
- "--delete"
- "-ir"
- "--not-matches"
- "**/.*"
- "--header"
- "Docspell-Integration:integration-password123"
- "/opt/docs"
restart: unless-stopped
volumes:
- ./data/docs:/opt/docs
db:
image: docker.1ms.run/library/postgres:16.1
container_name: postgres_db
restart: unless-stopped
volumes:
- ./data/db:/var/lib/postgresql/data/
environment:
POSTGRES_USER: 'dbuser'
POSTGRES_PASSWORD: 'dbpass'
POSTGRES_DB: 'dbname'
solr:
image: docker.1ms.run/library/solr:9
container_name: docspell-solr
restart: unless-stopped
volumes:
- ./data/solr:/var/solr
command:
- bash
- -c
- 'precreate-core docspell; exec solr -f -Dsolr.modules=analysis-extras'
healthcheck:
test: ["CMD", "curl", "-f", "http://docspell-solr:8983/solr/docspell/admin/ping"]
interval: 1m
timeout: 10s
retries: 2
start_period: 30s
volumes:
solr_data:
driver: local
driver_opts:
o: bind
type: none
device: ./data/solr
安装过程中常见问题与解决方案
配置注意事项
在Docker Compose配置文件中涉及多个服务端口,并且各容器之间通过容器名称进行内部通信,因此需要特别注意:
- 如果需要修改默认端口号,必须确保将所有相关服务的端口配置同步更新
- 假如计划更改容器名称,务必在所有出现相同容器名称的地方进行相应调整
镜像下载与存储空间
整套系统包含多个Docker镜像,由于集成了机器学习组件,总体镜像体积较为庞大,下载过程需要保持耐心等待。
配置文件中已经添加了Docker镜像加速地址docker.1ms.run,用户可以直接使用这个地址来提升下载速度。需要注意的是,这个公共加速器近期使用人数较多,可能会导致下载速度有所下降。
成功拉取后的各镜像占用空间情况如图所示:

Solr搜索引擎容器启动异常
通过执行docker compose ps命令可以查看各个容器的运行状态,如果发现类似下图的错误提示:

这种情况通常是由于Compose配置中指定的./data/solr目录权限设置不当所致,可以按照以下步骤进行修复:
# 首先停止所有运行中的容器
docker compose down -t 1
# 为Solr数据目录分配读写权限,确保容器内用户能够正常访问
sudo chmod 777 ./data/solr
sudo chmod 777 ./data/docs # 同时为文档存储目录设置相同权限,避免后续出现类似问题
# 重新启动所有服务
docker compose up -d
等待约两分钟让系统完全启动后,再次检查容器状态,所有服务都应该显示为健康运行状态:

用户注册后登录失败
完成账户注册后输入密码点击登录,系统反复提示认证失败,这种情况可能是注册时填写的信息不符合系统要求所致,具体界面如下:

首次尝试注册时,如果CollectiveID与User Login字段填写内容不一致,或者设置的密码过于简单(如123456),虽然系统会显示注册成功,但实际无法正常登录。解决方法是清理数据后重新注册:
# 停止所有容器服务
docker compose down -t 1
# 删除原有的数据库文件
sudo rm -rf ./data/db # 根据实际配置文件中的路径进行调整
# 重新启动系统
docker compose up -d
经过约两分钟的等待系统完全启动后,在注册页面确保CollectiveID和User Login字段填写相同内容(例如jfzui),密码设置为包含字母和数字的组合(如jfzui666),这样就能成功登录系统。具体是哪个修改步骤起了关键作用尚不确定,用户可以根据这个经验自行尝试调整。
系统使用总结与功能评价
Docspell提供了一系列强大的文档管理功能,特别是全文检索能力和自定义元数据支持非常实用。对于日常工作中需要处理大量客户往来文件的用户来说,这套系统能够有效实现文档的智能化整理。
不过目前系统对中文语言的支持存在一定限制,具体表现如下图所示:
