outline/outline
GitHub: outline/outline
一款开源、可自托管的团队知识库系统,支持实时协作和 Markdown,解决团队知识沉淀与文档协作需求。
Stars: 37439 | Forks: 3104
A fast, collaborative, knowledge base for your team built using React and Node.js.
Try out Outline using our hosted version at www.getoutline.com.
这是运行 [**Outline**](https://www.getoutline.com) 及其所有相关服务的源代码。如果您想使用 Outline,则不需要运行此代码,我们提供了托管版本的应用程序,访问地址为 [getoutline.com](https://www.getoutline.com)。您也可以在 [我们的指南](https://docs.getoutline.com/s/guide) 中找到有关使用 Outline 的文档。
如果您想运行自己的 Outline 副本或为开发做出贡献,那么这里适合您。
# 安装说明
请参阅 [文档](https://docs.getoutline.com/s/hosting/) 以在生产配置中运行您自己的 Outline 副本。
如果您对文档有疑问或改进建议,请在 [GitHub discussions](https://github.com/outline/outline/discussions) 中创建一个话题。
# 开发指南
如果您希望为 Outline 贡献更改、修复和改进,这里有一份关于 [设置开发环境](https://docs.getoutline.com/s/hosting/doc/local-development-5hEhFRXow7) 的简短指南。
## 贡献
Outline 由一个小团队构建和维护 —— 我们非常感谢您帮助修复错误和添加功能!
在提交 pull request 之前,*请* 务必通过在 [GitHub](https://www.github.com/outline/outline/issues) 上创建 issue 或在其中评论来与核心团队进行讨论 —— 我们也希望在 [discussions](https://www.github.com/outline/outline/discussions) 中听到您的声音。通过这种方式,我们可以确保在编写代码之前就方法达成一致。这将大大提高您的代码被接受的可能性。
如果您正在寻找入门方式,以下是一些帮助我们改进 Outline 的途径:
- [翻译](docs/TRANSLATION.md) 成其他语言
- 带有 [`good first issue`](https://github.com/outline/outline/labels/good%20first%20issue) 标签的 Issues
- 性能改进,包括服务器端和前端
- 开发者体验和文档
- GitHub 上列出的错误和其他问题
## 架构
如果您有兴趣贡献代码或想了解更多关于 Outline 代码库的信息,
请先参考 [架构文档](docs/ARCHITECTURE.md),以获取有关应用程序如何组合在一起的高层概览。
## 调试
在开发环境中,Outline 会向控制台输出带有类别前缀的简单日志。在生产环境中,它输出 JSON 日志,这些日志可以很容易地被您首选的日志摄取 pipeline 解析。
HTTP 日志默认是禁用的,但可以通过设置 `DEBUG=http` 环境变量来启用。
可以通过设置 `DEBUG=*` 来启用所有类别的日志,或者通过设置 `DEBUG=database` 和 `LOG_LEVEL=debug` 来启用特定类别的日志,或者设置 `LOG_LEVEL=silly` 以获取非常详细的日志。
## 测试
我们的目标是为应用程序的关键部分提供足够的测试覆盖率,而不是追求 100% 的单元测试覆盖率。所有 API 端点和任何与身份验证相关的内容都应该经过彻底的测试。
要添加新测试,请使用 [Jest](https://facebook.github.io/jest/) 编写测试,并在被测试代码旁边添加一个带有 `.test.ts` 扩展名的文件。
```
# 运行所有测试
make test
# 在 watch 模式下运行 backend 测试
make watch
```
一旦使用 `make test` 创建了测试数据库,您可以直接使用 jest 单独运行前端和后端测试:
```
# 运行 backend 测试
yarn test:server
# 在 watch 模式下运行特定 backend 测试
yarn test path/to/file.test.ts --watch
# 运行 frontend 测试
yarn test:app
```
## 迁移
Sequelize 用于创建和运行迁移,例如:
```
yarn db:create-migration --name my-migration
yarn db:migrate
yarn db:rollback
```
或者,在测试数据库上运行迁移:
```
yarn db:migrate --env test
```
# 动态

# 许可证
Outline 采用 [BSL 1.1 许可](LICENSE)。
标签:GNU通用公共许可证, IPv6支持, Markdown, MITM代理, Node.js, React, Ruby, SaaS, Syscalls, TypeScript, Wiki, 企业级, 团队协作, 安全插件, 实时协作, 富文本编辑器, 开源, 文档管理, 测试用例, 知识库, 知识管理系统, 笔记软件, 自动化攻击, 自动化攻击, 自托管