Teedy 是一个面向个人和企业的开源、轻量级文档管理系统。
demo.teedy.io提供演示
- 启用访客登录并可读取所有文档
- 使用“admin”密码登录“admin”
- 使用“密码”密码“演示”登录
- 响应式用户界面
- 光学字符识别
- LDAP认证
- 支持图像、PDF、ODT、DOCX、PPTX 文件
- 视频文件支持
- 灵活的搜索引擎,提供建议和突出显示
- 在所有支持的文件中进行全文搜索
- 所有都柏林核心元数据
- 自定义用户定义的元数据
- 工作流程系统
- 存储文件的 256 位 AES 加密
- 文件版本控制
- 带嵌套的标签系统
- 从电子邮件导入文档(EML 格式)
- 自动收件箱扫描和导入
- 用户/组权限系统
- 2 因素身份验证
- 等级组
- 审核日志
- 评论
- 每个用户的存储配额
- 通过URL共享文档
- RESTful Web API
- Webhooks 触发外部服务
- 功能齐全的 Android 客户端
- 批量文件导入器(单个或扫描模式)
- 经过一百万个文档的测试
提供预配置的 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
包括4
和31
。指定的值将用于所有新用户和更改密码的用户。请注意,将此因素设置为高会严重影响登录和用户创建性能。
-
行政
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
文件变量或其他方式来安全地存储您的密码。
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
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
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" 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
最新版本可在此处下载:https://github.com/sismics/docs/releases(WAR 格式)。 默认管理员密码是“admin”。不要忘记在投入生产之前对其进行更改。
先决条件: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
从docs-web
目录:
mvn -Pprod -DskipTests clean install
您将在该目录中获得可部署的 WAR docs-web/target
。
我们非常欢迎所有的贡献。贡献可能会解决问题、修复错误(已报告或未报告)、改进现有代码、添加新功能等。
该master
分支是项目的默认和基础分支。它用于开发,所有拉取请求都应该去那里。
Teedy 是根据 GPL 许可条款发布的。请参阅COPYING
参考资料 或参阅http://opensource.org/licenses/GPL-2.0。