最新公告
  • 欢迎您光临叮咚源码网,建议Ctrl+D收藏本站!立即加入我们
  • think云策文档宝塔面板生产部署图文教程

    简介

    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
    

    安装完成输出访问地址及账号密码

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    进入宝塔面板后台管理,安装LNMP环境

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    安装完毕后,在软件商店,继续安装 redis 和 PM2管理器

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    创建网站

    先将域名解析到服务器IP,这里需要两个域名,一个主域名,一个API域名,然后创建网站及数据库,这里将 /www/wwwroot/think 作为根目录

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    HTTPS

    申请SSL证书,开启HTTPS访问

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    修改“配置文件”

    将下列配置替换到网站配置文件中(自行替换主域名及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;
      }
    }
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    开始部署

    拉取代码

    通过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 ./
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    安装依赖

    pnpm install
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    修改配置文件

    进入宝塔面板,在/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'
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    宝塔面板“安全”设置里面,放行5001、5002、5003端口,如果是阿里云、腾讯云等服务器。还需要在你购买服务器的账号里面找到服务器的防火墙,安全组,去放行相关端口。

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    在 think/packages/client 目录下加入 .babelrc 文件

    {
      "presets": ["next/babel"]
    }
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    项目打包

    打包之前,再检查一下,端口是否放行,Redis是否正常运行,配置文件是否正确。

    开始打包

    通过“终端”或者ssh进入服务器网站目录 /www/wwwroot/think ,执行下面的命令开始打包

    编译打包过程比较吃内存(大约 2G),小内存服务器建议本地构建后上传,可以在配置文件完成后,将代码下载到本地,配置Nodejs环境及pnpm之后运行 build-output.sh,将打包后的 output 压缩发送到服务器后运行。
    pnpm run build
    

    出现图中这种情况就是打包好了

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    运行项目

    通过“终端”或者ssh进入服务器网站目录 /www/wwwroot/think ,执行下面的命令开始运行

    pnpm run pm2
    

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    部署完成

    访问域名即可,后台登录账号和密码就是之前(在/www/wwwroot/think/config 目录prod.yaml 文件)里面配置的管理员账号和密码

    think云策文档宝塔面板生产部署图文教程-叮咚源码网

    常见问题

    若按上面的步骤部署有问题,无法访问网站,请先仔细检查步骤和相关设置,将 /think/config/prod.yaml 内的文件内容替换到 dev.yaml 文件中,在终端中进入网站目录(/www/wwwroot/think),执行下面命令开始测试并排查问题。

    pnpm run dev
    

     

    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的非原创源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    叮咚源码网 » think云策文档宝塔面板生产部署图文教程

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    关于售后和技术支持
    本站原创源码购买时间超过7天的,不提供任何售后和技术指导,非本站原创源码、其他任何源码均不含任何技术支持和指导修改服务,整理的源码太多,脑子记不住那么多东西,实在没法指导你这个东西在哪儿改,哪个东西怎么用!
    升级SVIP尊享更多特权立即升级