Project Icon

docs

开源轻量级文档管理系统

Teedy是一款开源轻量级文档管理系统,适用于个人和企业用户。系统提供响应式界面、OCR识别、全文搜索和文件加密等功能,支持图片、PDF和Office等多种格式。Teedy还具备工作流、权限管理和审计日志等企业级特性,可通过Docker快速部署,满足安全高效的文档管理需求。

Teedy

许可证: GPL v2 Maven CI/CD

Teedy是一个面向个人和企业的开源轻量级文档管理系统。


如果您使用并喜欢这个项目,请赞助它!


新功能!

演示

演示可在 demo.teedy.io 上查看

  • 访客登录已启用,可对所有文档进行只读访问
  • "admin"登录,密码为"admin"
  • "demo"登录,密码为"password"

功能

  • 响应式用户界面
  • 光学字符识别
  • LDAP身份验证 新功能!
  • 支持图像、PDF、ODT、DOCX、PPTX文件
  • 视频文件支持
  • 灵活的搜索引擎,具有建议和高亮功能
  • 支持所有文件的全文搜索
  • 所有都柏林核心元数据
  • 自定义用户元数据 新功能!
  • 工作流系统 新功能!
  • 存储文件的256位AES加密
  • 文件版本控制 新功能!
  • 支持嵌套的标签系统
  • 从电子邮件导入文档(EML格式)
  • 自动收件箱扫描和导入
  • 用户/组权限系统
  • 双因素身份验证
  • 分层群组
  • 审计日志
  • 评论功能
  • 每用户存储配额
  • 通过URL分享文档
  • RESTful Web API
  • 触发外部服务的Webhooks
  • 功能齐全的Android客户端
  • 批量文件导入器(单个或扫描模式)
  • 已测试可支持一百万份文档

使用Docker安装

提供了一个预配置的Docker镜像,包含OCR和媒体转换工具,监听8080端口。如果未提供PostgreSQL配置,数据库将使用嵌入式H2数据库。H2嵌入式数据库仅应用于测试。对于生产环境,请使用提供的PostgreSQL配置(请查看Docker Compose示例)

默认管理员密码是"admin"。在投入生产使用之前,请务必更改它。

  • 主分支,可能不稳定。不建议用于生产环境:sismics/docs:latest
  • 最新稳定版本:sismics/docs:v1.11

数据目录为/data。别忘了在上面挂载一个卷。

