/dpqq-docs

轻量级文档管理系统,包含您可以从昂贵的大型解决方案中获得的所有功能

Primary LanguageJavaScriptGNU General Public License v2.0GPL-2.0

特迪

许可证:GPL v2 Maven CI/CD

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



新的!

演示

demo.teedy.io提供演示

  • 启用访客登录并可读取所有文档
  • 使用“admin”密码登录“admin”
  • 使用“密码”密码“演示”登录

特征

  • 响应式用户界面
  • 光学字符识别
  • LDAP认证新的!
  • 支持图像、PDF、ODT、DOCX、PPTX 文件
  • 视频文件支持
  • 灵活的搜索引擎,提供建议和突出显示
  • 在所有支持的文件中进行全文搜索
  • 所有都柏林核心元数据
  • 自定义用户定义的元数据新的!
  • 工作流程系统新的!
  • 存储文件的 256 位 AES 加密
  • 文件版本控制新的!
  • 带嵌套的标签系统
  • 从电子邮件导入文档(EML 格式)
  • 自动收件箱扫描和导入
  • 用户/组权限系统
  • 2 因素身份验证
  • 等级组
  • 审核日志
  • 评论
  • 每个用户的存储配额
  • 通过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_URL:要使用的 jdbc 连接字符串hibernate
    • 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 Application
  teedy-server:
    image: sismics/docs:v1.11
    restart: unless-stopped
    ports:
      # Map internal port to host
      - 8080:8080
    environment:
      # Base url to be used
      DOCS_BASE_URL: "https://docs.example.com"
      # Set the admin email
      DOCS_ADMIN_EMAIL_INIT: "admin@example.com"
      # Set the admin password (in this example: "superSecure")
      DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
      # Setup the database connection. "teedy-db" is the hostname
      # and "teedy" is the name of the database the application
      # will connect to.
      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

# DB for 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: # Network without internet access. The db does not need # access to the host network. docker-internal: driver: bridge internal: true internet: driver: bridge

<clipboard-copy aria-label="Copy" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 tooltipped-no-delay d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w" value="version: '3' services:

Teedy Application

teedy-server: image: sismics/docs:v1.11 restart: unless-stopped ports: # Map internal port to host - 8080:8080 environment: # Base url to be used DOCS_BASE_URL: "https://docs.example.com" # Set the admin email DOCS_ADMIN_EMAIL_INIT: "admin@example.com" # Set the admin password (in this example: "superSecure") DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS" # Setup the database connection. "teedy-db" is the hostname # and "teedy" is the name of the database the application # will connect to. 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

DB for 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:

Network without internet access. The db does not need

access to the host network.

docker-internal: driver: bridge internal: true internet: driver: bridge" tabindex="0" role="button">

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

version: '3'
services:
# Teedy Application
  teedy-server:
    image: sismics/docs:v1.11
    restart: unless-stopped
    ports:
      # Map internal port to host
      - 8080:8080
    environment:
      # Base url to be used
      DOCS_BASE_URL: "https://docs.example.com"
      # Set the admin email
      DOCS_ADMIN_EMAIL_INIT: "admin@example.com"
      # Set the admin password (in this example: "superSecure")
      DOCS_ADMIN_PASSWORD_INIT: "$$2a$$05$$PcMNUbJvsk7QHFSfEIDaIOjk1VI9/E7IPjTKx.jkjPxkx2EOKSoPS"
    volumes:
      - ./docs/data:/data

手动安装

要求

  • 爪哇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 模块组成:

  • 文档核心
  • 文档网络
  • 文档网络通用

首先,克隆存储库: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

您将在该目录中获得可部署的 WAR docs-web/target

贡献

我们非常欢迎所有的贡献。贡献可能会解决问题、修复错误(已报告或未报告)、改进现有代码、添加新功能等。

master分支是项目的默认和基础分支。它用于开发,所有拉取请求都应该去那里。

执照

Teedy 是根据 GPL 许可条款发布的。请参阅COPYING参考资料 或参阅http://opensource.org/licenses/GPL-2.0