mirror of https://github.com/fantasticit/think.git
chore: update README
parent
a0c3bf206b
commit
896efca88f
175
README.md
175
README.md
|
@ -21,180 +21,15 @@ Think 是一款开源知识管理工具。通过独立的知识库空间,结
|
||||||
|
|
||||||
<img width="313" alt="image" src="https://user-images.githubusercontent.com/26452939/174938220-5b7301fd-f207-4ff4-a3af-d6b2ab489727.png">
|
<img width="313" alt="image" src="https://user-images.githubusercontent.com/26452939/174938220-5b7301fd-f207-4ff4-a3af-d6b2ab489727.png">
|
||||||
|
|
||||||
|
|
||||||
## 预览
|
## 预览
|
||||||
|
|
||||||
![知识库](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYP8X/image.png)
|
![知识库](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYP8X/image.png)
|
||||||
![新建文档](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYPQX/image.png)
|
![新建文档](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYPQX/image.png)
|
||||||
![编辑器](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYPZX/image.png)
|
![编辑器](http://wipi.oss-cn-shanghai.aliyuncs.com/2022-02-20/YN67GM4VQMBTZFZ88TYPZX/image.png)
|
||||||
|
|
||||||
## 项目结构
|
## 项目开发
|
||||||
|
|
||||||
本项目依赖 pnpm 使用 monorepo 形式进行代码组织,分包如下:
|
[项目开发说明](./let-us-start.md)。
|
||||||
|
|
||||||
- `@think/config`: 客户端、服务端、OSS、MySQL、Redis 等配置管理
|
|
||||||
- `@think/domains`:领域模型数据定义
|
|
||||||
- `@think/constants`:常量配置
|
|
||||||
- `@think/server`:服务端
|
|
||||||
- `@think/client`:客户端
|
|
||||||
|
|
||||||
## 项目依赖
|
|
||||||
|
|
||||||
- nodejs ≥ 16.5
|
|
||||||
- pnpm
|
|
||||||
- pm2
|
|
||||||
- mysql ≥ 5.7
|
|
||||||
- redis (可选)
|
|
||||||
|
|
||||||
依赖安装命令: `npm i -g pm2 @nestjs/cli pnpm`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Docker-compose 一键构建安装
|
|
||||||
|
|
||||||
- 实测腾讯轻量云 2C4G 机器构建需 8 分钟左右
|
|
||||||
|
|
||||||
**请注意构建前修改 `docker-compose.yml` 中的 `EIP` 参数,否则无法正常使用!!!**
|
|
||||||
|
|
||||||
```
|
|
||||||
# 首次安装
|
|
||||||
git clone https://github.com/fantasticit/think.git
|
|
||||||
cd think
|
|
||||||
vim docker-compose.yml
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
# 二次更新升级
|
|
||||||
cd think
|
|
||||||
git pull
|
|
||||||
docker-compose build
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
# FAQ
|
|
||||||
如遇二次更新有问题,请更新代码重新构建,然后删除本地配置文件并重启容器.
|
|
||||||
如果还不能解决,1.有能力可自行解决|2.等待更新|3.去mrdoc.fun站点留言
|
|
||||||
```
|
|
||||||
|
|
||||||
然后访问 `http://ip:5001` 即可.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## 手动安装教程
|
|
||||||
|
|
||||||
- 前台页面地址:`http://localhost:5001`
|
|
||||||
- 服务接口地址:`http://localhost:5002`
|
|
||||||
- 协作接口地址:`http://localhost:5003`
|
|
||||||
|
|
||||||
如需修改配置,开发环境编辑 `config/dev.yaml`。生产环境编辑 `config/prod.yaml` (如没有,可复制开发环境的配置修改即可.)
|
|
||||||
|
|
||||||
- 数据库
|
|
||||||
|
|
||||||
首先安装 `MySQL`,推荐使用 docker 进行安装。
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker image pull mysql:5.7
|
|
||||||
# m1 的 mac 可以用:docker image pull --platform linux/x86_64 mysql:5.7
|
|
||||||
docker run -d --restart=always --name think -p 3306:3306 -e MYSQL_DATABASE=think -e MYSQL_ROOT_PASSWORD=root mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
|
||||||
```
|
|
||||||
|
|
||||||
- 可选:Redis
|
|
||||||
|
|
||||||
如果需要文档版本服务,请在配置文件中修改 `db.redis` 的配置。
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull redis:latest
|
|
||||||
docker run --name think-redis -p 6379:6379 -d redis --appendonly yes --requirepass "root"
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### 本地源代码运行(开发环境)
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/fantasticit/think.git
|
|
||||||
cd think
|
|
||||||
pnpm install
|
|
||||||
pnpm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
然后访问 `http://ip:5001` 即可.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### 本地源代码运行(生产环境)
|
|
||||||
|
|
||||||
生产环境部署的脚本如下:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/fantasticit/think.git
|
|
||||||
cd think
|
|
||||||
pnpm install
|
|
||||||
pnpm run build
|
|
||||||
pnpm run pm2
|
|
||||||
|
|
||||||
pm2 startup
|
|
||||||
pm2 save
|
|
||||||
```
|
|
||||||
|
|
||||||
### nginx 配置参考
|
|
||||||
|
|
||||||
采用 `nginx` 作为反向代理的配置参考(部分),完整版请见 <[think/nginx.conf.bak](https://github.com/fantasticit/think/blob/main/nginx.conf.bak)>
|
|
||||||
|
|
||||||
```bash
|
|
||||||
upstream wipi_client {
|
|
||||||
server 127.0.0.1:5001;
|
|
||||||
keepalive 64;
|
|
||||||
}
|
|
||||||
|
|
||||||
# http -> https 重定向
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name 域名;
|
|
||||||
rewrite ^(.*)$ https://$host$1 permanent;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443 ssl;
|
|
||||||
server_name 域名;
|
|
||||||
ssl_certificate 证书存放路径;
|
|
||||||
ssl_certificate_key 证书存放路径;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Nginx-Proxy true;
|
|
||||||
proxy_cache_bypass $http_upgrade;
|
|
||||||
proxy_pass http://wipi_client; #反向代理
|
|
||||||
proxy_set_header X-Real-IP $remote_addr; #获取客户端真实IP
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### caddy2 配置参考
|
|
||||||
|
|
||||||
采用 caddy v2 作为反向代理的配置文件参考
|
|
||||||
|
|
||||||
```
|
|
||||||
# 例子中的域名,请自行替换.
|
|
||||||
think.mrdoc.fun {
|
|
||||||
encode zstd gzip
|
|
||||||
reverse_proxy localhost:5001
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
thinkapi.mrdoc.fun {
|
|
||||||
@websockets {
|
|
||||||
header Connection *Upgrade*
|
|
||||||
header Upgrade websocket
|
|
||||||
path /think/wss/*
|
|
||||||
}
|
|
||||||
encode zstd gzip
|
|
||||||
reverse_proxy /api/* localhost:5002
|
|
||||||
reverse_proxy @websockets localhost:5003
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## 自动化部署
|
## 自动化部署
|
||||||
|
|
||||||
|
@ -202,21 +37,15 @@ thinkapi.mrdoc.fun {
|
||||||
|
|
||||||
参考:[webhook](https://github.com/adnanh/webhook/blob/master/docs/Hook-Examples.md#incoming-github-webhook)
|
参考:[webhook](https://github.com/adnanh/webhook/blob/master/docs/Hook-Examples.md#incoming-github-webhook)
|
||||||
|
|
||||||
## 商用
|
|
||||||
|
|
||||||
如需商用,请联系作者,取得授权后可商用。
|
|
||||||
|
|
||||||
## 赞助
|
## 赞助
|
||||||
|
|
||||||
如果这个项目对您有帮助,并且您希望支持该项目的开发和维护,请随时扫描一下二维码进行捐赠。非常感谢您的捐款,谢谢!
|
如果这个项目对您有帮助,并且您希望支持该项目的开发和维护,请随时扫描一下二维码进行捐赠。非常感谢您的捐款,谢谢!
|
||||||
如果您希望留下您的信息,可以到[感谢信](https://think.codingit.cn/wiki/eb520cdf-aa4b-4af2-ae4a-7140e21403ab/document/230548f5-3220-4c5b-a209-02b1eb0299e7)评论区留言。
|
|
||||||
|
|
||||||
<div style="display: flex;">
|
<div style="display: flex;">
|
||||||
<img width="300" alt="alipay" src="https://think-1256095494.cos.ap-shanghai.myqcloud.com/think-alipay.jpg" />
|
<img width="300" alt="alipay" src="https://think-1256095494.cos.ap-shanghai.myqcloud.com/think-alipay.jpg" />
|
||||||
<img width="300" alt="wechat" src="https://think-1256095494.cos.ap-shanghai.myqcloud.com/think-wechat.jpg" />
|
<img width="300" alt="wechat" src="https://think-1256095494.cos.ap-shanghai.myqcloud.com/think-wechat.jpg" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
## 资料
|
## 资料
|
||||||
|
|
||||||
- next.js 源码:https://github.com/vercel/next.js
|
- next.js 源码:https://github.com/vercel/next.js
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
# think
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
本项目依赖 pnpm 使用 monorepo 形式进行代码组织,分包如下:
|
||||||
|
|
||||||
|
- `@think/config`: 客户端、服务端、OSS、MySQL、Redis 等配置管理
|
||||||
|
- `@think/domains`:领域模型数据定义
|
||||||
|
- `@think/constants`:常量配置
|
||||||
|
- `@think/server`:服务端
|
||||||
|
- `@think/client`:客户端
|
||||||
|
|
||||||
|
## 项目依赖
|
||||||
|
|
||||||
|
为了将项目运行起来,至少需要以下依赖。
|
||||||
|
|
||||||
|
- nodejs >=16.5.0:推荐使用 nvm 安装
|
||||||
|
- pnpm:安装 nodejs 后,运行 `npm i -g pnpm` 即可安装
|
||||||
|
- pm2:安装 nodejs 后,运行 `npm i -g pm2` 即可安装
|
||||||
|
- MySQL 5.7
|
||||||
|
- Redis
|
||||||
|
|
||||||
|
## 配置文件
|
||||||
|
|
||||||
|
项目所有的配置文件都在 `config` 目录下,其中 `dev.yaml` 中各字段均有解释,生产环境打包依赖 `prod.yaml`(需要自行修改为所需配置)。如果运行不起来,请对比 `dev.yaml` 检查配置。
|
||||||
|
|
||||||
|
**如果部署遇到问题,首先请确认相应配置是否正确!**
|
||||||
|
|
||||||
|
## 项目运行
|
||||||
|
|
||||||
|
无论是开发环境,还是生产环境,项目运行成功后会在 3 个端口启动相应服务(默认 5001、5002、5003),具体端口号由 `config` 文件夹下的配置文件决定。
|
||||||
|
|
||||||
|
- 前台页面地址:`http://localhost:5001`
|
||||||
|
- 服务接口地址:`http://localhost:5002`
|
||||||
|
- 协作接口地址:`http://localhost:5003`
|
||||||
|
|
||||||
|
### 本地开发
|
||||||
|
|
||||||
|
1. 安装数据库
|
||||||
|
|
||||||
|
首先安装 `MySQL` 和 `Redis`,推荐使用 docker 进行安装。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker image pull mysql:5.7
|
||||||
|
# m1 的 mac 可以用:docker image pull --platform linux/x86_64 mysql:5.7
|
||||||
|
docker run -d --restart=always --name mysql-for-think-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=think -e MYSQL_PASSWORD=think -e MYSQL_DATABASE=think mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
||||||
|
|
||||||
|
docker pull redis:latest
|
||||||
|
docker run --name redis-for-think-dev -p 6379:6379 -d redis --appendonly yes --requirepass "root"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. 安装依赖并运行
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/fantasticit/think.git
|
||||||
|
cd think
|
||||||
|
pnpm install
|
||||||
|
pnpm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产部署
|
||||||
|
|
||||||
|
首先确认在 `config` 文件夹下新建 `prod.yaml` 配置文件,然后运行以下命令。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/fantasticit/think.git
|
||||||
|
cd think
|
||||||
|
pnpm install # 安装依赖
|
||||||
|
pnpm run build # 项目打包
|
||||||
|
|
||||||
|
# 以下如果没有安装 pm2,直接 pnpm run start,推荐使用 pm2
|
||||||
|
pnpm run pm2
|
||||||
|
pm2 startup
|
||||||
|
pm2 save
|
||||||
|
```
|
||||||
|
|
||||||
|
### docker-compose
|
||||||
|
|
||||||
|
也可以使用 docker-compose 进行项目部署。首先,根据需要修改 `docker-compose.yml` 中的数据库、Redis 相关用户名、密码等配置,然后,修改 `config/docker-prod-sample.yaml` 中对应的配置。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 首次安装
|
||||||
|
git clone https://github.com/fantasticit/think.git
|
||||||
|
cd think
|
||||||
|
vim docker-compose.yml
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# 二次更新升级
|
||||||
|
cd think
|
||||||
|
git pull
|
||||||
|
docker-compose build
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# 如果二次更新有问题
|
||||||
|
docker-compose kill
|
||||||
|
docker-compose rm
|
||||||
|
docker image rm think # 删掉构建的镜像
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### nginx 配置参考
|
||||||
|
|
||||||
|
无论以何种方式进行项目部署,项目运行成功后会在 3 个端口启动服务(默认 5001、5002、5003,具体由配置文件决定)。`nginx` 配置参考 <[think/nginx.conf.sample](https://github.com/fantasticit/think/blob/main/nginx.conf.sample)>。
|
||||||
|
|
||||||
|
特别强调,在 `config` 文件夹的配置中 `client.siteUrl` 一定要配置正确,否则客户端可能无法正常运行。
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 站点地址(如:http://think.codingit.cn/),一定要设置,否则会出现 cookie、跨域等问题
|
||||||
|
siteUrl: 'http://localhost:5001'
|
||||||
|
```
|
Loading…
Reference in New Issue