简介
Think 是一款开源知识管理工具。通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。同时支持多人协作文档。使用的技术如下:
MySQL
:数据存储next.js
:前端页面框架nest.js
:服务端框架tiptap
:编辑器及文档协作
项目地址:https://github.com/fantasticit/think
宝塔面板部署流程
为了避免线上打包失败,服务器配置要求最低2h2g
这里以CentOS 7.6 宝塔LNMP环境做演示
环境部署
宝塔面板及LNMP环境安装
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装完成输出访问地址及账号密码
进入宝塔面板后台管理,安装LNMP环境
安装完毕后,在软件商店,继续安装 redis 和 PM2管理器
创建网站
先将域名解析到服务器IP,这里需要两个域名,一个主域名,一个API域名,然后创建网站及数据库,这里将 /www/wwwroot/think 作为根目录
HTTPS
申请SSL证书,开启HTTPS访问
修改“配置文件”
将下列配置替换到网站配置文件中(自行替换主域名及API域名 同时替换ssl证书位置 ssl_certificate、ssl_certificate_key)
upstream think_client {
server 127.0.0.1:5001;
keepalive 64;
}
upstream think_server {
server 127.0.0.1:5002;
keepalive 64;
}
upstream think_wss {
server 127.0.0.1:5003;
keepalive 64;
}
server {
listen 80;
listen 443 ssl http2;
server_name wikiapi.novx.org;
client_max_body_size 100m;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/wiki.novx.org/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/wiki.novx.org/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
location /api {
proxy_pass http://think_server;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
location /think/wss {
proxy_pass http://think_wss;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
}
location /static/ {
proxy_pass http://think_server;
}
}
server {
listen 80;
listen 443 ssl http2;
server_name wiki.novx.org;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
#HTTP_TO_HTTPS_END
ssl_certificate /www/server/panel/vhost/cert/wiki.novx.org/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/wiki.novx.org/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
error_page 497 https://$host$request_uri;
#SSL-END
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 Upgrade $http_upgrade;
proxy_set_header X-Nginx-Proxy true;
proxy_cache_bypass $http_upgrade;
proxy_pass http://think_client;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
开始部署
拉取代码
通过SSH进入服务器,进入网站目录(/www/wwwroot/think),删除目录原有文件并拉取Github代码
sudo su
cd /www/wwwroot/think
chattr -i .user.ini
rm -rf .htaccess 404.html index.html .user.ini
git clone https://github.com/fantasticit/think.git ./
安装依赖
pnpm install
修改配置文件
进入宝塔面板,在/www/wwwroot/think/config 目录创建prod.yaml 文件并写入下面内容(自行替换主域名及API域名 数据库用户名及密码 admin管理员账户及密码)
# 生产环境配置
client:
port: 5001
assetPrefix: '/'
apiUrl: 'https://wikiapi.novx.org/api'
collaborationUrl: 'wss://wikiapi.novx.org/think/wss'
# 以下为页面 meta 配置
seoAppName: '云策文档'
seoDescription: '云策文档是一款开源知识管理工具。通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。'
seoKeywords: '云策文档,协作,文档,fantasticit,https://github.com/fantasticit/think'
# 预先连接的来源,空格分割(比如图片存储服务器)
dnsPrefetch: 'https://wikiapi.novx.org'
# 站点地址(如:http://think.codingit.cn/),一定要设置,否则会出现 cookie、跨域等问题
siteUrl: 'https://wiki.novx.org'
siteDomain: ''
server:
prefix: '/api'
port: 5002
collaborationPort: 5003
maxDocumentVersion: 20 # 最大版本记录数
logRetainDays: 3 # 日志保留天数,比如只保留近三天日志
enableRateLimit: true # 是否限流
rateLimitWindowMs: 60000 # 限流时间
rateLimitMax: 1000 # 单位限流时间内单个 ip 最大访问数量
email: # 邮箱服务,参考 http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html?servCode=6010376 获取 SMTP 配置
host: 'smtp.feishu.cn'
port: 465
user: '***@novx.org'
password: '********'
admin:
name: '*******' # 注意修改
password: '********' # 注意修改
email: '***@novx.org' # 注意修改为真实邮箱地址
# 数据库配置
db:
mysql:
host: '127.0.0.1'
username: 'wiki'
password: 'YDfZZGktCza2cpBi'
database: 'wiki'
port: 3306
charset: 'utf8mb4'
timezone: '+08:00'
synchronize: true
redis:
host: '127.0.0.1'
port: '6379'
password: ''
# oss 文件存储服务
oss:
local:
enable: true
# 线上更改为服务端地址(如:https://api.codingit.cn)
server: 'https://wikiapi.novx.org'
# 以下为各厂商 sdk 配置,不要修改字段,填入值即可
tencent:
enable: false
config:
SecretId: ''
SecretKey: ''
Bucket: ''
Region: ''
aliyun:
enable: false
config:
accessKeyId: ''
accessKeySecret: ''
bucket: 'nov-wiki'
https: true
region: 'oss-accelerate'
# jwt 配置
jwt:
secretkey: 'zA_Think+KNOWLEDGE+WIKI+DOCUMENTS@2022'
expiresIn: '6h'
宝塔面板“安全”设置里面,放行5001、5002、5003端口,如果是阿里云、腾讯云等服务器。还需要在你购买服务器的账号里面找到服务器的防火墙,安全组,去放行相关端口。
在 think/packages/client 目录下加入 .babelrc 文件
{
"presets": ["next/babel"]
}
项目打包
打包之前,再检查一下,端口是否放行,Redis是否正常运行,配置文件是否正确。
开始打包
通过“终端”或者ssh进入服务器网站目录 /www/wwwroot/think ,执行下面的命令开始打包
pnpm run build
出现图中这种情况就是打包好了
运行项目
通过“终端”或者ssh进入服务器网站目录 /www/wwwroot/think ,执行下面的命令开始运行
pnpm run pm2
部署完成
访问域名即可,后台登录账号和密码就是之前(在/www/wwwroot/think/config 目录prod.yaml 文件)里面配置的管理员账号和密码
常见问题
若按上面的步骤部署有问题,无法访问网站,请先仔细检查步骤和相关设置,将 /think/config/prod.yaml 内的文件内容替换到 dev.yaml 文件中,在终端中进入网站目录(/www/wwwroot/think),执行下面命令开始测试并排查问题。
pnpm run dev
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的非原创源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
叮咚源码网 » think云策文档宝塔面板生产部署图文教程
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 关于售后和技术支持