要构建外部URL,服务器需要一个DOCS_BASE_URL环境变量(例如https://teedy.mycompany.com)

可用的环境变量

  • 通用

    • DOCS_BASE_URL:应用程序使用的基础URL。生成的URL将以此为基础。
    • DOCS_GLOBAL_QUOTA:定义适用于所有用户的默认配额。
    • DOCS_BCRYPT_WORK:定义用于密码哈希的工作因子。默认值为10。该值可以是4...31,包括431。指定的值将用于所有新用户和更改密码的用户。请注意,将此因子设置得过高可能会严重影响登录和用户创建性能。
  • 管理员

    • DOCS_ADMIN_EMAIL_INIT:定义初始化时管理员用户应具有的电子邮件地址。
    • DOCS_ADMIN_PASSWORD_INIT:定义初始化时管理员用户应具有的密码。需要是bcrypt哈希值。请注意,哈希值中的$必须用第二个$转义。
  • 数据库

    • DATABASE_URLhibernate使用的jdbc连接字符串。
    • DATABASE_USER:用于数据库连接的用户。
    • DATABASE_PASSWORD:用于数据库连接的密码。
    • DATABASE_POOL_SIZE:用于数据库连接的连接池大小。
  • 语言

    • DOCS_DEFAULT_LANGUAGE:将作为默认语言使用的语言。目前支持的值包括:
      • eng, fra, ita, deu, spa, por, pol, rus, ukr, ara, hin, chi_sim, chi_tra, jpn, tha, kor, nld, tur, heb, hun, fin, swe, lav, dan
  • 电子邮件

    • DOCS_SMTP_HOSTNAME:Teedy使用的SMTP服务器的主机名。
    • DOCS_SMTP_PORT:应使用的端口。
    • DOCS_SMTP_USERNAME:要使用的用户名。
    • DOCS_SMTP_PASSWORD:要使用的密码。

示例

在以下示例中,一些密码以明文形式显示。这是为了保持示例简单。我们强烈建议您使用带有.env文件的变量或其他方式来安全地存储密码。

默认,使用PostgreSQL

version: '3'
services:
# Teedy应用
  teedy-server:
    image: sismics/docs:v1.11
    restart: unless-stopped
    ports:
      # 将内部端口映射到主机
      - 8080:8080
    environment:
      # 要使用的基础URL
      DOCS_BASE_URL: "https://docs.example.com"
      # 设置管理员邮箱
      DOCS_ADMIN_EMAIL_INIT: "admin@example.com"
      # 设置管理员密码(在本例中为:"superSecure")
      DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
      # 设置数据库连接。"teedy-db"是主机名
      # "teedy"是应用程序将连接到的数据库名称。
      DATABASE_URL: "jdbc:postgresql://teedy-db:5432/teedy"
      DATABASE_USER: "teedy_db_user"
      DATABASE_PASSWORD: "teedy_db_password"
      DATABASE_POOL_SIZE: "10"
    volumes:
      - ./docs/data:/data
    networks:
      - docker-internal
      - internet
    depends_on:
      - teedy-db

# Teedy的数据库
  teedy-db:
    image: postgres:13.1-alpine
    restart: unless-stopped
    expose:
      - 5432
    environment:
      POSTGRES_USER: "teedy_db_user"
      POSTGRES_PASSWORD: "teedy_db_password"
      POSTGRES_DB: "teedy"
    volumes:
      - ./docs/db:/var/lib/postgresql/data
    networks:
      - docker-internal

networks:
  # 没有互联网访问的网络。数据库不需要
  # 访问主机网络。
  docker-internal:
    driver: bridge
    internal: true
  internet:
    driver: bridge

使用内部数据库(仅用于测试)

version: '3'
services:
# Teedy应用
  teedy-server:
    image: sismics/docs:v1.11
    restart: unless-stopped
    ports:
      # 将内部端口映射到主机
      - 8080:8080
    environment:
      # 要使用的基础URL
      DOCS_BASE_URL: "https://docs.example.com"
      # 设置管理员邮箱
      DOCS_ADMIN_EMAIL_INIT: "admin@example.com"
      # 设置管理员密码(在本例中为:"superSecure")
      DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
    volumes:
      - ./docs/data:/data

手动安装

要求

  • Java 11
  • 用于OCR的Tesseract 4
  • 用于视频缩略图的ffmpeg
  • 用于视频元数据提取的mediainfo
  • JettyTomcat这样的Web应用服务器

下载

最新版本可在此处下载:https://github.com/sismics/docs/releases,格式为WAR。 默认管理员密码是"admin"。在投入生产之前不要忘记更改它。

如何从源代码构建Teedy

前提条件:JDK 11、Maven 3、NPM、Grunt、Tesseract 4

Teedy由几个Maven模块组成:

  • docs-core
  • docs-web
  • docs-web-common

首先,克隆仓库:git clone git://github.com/sismics/docs.git 或从GitHub下载源代码。

启动构建

从根目录:

mvn clean -DskipTests install

运行独立版本

docs-web目录:

mvn jetty:run

构建.war文件以部署到servlet容器

docs-web目录:

mvn -Pprod -DskipTests clean install

你将在docs-web/target目录中获得可部署的WAR文件。

贡献

欢迎所有形式的贡献。贡献可以解决问题、修复bug(已报告或未报告的)、改进现有代码、添加新功能等。

master分支是项目的默认和基础分支。它用于开发,所有Pull请求都应该提交到这里。

许可证

Teedy根据GPL许可证的条款发布。有关更多信息,请参阅COPYING或访问http://opensource.org/licenses/GPL-2.0

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号