[推薦] 自架整合性留言系統 – Commento

有時有需求會是需要在一些靜態網站上加上留言板提供討論的需求,例如 gitlab 或 github 上產生的靜態文件頁面,這時其中一個選擇是 Disqus,不過如果是公司內部使用的頁面可能會就因為商業資訊不能外流的疑慮,不適合使用 Disqus,本篇介紹一個類似並且可自行伺服器的替代工具 Commento。

Commento 是一個輕量,可建立快速建立的留言工具伺服器,只需要一個伺服器便可支援多網站的使用,並且統一帳號使用訪客不需在每個網站都註冊。

官方網站:https://commento.io/

原始碼:https://gitlab.com/commento/commento

官方文件:https://docs.commento.io/

Commento 提供多種方式安裝使用:

– 在 Linux 系統上安裝執行

前置條件:

  • 已安裝 postgreSQL

postgresql 安裝

安裝 postgresql

$ sudo apt-get update
$ sudo apt-get install -y postgresql postgresql-contrib

啟動 postgresql

$ sudo /etc/init.d/postgresql start

接著建立 postgresql 使用者帳號密碼與 database

下面的 commento_account, commento_password 與 commento_db 設定成自己要的資料庫帳號、密碼以及資料庫名稱

$ sudo su - postgres
$ psql -c "create role commento_account with login password 'commento_password';"
$ createdb -O commento_account commento_db

設定系統環境變數:

接著輸入指令設定環境變數 (commento_account, commento_password 與 commento_db 要修改成剛剛建立的資料庫帳號密碼,而 COMMENTO_ORIGIN 則是管理介面要安裝所在的 domain)

※ 可設定的環境變數可參考官方文件 : https://docs.commento.io/configuration/backend/

$ export COMMENTO_ORIGIN=commento.example.com
$ export COMMENTO_PORT=80
$ export COMMENTO_POSTGRES=postgres://commento_account:commento_password@postgres.example.com:5432/commento_db?sslmode=disable
$ export COMMENTO_BIND_ADDRESS=0.0.0.0

下載 commento 與啟動:

(/path/to/installation/ 看自己要安裝到哪個位置)

$ wget https://commento-release.s3.amazonaws.com/commento-linux-amd64-v1.7.0.tar.gz
$ tar xvf commento-linux-amd64-v1.7.0.tar.gz -C /path/to/installation/
$ /path/to/installation/commento

– Docker 方式執行

前置條件:

  • 已安裝 postgreSQL (可參考前面的 postgreSQL 安裝教學)
  • 已安裝 docker

指令執行:

$ docker run -it \
    -p 80:8080 \
    -e COMMENTO_ORIGIN=http://commento.example.com \
    -e COMMENTO_POSTGRES=postgres://username:password@ipaddr:port/commento \
    registry.gitlab.com/commento/commento

– Docker Compose 方式執行

前置條件:

  • 已安裝 docker
  • 已安裝 docker-compose

docker-compose.yml 設定:

version: '3'

services:
  server:
    image: registry.gitlab.com/commento/commento
    ports:
      - 8087:8080
    environment:
      COMMENTO_ORIGIN: http://localhost:8087
      COMMENTO_PORT: 8080
      COMMENTO_POSTGRES: postgres://postgres:postgres@db:5432/commento?sslmode=disable
    depends_on:
      - db
  db:
    image: postgres
    environment:
      POSTGRES_DB: commento
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
    volumes:
      - postgres_data_volume:/var/lib/postgresql/data

volumes:
  postgres_data_volume:

使用 docker-compose 指令啟動:

docker-compose up

管理介面使用

開啟網頁後,需要先註冊帳號,點結下方 [Sign up] 的連結

接著填寫帳號密碼註冊

這註冊完之後登入會看到如下的畫面,只有有被加入的 domain 可以嵌入 commento 使用

這時點左邊的 [New Domain] 可以增加允許嵌入留言版網站的 domain

接著要填寫名稱與 domain

加入完畢後,在 [Installation Guide] 內會有一段 HTML 程式碼,只需要把此段 HTML 複製到網站中想要嵌入留言板的位置便可

留言板使用

嵌入後的留言板會如下所示

在留言時會需要登入帳號密碼使用,並且不同網站之間會共用相同的帳號