启动后需访问 http://localhost:7880 注册,且 collective 与用户名暂时要填相同;OCR 和文档转换依赖 tesseract、unoserver/unoconvert、ocrmypdf 等外部工具需另行安装;机器学习功能依赖 Stanford CoreNLP 库
docspell
eikekAGPL-3.0活跃维护把扫描件、邮件附件等来源的杂乱文档集中管理,自动做 OCR 和 NLP 分析并打标签归类,减少手工整理成本。
Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.
git clone https://github.com/docspell/docker docspell-docker
cd docspell-docker/docker-compose
docker-compose up -dREADME 未说明具体硬件要求;文件处理依赖 tesseract、unoserver/unoconvert、ocrmypdf 等外部工具
个人文档管理工具,把扫描件和邮件统一归档,用机器学习自动打标签、猜日期
把扫描件、邮件附件等来源的杂乱文档集中管理,自动做 OCR 和 NLP 分析并打标签归类,减少手工整理成本。
核心能力
- 用 Stanford CoreNLP 从已有文档学习元数据并推荐标签、通信方和日期
- 对扫描件执行 OCR 并支持全文检索
- 统一管理扫描仪、邮件等多来源文件
- 提供 REST/HTTP API 与移动端友好的 SPA 界面
- 附带 Android 客户端和命令行工具上传文件
容易踩的坑
- nightlyDocspell Nightlypre-release2026-10-27 · 2026-10-27 04:50 UTC
查看更新说明
Commits
- 751b0b8: Update dependency autoprefixer to v10.6.2 (#3367) (renovate[bot]) #3367
- v0.43.0Docspell 0.43.0最新正式版2025-03-15 · 2025-03-15 15:27 UTC
What’s Changed
🐛 Bug Fixes
- Fix scrolling in side bar @eikek (#3002)
- nix: unpin weasyprint from python310Packages @VTimofeenko (#2981)
- replaced deprecated "--optimize-size" with "--optimize-images" @jjkrone (#2972)
- Correction German Word Dokumene to Dokumente. @andbez (#2941)
- Fix duplicate task on reboot @tiborrr (#2902)
- Use http4s' new Part.filename method @pschichtel (#2853)
- Remove
--optimize-sizeoption from default weasyprint @eikek (#2784)
💚 Maintenance
- Remove docker workflows @eikek (#2956)
- These things live over at docspell/docker now @pschichtel (#2911)
- Add metals and bloop to gitignore @tiborrr (#2898)
- Update .gitignore for vscode users @tiborrr (#2778)
🧱 Dependencies
- Update dependency postcss to v8.5.3 @renovate[bot] (#2964)
- Update dependency autoprefixer to v10.4.21 @renovate[bot] (#2995)
- Update icu4j to 77.1 @eikek-scala-steward[bot] (#3001)
- Update scalafmt-core to 3.9.4 @eikek-scala-steward[bot] (#3000)
- Update flyway-core, ... to 11.4.0 @eikek-scala-steward[bot] (#2999)
- Update testcontainers-scala-mariadb, ... to 0.43.0 @eikek-scala-steward[bot] (#2997)
- Update scalafmt-core to 3.9.3 @eikek-scala-steward[bot] (#2994)
- Update kittens to 3.5.0 @eikek-scala-steward[bot] (#2992)
- Update sbt, scripted-plugin to 1.10.10 @eikek-scala-steward[bot] (#2991)
- Update jsoup to 1.19.1 @eikek-scala-steward[bot] (#2990)
- Update scalafmt-core to 3.9.2 @eikek-scala-steward[bot] (#2983)
- Update swagger-ui to 5.20.0 @eikek-scala-steward[bot] (#2984)
- Update flyway-core, ... to 11.3.4 @eikek-scala-steward[bot] (#2982)
- Update jcl-over-slf4j to 2.0.17 @eikek-scala-steward[bot] (#2976)
- Update scalafmt-core to 3.9.1 @eikek-scala-steward[bot] (#2975)
- Update sbt-scalafix to 0.14.2 @eikek-scala-steward[bot] (#2973)
- Update flyway-core, ... to 11.3.3 @eikek-scala-steward[bot] (#2974)
- Bump nanoid from 3.3.7 to 3.3.8 in /modules/webapp @dependabot[bot] (#2889)
- Bump cross-spawn from 7.0.3 to 7.0.6 in /modules/webapp @dependabot[bot] (#2860)
- Update scalafmt-core to 3.9.0 @eikek-scala-steward[bot] (#2969)
- Update flyway-core, ... to 11.3.2 @eikek-scala-steward[bot] (#2967)
- Update mariadb-java-client to 3.5.2 @eikek-scala-steward[bot] (#2965)
- Update jwt-circe to 10.0.4 @eikek-scala-steward[bot] (#2958)
- Update sbt-native-packager to 1.11.1 @eikek-scala-steward[bot] (#2954)
- Update flyway-core, ... to 11.3.1 @eikek-scala-steward[bot] (#2955)
- Update dependencies @eikek (#2947)
- Update swagger-ui to 5.18.3 @eikek-scala-steward[bot] (#2951)
- Update tika-core to 3.1.0 @eikek-scala-steward[bot] (#2950)
- Update munit-scalacheck to 1.1.0 @[eikek-scala-steward[bot]](https://githu
- v0.42.0Docspell 0.42.02024-08-18 · 2024-08-18 12:15 UTC
查看更新说明
What’s Changed
🚀 Features
- Nix module: secure config file @ivanbrennan (#2699)
- Add logout-url option to Nix module @VTimofeenko (#2646)
- Add package option to Nix modules @VTimofeenko (#2630)
- Add Japanese Vertical Support Branch for Tesseract and Ocrmypdf OCR @tenpai-git (#2505)
- Extend nix setup, including dev environments @eikek (#2539)
- Extend config for external commands @eikek (#2536)
🐛 Bug Fixes
- Honor default value
trueforcollectOutput@eikek (#2663) - FIx extracting addons with only a single file @eikek (#2660)
- Move arg-mappings underneath
commandsection @eikek (#2659) - Change docker base images to 3.19.1 @eikek (#2519)
- fix(webapp): downstream keep-alive events to backend preventing timeout @nekrondev (#2500)
- Fix some Kubernetes Kustomize deployment issues @TheAnachronism (#2501)
- tesseract english data is now a separate package @programmerq (#2479)
💚 Maintenance
- Update flake @eikek (#2736)
- Adding CJK and Custom Mapping Documentation @tenpai-git (#2669)
- docs(development.md): Fix minor typos @ChanceHarrison (#2613)
- Add page to website about contributing to docs @ChanceHarrison (#2612)
- Fix renamed elm package @eikek (#2547)
- Redocly tailwind setup @eikek (#2540)
- Pushing a minor fix to the bash commands. @tenpai-git (#2523)
- Add documentation for backup and restore process for PostgreSQL. @tenpai-git (#2508)
🧱 Dependencies
- Update dependency @fontsource/montserrat to v5.0.19 @renovate (#2734)
- Update dependency tailwindcss to v3.4.10 @renovate (#2733)
- Update dependency cssnano to v7.0.5 @renovate (#2726)
- Update postgres Docker tag to v16.4 @renovate (#2725)
- Update dependency tailwindcss to v3.4.9 @renovate (#2724)
- Update dependency tailwindcss to v3.4.8 @renovate (#2723)
- Update dependency postcss to v8.4.41 @renovate (#2722)
- Update dependency autoprefixer to v10.4.20 @renovate (#2719)
- Update dependency tailwindcss to v3.4.7 @renovate (#2714)
- Update dependency postcss to v8.4.40 @renovate (#2713)
- Update alpine Docker tag to v3.20.2 @renovate (#2712)
- Update mariadb-java-client to 3.4.1 @eikek-scala-steward (#2708)
- Update dependency @fortawesome/fontawesome-free to v6.6.0 @renovate (#2707)
- Update dependency tailwindcss to v3.4.6 @renovate (#2706)
- Update dependency tailwindcss to v3.4.5 @renovate (#2704)
- Update circe-yaml to 0.15.3 @eikek-scala-steward (#2703)
- Update jsoup to 1.18.1 @eikek-scala-steward (#2702)
- Bump braces from 3.0.2 to 3.0.3 in /modules/webapp @dependabot (#2684)
- Update sbt to 1.10.1 @eikek-scala-steward (#2700)
- Update dependency cssnano to v7.0.4 @renovate (#2698)
- Update dependency postcss to v8.4.39 @renovate (#2695)
- Update sbt-sonatype to 3.11.0 @eikek-scala-steward (#2693)
- Update circe-yaml to 0.15.2 @eikek-scala-steward (#2691)
- Update alpine Docker tag to v3.20.1 @renovate (#2689)
- Update dependency cssnano to v7.0.3 @renovate (#2687)
- Update scalafmt-core to 3.8.2 @eikek-scala-steward (#2686)
- Update testcontainers-scala-mariadb, ... to 0.41.4 @eikek-scala-steward (#2685)
- Update actions/checkout action to v4.1.7 @renovate (#2683)
- Update pureconfig, pureconfig-ip4s to 0.17.7 @eikek-scala-steward (#2680)
- Update imageio-jpeg, imageio-tiff to 3.11.0 @eikek-scala-steward (#2679)
- Update scala-java-time to 2.6.0 @eikek-scala-steward (#2677)
- Update dependency tailwindcss to v3.4.4 @renovate (#2676)
- Update dependency cssnano to v7.0.2 @renovate (#2675)
- Update scribe, scribe-slf4j2 to 3.15.0 @eikek-scala-steward (#2674)
- Update scribe, scribe-slf4j2 to 3.14.0 @eikek-scala-steward (#2671)
- Update swagger-ui to 5.17.14 @eikek-scala-steward (#2670)
- Update dependency flag-icons to v7.2.3 @renovate (#2665)
- Update munit to 1.0.0, munit-cats-effect to 2.0.0 @eikek (#2664)
- Update calev-circe, calev-core, calev-fs2 to 0.7.3 @eikek-scala-steward (#2662)
- Update swagger-ui to
- v0.41.0Docspell 0.41.02024-01-29 · 2024-01-29 21:02 UTC
查看更新说明
🎉 Changelog • Documentation • Milestone 🎉
- Add khmer language (#2011)
- Replace blaze with ember (http stack) (#2221, #2348)
- Updated several dependencies (#2348, #2354, 2355)
- Fix
AddonExecutionResultmonoid (#2363) - Setting item date from addons (#2345)
- Fix sql queries where a space was missing (#2367, #2368)
- Change AWS region for minio file backend (#2386)
- Allow additional metadata to be passed on upload for addons and hooks (#2334)
- Add support for Slovak language
- Fix possibility to configure too large
session-validvalues (#2309) - Consider emails when
flattenArchivesis true (#2063) - Allow new file upload without hitting reset (#2323)
Solr needs analysis-extra module
With the addition of khmer language, solr needs now to load its
analysis-extramodule. It is (usually) packaged with the solr distribution, so it only requires to change the startup command. Thedocker-composefile has been changed accordingly. You might need to check your setup.H2 Update
The in-process database H2 was updated in this release: from
2.1.214to2.2.224. You need to migrate your data to make it work with the new release. Exporting using the old version and importing using the new version should work fine. For details, please refer to the h2 documentation. There is a scripttools/h2-util.shto help with this process. Also this comment might be useful.Big thanks to:
- @eikek
- @madduck
- @mprasil
- @rehanone
- @v6ak
- @xshadowlegendx
- v0.40.0Docspell 0.40.02023-03-11 · 2023-03-11 19:17 UTC
查看更新说明
🎉 Changelog • Documentation • Milestone 🎉
This release contains some bug fixes and improvements.
- Add Ukrainian language (#1835, @GooRoo)
- webui: normalize
,to.for numeric fields (#1975) - improve error reporting when file backend fails (#1976)
- docker: remove exlpicit zlib install (#1863)
- nix: implement nix flake (#1869, @VTimofeenko)
- nix: replace wkhtmltopdf with weasyprint (#1873, #1895, @VTimofeenko)
- fix listing shares with no name (#1840)
- fix html conversion of text files (#1915)
- fix: remove test-scoped dependencies from artifacts (#1856)
- fix deletin users (#1941)
- fix notification for collective scoped tasks (#1987)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Docspell - Document Management System (DMS)
Docspell is a personal document organizer. Or sometimes called a "Document Management System" (DMS). You'll need a scanner to convert your papers into files. Docspell can then assist in organizing the resulting mess :wink:. It can unify your files from scanners, emails and other sources. It is targeted for home use, i.e. families, households and also for smaller groups/companies.
You can associate tags, set correspondends and lots of other predefined and custom metadata. If your documents are associated with such meta data, you can quickly find them later using the search feature. But adding this manually is a tedious task. Docspell can help by suggesting correspondents, guessing tags or finding dates using machine learning. It can learn metadata from existing documents and find things using NLP. This makes adding metadata to your documents a lot easier. For machine learning, it relies on the free (GPL) Stanford Core NLP library.
Docspell also runs OCR (if needed) on your documents, can provide fulltext search and has great e-mail integration. Everything is accessible via a REST/HTTP api. A mobile friendly SPA web application is the default user interface. An Android app exists for conveniently uploading files from your phone/tablet and a cli. The feature overview lists some more points.
Impressions
Checkout the short demo videos (<1min), present on the project page. Here are some screenshots:

Try it
Docspell consists of several components. The probably quickest way to get started is to use the docker setup as described in the get started page. This is only three commands away:
git clone https://github.com/docspell/docker docspell-docker
cd docspell-docker/docker-compose
docker-compose up -d
Then go to http://localhost:7880, sign up and login. Use the same
name for collective and user for now. More on that can be found
here.
Other ways are documented here:
- Install the provided
debfile at your debian based system. - Download provided zip
file and run the script in
bin/, as described here. - Using the nix package manager as described here. A NixOS module is available, too.
- Use the Helm Chart.
Documentation
The project page has lots of information on how to use and setup docspell.
Contributions/Support
Feedback and other contributions are very welcome! There is a gitter
room for chatting and questions.
You can also open an
issue for questions,
problems and other feedback; or make a mail to info [at] docspell.org. I'll try to answer in time. You may want to check
Contributing.md for some starting points, too.
If you find this project any useful and want to support it via other means, giving a :star: is always encouraging and much appreciated. You can also support activity by donating via liberapay or paypal.
Thank you so much!
Tech Stack
Backend
The servers is written in Scala in a pure functional style, based on libraries from the typelevel stack: Cats, FS2, Doobie, Http4s, Circe and Pureconfig.
There are more libraries and technologies used, of course. Docspell is
only a orchestration of great tools and libs. One important is the
Stanford-NLP, that provides the
ML features. Furthermore, file processing relies on external tools
like tesseract, unoserver/unoconvert and ocrmypdf. All dependencies can be looked
up in project/Dependencies.scala.
Frontend
The web frontend is a SPA written in Elm. The UI framework in use is tailwind.
License
Docspell is free software, distributed under the AGPLv3 or later.