From df08e7be402965973a49b821855da7f65de02824 Mon Sep 17 00:00:00 2001 From: jonny <475634114@qq.com> Date: Sun, 26 Jun 2022 17:26:57 +0800 Subject: [PATCH 1/5] Add caddy2 configuration file example --- README.md | 69 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 47 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index b5541e50..e9d9d274 100644 --- a/README.md +++ b/README.md @@ -49,24 +49,6 @@ Think 是一款开源知识管理工具。通过独立的知识库空间,结 依赖安装命令: `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 一键构建安装 @@ -74,7 +56,6 @@ docker run --name think-redis -p 6379:6379 -d redis --appendonly yes --requirepa **请注意构建前修改 `docker-compose.yml` 中的 `EIP` 参数,否则无法正常使用!!!** - ``` # 首次安装 git clone https://github.com/fantasticit/think.git @@ -105,6 +86,26 @@ docker-compose up -d 如需修改配置,开发环境编辑 `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` 配置,**同时设置 `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 upstream wipi_client { - server 127.0.0.1:3000; + server 127.0.0.1:5001; keepalive 64; } @@ -165,12 +166,36 @@ server { 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; + 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 +} +``` + ## 自动化部署 > 思路:在服务器部署 webhook,然后在 github setting 中配置相应钩子,实现自动化部署 From 6ca4461496fab7c8e6a5c24443cabbbadc0a408c Mon Sep 17 00:00:00 2001 From: jonny <475634114@qq.com> Date: Sun, 26 Jun 2022 17:29:26 +0800 Subject: [PATCH 2/5] Add example of caddy2 configuration file --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9d9d274..a91bb2e2 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ docker-compose up -d 如需修改配置,开发环境编辑 `config/dev.yaml`。生产环境编辑 `config/prod.yaml` (如没有,可复制开发环境的配置修改即可.) -#### 数据库 +- 数据库 首先安装 `MySQL`,推荐使用 docker 进行安装。 @@ -96,7 +96,7 @@ docker image pull 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 +- 可选:Redis 如果需要文档版本服务,请在配置文件中修改 `db.redis` 的配置。 From 48064039039ba2e056a39bb3801b3c2eca25b3fd Mon Sep 17 00:00:00 2001 From: jonny <475634114@qq.com> Date: Sun, 26 Jun 2022 17:34:31 +0800 Subject: [PATCH 3/5] Adapt to the new configuration file --- nginx.conf.bak | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nginx.conf.bak b/nginx.conf.bak index f3e36d98..fca91b57 100644 --- a/nginx.conf.bak +++ b/nginx.conf.bak @@ -1,9 +1,9 @@ -upstream think_server { +upstream think_client { server 127.0.0.1:5001; keepalive 64; } -upstream think_client { +upstream think_server { server 127.0.0.1:5002; keepalive 64; } @@ -29,7 +29,7 @@ server { client_max_body_size 100m; - location /think { + location /api { proxy_pass http://think_server; proxy_read_timeout 300s; proxy_send_timeout 300s; From a164649c163afbfd2d274e359e064ca35be204b6 Mon Sep 17 00:00:00 2001 From: jonny <475634114@qq.com> Date: Sun, 26 Jun 2022 17:38:56 +0800 Subject: [PATCH 4/5] Consistent with the reverse proxy example. --- docker/prod-sample.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/prod-sample.yaml b/docker/prod-sample.yaml index 3b445e5f..27cae963 100644 --- a/docker/prod-sample.yaml +++ b/docker/prod-sample.yaml @@ -3,7 +3,7 @@ client: port: 5001 assetPrefix: '/' apiUrl: 'http://localhost:5002/api' - collaborationUrl: 'ws://localhost:5003' + collaborationUrl: 'ws://localhost:5003/think/wss' # 以下为页面 meta 配置 seoAppName: '云策文档' seoDescription: '云策文档是一款开源知识管理工具。通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。' From d5f5a59517a18c1cd604f6687ddf72366b0c4207 Mon Sep 17 00:00:00 2001 From: jonny <475634114@qq.com> Date: Sun, 26 Jun 2022 17:40:27 +0800 Subject: [PATCH 5/5] Keep caddy2 consistent with nginx example --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a91bb2e2..33e13a46 100644 --- a/README.md +++ b/README.md @@ -188,7 +188,7 @@ thinkapi.mrdoc.fun { @websockets { header Connection *Upgrade* header Upgrade websocket - #path /think/wss/* + path /think/wss/* } encode zstd gzip reverse_proxy /api/* localhost:5002