banner
月落星河Tsukistar

月落星河Tsukistar

浩瀚中的伟大,孤独间的渺小
github
twitter
youtube
bilibili
email

在腾讯云CloudBase云开发上使用免费资源部署Waline评论系统

參考文章:Waline 評論系統 - 部署日誌 | CC 的部落格

2023.9.5 更新
許久之前腾訊雲改掉了雲開發 CloudBase 的付費模式,月最低付費到了 19.9,接近我現在維持部落格成本的 20 倍,於是乎自己把服務遷到了阿里雲的函數計算上,目前運行穩定。

2021.8.10 更新
由於 Waline 版本沒有及時升級,表情圖片的 html 代碼被轉義
因此需要修改package.json裡的@waline/cloudbase中的版本號,目前是 1.0.25
修改之後就可以正常使用啦

前言#

部落格遷到靜態頁面之後,在 Gitalk 和 Discuz 因為網絡原因幾乎沒法用的情況下,尋找一個可植入的第三方評論系統成了我需要去考慮的一件事。經過大量的使用和實驗,搜狐的暢言放在部落格上效果並不是很好,Valine 之前被大量垃圾評論洗刷過,實在不敢用,因此最後鎖定了 Waline,根據介紹這是一個帶有後端的 Valine,所以有一系列可以使用的功能。

關於 Waline 的介紹本文不再贅述,可以查看官方文檔,本文也不涉及 Velcel+Leancloud 這種安裝方法,可以查看上面的參考文章,本文簡略寫一下部署過程,主要寫一些除此之外自己做的步驟,以及一些功能的使用探索。

部署過程#

領取免費資源#

根據參考文章,在這個頁面下滑,就可以看到我們喜聞樂見的 “0 元”,購買後輸入環境名即可。

獲取免費環境

設置雲函數#

在購買的環境詳情頁中,點擊 “雲函數 - 新建雲函數” 創建所需要的雲函數,運行環境、最大內存等如圖:

新建雲函數

在下一步中,函數代碼部分代碼換成下面的:

module.exports.main = async (event, context) => {
  context.callbackWaitsForEmptyEventLoop = false;
  const entry = (() => {
    const result = require('./app.js');
    // const app = require('express')();
    // result = app.use(result);
    return result;
  })();
  const serverless = require('serverless-http');
  let app = entry;

  // support for async load app
  if (entry && entry.tcbGetApp && typeof entry.tcbGetApp === 'function') {
    app = await entry.tcbGetApp();
  }

  return serverless(app, {
    binary: [
      'application/javascript',
      'application/octet-stream',
      'application/xml',
      'font/eot',
      'font/opentype',
      'font/otf',
      'image/*',
      'video/*',
      'audio/*',
      'text/comma-separated-values',
      'text/css',
      'text/javascript',
      'text/plain',
      'text/text',
      'text/xml',
    ],
  })(event, context);
};

隨後將這個倉庫中的app.jscloudbaserc.jsonpackage.json三個文件原封不動搬過來,完成後點擊 “保存並安裝依賴” 即可,如下圖:

搬運

HTTP 訪問#

若要訪問應用,建議綁定自己的域名,並開啟 https,如下圖:

配置自定義域名

配置完成後如下圖所示:

配置完成

域名配置結束後,在 “安全配置” 中設置安全域名,如下圖:

安全域名

環境變量#

與直接一鍵部署到雲開發的按量計費環境不同,手動部署中,設置環境變量在 “雲函數” 中,如下圖所示:

環境變量

點擊右上角的 “編輯”,添加相應的環境變量與對應的值,在保存之後使用應用便能獲得對應的功能。

配置郵箱提醒#

由於 ZOHO 的 SMTP 服務只有付費用戶可以使用,所以將整個郵箱搬到了腾訊企業郵箱,同樣也設置了一個郵箱賬號用於發信進行郵件提醒。

使用官方文檔所給出的幾個環境變量,如下圖所示:

郵件環境變量

其中SMTP_USERSMTP_PASS是郵箱的賬號和密碼,配置企業郵箱部分詳情見這篇文章,大同小異,或者按照本身的指引來,也非常簡單。

配置完成後進行測試,成功發信:

發信成功

總結#

使用 Waline 順利解決了部落格的評論問題,在評論的郵件提醒那裡被折騰了很久,從 SendGrid 換到 SendCloud 再換到腾訊企業郵箱,終於實現了這個功能,從此再也不用擔心自己沒有及時回覆評論了。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。