mirror of https://github.com/fantasticit/think.git
commit
f9aaa13d0d
69
README.md
69
README.md
|
@ -49,24 +49,6 @@ Think 是一款开源知识管理工具。通过独立的知识库空间,结
|
||||||
依赖安装命令: `npm i -g pm2 @nestjs/cli pnpm`
|
依赖安装命令: `npm i -g pm2 @nestjs/cli pnpm`
|
||||||
|
|
||||||
|
|
||||||
#### 数据库
|
|
||||||
|
|
||||||
首先安装 `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
|
|
||||||
|
|
||||||
如果需要文档版本服务,请在根目录 `yaml` 配置中进行 `db.redis` 的配置。
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull redis:latest
|
|
||||||
docker run --name think-redis -p 6379:6379 -d redis --appendonly yes --requirepass "root"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Docker-compose 一键构建安装
|
## Docker-compose 一键构建安装
|
||||||
|
|
||||||
|
@ -74,7 +56,6 @@ docker run --name think-redis -p 6379:6379 -d redis --appendonly yes --requirepa
|
||||||
|
|
||||||
**请注意构建前修改 `docker-compose.yml` 中的 `EIP` 参数,否则无法正常使用!!!**
|
**请注意构建前修改 `docker-compose.yml` 中的 `EIP` 参数,否则无法正常使用!!!**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
# 首次安装
|
# 首次安装
|
||||||
git clone https://github.com/fantasticit/think.git
|
git clone https://github.com/fantasticit/think.git
|
||||||
|
@ -105,6 +86,26 @@ docker-compose up -d
|
||||||
|
|
||||||
如需修改配置,开发环境编辑 `config/dev.yaml`。生产环境编辑 `config/prod.yaml` (如没有,可复制开发环境的配置修改即可.)
|
如需修改配置,开发环境编辑 `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"
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### 本地源代码运行(开发环境)
|
### 本地源代码运行(开发环境)
|
||||||
|
|
||||||
|
|
||||||
|
@ -136,11 +137,11 @@ pm2 save
|
||||||
|
|
||||||
### nginx 配置参考
|
### nginx 配置参考
|
||||||
|
|
||||||
采用反向代理进行 `nginx` 配置,**同时设置 `proxy_set_header X-Real-IP $remote_addr;` 以便服务端获取到真实 ip 地址**。
|
采用 `nginx` 作为反向代理的配置参考(部分),完整版请见 <[think/nginx.conf.bak](https://github.com/fantasticit/think/blob/main/nginx.conf.bak)>
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
upstream wipi_client {
|
upstream wipi_client {
|
||||||
server 127.0.0.1:3000;
|
server 127.0.0.1:5001;
|
||||||
keepalive 64;
|
keepalive 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,12 +166,36 @@ server {
|
||||||
proxy_set_header X-Nginx-Proxy true;
|
proxy_set_header X-Nginx-Proxy true;
|
||||||
proxy_cache_bypass $http_upgrade;
|
proxy_cache_bypass $http_upgrade;
|
||||||
proxy_pass http://wipi_client; #反向代理
|
proxy_pass http://wipi_client; #反向代理
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr; #获取客户端真实IP
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
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
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 自动化部署
|
## 自动化部署
|
||||||
|
|
||||||
> 思路:在服务器部署 webhook,然后在 github setting 中配置相应钩子,实现自动化部署
|
> 思路:在服务器部署 webhook,然后在 github setting 中配置相应钩子,实现自动化部署
|
||||||
|
|
|
@ -3,7 +3,7 @@ client:
|
||||||
port: 5001
|
port: 5001
|
||||||
assetPrefix: '/'
|
assetPrefix: '/'
|
||||||
apiUrl: 'http://localhost:5002/api'
|
apiUrl: 'http://localhost:5002/api'
|
||||||
collaborationUrl: 'ws://localhost:5003'
|
collaborationUrl: 'ws://localhost:5003/think/wss'
|
||||||
# 以下为页面 meta 配置
|
# 以下为页面 meta 配置
|
||||||
seoAppName: '云策文档'
|
seoAppName: '云策文档'
|
||||||
seoDescription: '云策文档是一款开源知识管理工具。通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。'
|
seoDescription: '云策文档是一款开源知识管理工具。通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。'
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
upstream think_server {
|
upstream think_client {
|
||||||
server 127.0.0.1:5001;
|
server 127.0.0.1:5001;
|
||||||
keepalive 64;
|
keepalive 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
upstream think_client {
|
upstream think_server {
|
||||||
server 127.0.0.1:5002;
|
server 127.0.0.1:5002;
|
||||||
keepalive 64;
|
keepalive 64;
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@ server {
|
||||||
|
|
||||||
client_max_body_size 100m;
|
client_max_body_size 100m;
|
||||||
|
|
||||||
location /think {
|
location /api {
|
||||||
proxy_pass http://think_server;
|
proxy_pass http://think_server;
|
||||||
proxy_read_timeout 300s;
|
proxy_read_timeout 300s;
|
||||||
proxy_send_timeout 300s;
|
proxy_send_timeout 300s;
|
||||||
|
|
Loading…
Reference in New Issue