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
,包括4
和31
。指定的值将用于所有新用户和更改密码的用户。请注意,将此因子设置得过高可能会严重影响登录和用户创建性能。
-
管理员
DOCS_ADMIN_EMAIL_INIT
:定义初始化时管理员用户应具有的电子邮件地址。DOCS_ADMIN_PASSWORD_INIT
:定义初始化时管理员用户应具有的密码。需要是bcrypt哈希值。请注意,哈希值中的$
必须用第二个$
转义。
-
数据库
DATABASE_URL
:hibernate
使用的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
手动安装
要求
下载
最新版本可在此处下载: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。