開源網頁聊天室、視訊(3) synapse安裝
繼之前介紹了Matrix.org以及利用matrix標準所建置的網頁聊天平台Riot.im之後,本文則是簡單地記錄一下我嘗試在自己電腦,以及免費的雲端應用開發平台nitrous.io安裝matrix的方法。整個作法則是依照官網指引文件How can I get involved, matrix 把自家安裝在伺服器上的套件叫作Synapse 它以python/C語言寫成,當然也是是一個開源專案,其安裝指南與原始碼請參考github上的資源。
1)本地端電腦佈置
首先試著安裝在本地端自己的電腦上(作業系統ubuntu)
在終端機CLI環境下,打入以下文字(請直接把這三行全部一次複製起來後,貼到命令列$之後)
sudo apt-get install build-essential python2.7-dev libffi-dev
python-pip python-setuptools sqlite3
libssl-dev python-virtualenv libjpeg-dev libxslt1-dev
上述這三行這是為了安裝執行synpase之前的前置環境軟體,包括python2.7、 sqlite3、以及 python-virtualenv
(virtualenv是為了建置一個Python 的虛擬環境,其簡單的中文介紹可參考:Python 的虛擬環境及多版本開發利器─Virtualenv,不是完全了解virtualenv者(如我),在此次試驗佈置中,只要記得二個指令即可:$source bin/activate (啟動開發環境); $deactiviate(退出開發環境)
接下來就是進入正式安裝synapse的環節,底下四行,請一行一行地執行,輸入最後一行enter之後,就會開始執行下載安裝程式
$virtualenv -p python2.7 ~/.synapse
建立一個.synapse摸擬器環境
$source ~/.synapse/bin/activate
切入到.synapse虛擬環境底下
$pip install --upgrade setuptools
更新PIP,也就是python 的模組套件管理
$pip install https://github.com/matrix-org/synapse/tarball/master
安裝synapse
安裝好了synapse之後,接下來要產生一個「homeserver.yaml」檔案,請在將工作目錄切換到.synpase底下,一次把python開始的五行東西一次貼入到CLI命令列, 當然在貼之前,記得要把第二行machine.my.domain.name更改為自己機器的網域名,例如我目前只是在本地端測試,故第二行改為-server-name localhost 而最後一行則看個人喜好,只要挑選一個yes or no就好,例如report-stats=yes 不必包含[]
$cd ~/.synapse
$python -m synapse.app.homeserver
--server-name machine.my.domain.name
--config-path homeserver.yaml
--generate-config
--report-stats=[yes|no]
理論上,成功地產生homeserver.yaml後,就可以讓電腦來啟動synapse了,請依次輪入以下三行指令
$cd ~/.synapse
把工作目錄切到.synapse底下
$source ./bin/activate
進入virtualenv 虛擬環境
$synctl start
啟動synapse
上圖中電腦開始跑出一堆文字,最後第二行傳回: Synapse now listening on port 8008
這時候打開瀏覧器,網址列輸入http://localhost:8008 Oh My God,沒想到這麼簡單就可以把matrix安裝在自己的電腦上。
試著在這個本地端的機器上建立一個新帳號,此時系統卻傳出錯誤的訊息,表示無法註冊。這是因為系統預設中把註冊功能關閉了,要修改它得在.synapse目錄下去設定homeserver.yaml這支檔案。
在終端機文字指令環境下,利用慣用的編輯器來打開homeserver.yaml,找到這行: enable_registration: False, 將之更改為enable_registration: True 儲檔後退出。重新執行啟動synpase的指令,再用瀏覧器開啟網址:localhost:8008 載入matrix client,此時系統應該可接受建立新帳號順利登入了。
2)雲端環境佈置
在本地電腦的安裝過程還出乎我意外地簡單,但因只安裝在本地端,始終只有我一個用戶,心想不如來試試是否能安裝在nitrous.io的雲端環境中。登入nitrous.io啟動自己個人的工作站,建立一個ubuntu的新專案,nitrous就會自動地替你設置一個乾淨的ubuntu開發環境。
在ubuntu container開發環境底下,幾乎就是按照上面1)在自己電腦上的操作步驟來安裝支援synapse的相關必要軟體(python, sqlite3、python-virtualenv)後,再來安裝synapase,並利用python來生成一個homeserver.yaml檔案。至於產生homeserver.yaml檔案的server-name資訊,可在「Preview」功能底下找到,例如nitrous指定給這個ubuntu 在網路上瀏覧器開啟網址是:http://chat-217123.nitrousapp.com/ 所以當可以順利啟動synapse之後,只要在瀏覧器網址中打入chat-217123.nitrousapp.com:8008 應該就可以看到matrix的登入畫面。
在還沒修改homeserver.yaml之前,這個伺服器是無法接受新帳號註冊申請的,所以依同樣依前面描述的如何修改homeserver.yaml來操作。註冊登入此試驗性質的matrix伺服器之後,我試著創建了一個公開的聊天室。
利用別台電腦同樣可以連線到 http://chat-217123.nitrousapp.com:8008 所以我試著註冊在別台電腦上註冊此matrix synapse的第二位使用者帳號,並來測試它的VOIP(此功能要兩人以上才能使用),似乎可以正常使用耶。
上傳圖片檔案也沒問題
聊天室的一些設定,明顯看來它還是處於很粗胚的原始碼形式,再者如它的home首頁,就是用戶的聊天記錄log以及本台機器上公開可參與的聊天室。matrix 自建的homeserver介面蠻陽春,不像其開發的應用riot.im 已是一個發展相對成熟完整的圖形使用介面環境。
以上介紹完synapde在雲端上的佈置以及使用環境介紹後,再回過頭來看看nitrous 的系統狀況
目前這個安裝在nitrous上面的 matrix homeserver 還沒法和其它的matrix homeserver進行連結溝通,這得要再進一步參考指引文件中有關Setting up Federation的部份,目前我還沒有試驗成功。
ps. 因為我的nitrous.io帳戶為免費版,每個月有使用時數上限,所以當帳號底下工作站的專案有一段時間(大約是以小時計)沒有任何動作,nitrous系統就會把工作站自動轉成休眠模式,所以其它人若好奇想打開本文所試驗的網址 http://chat-217123.nitrousapp.com:8008/ 大部份看到都是time-out的回應吧。