前言
現代人各個社交軟體不離身,譬如說 Discord 這樣的軟體,讓大家可以在同一個文字或語音頻道裡同樂。但你可能想過,我們有沒有辦法自己打造一個社交軟體?今天要介紹的這款就是 Matrix。
他是一款開源即時通訊的後端,搭配上例如 Element 這樣的前端框架,來做到有如聊天室的效果。
安裝步驟
首先,你需要一台 Linux,雖然 Windows 上也可以裝。但你知道的,沒人會想拿 Windows 架設這種東西的伺服器。我這裡的操作環境會使用 Debian 12。
使用以下命令來安裝 matrix-synapse
。
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
sudo apt install matrix-synapse-py3
接著,你會需要輸入一個網域名稱,依照官方說明文件的說法是:一旦設定及不可變更。所以一定要好好思考過!
下一步會詢問你願不願意分享基礎的資訊給 Matrix 的開發人員作為統計,你可以依照自己的喜好選擇。
安裝完之後,我們使用以下命令來產生一組密鑰,請先自己記住,稍後會用到。
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
編輯 /etc/matrix-synapse/homeserver.yaml
檔案。
sudo vim /etc/matrix-synapse/homeserver.yaml
在該文件的最底下加入一行文字,並貼上我們剛剛取得的密鑰。
registration_shared_secret: YOUR_KEY_HERE
之後,我們就可以啟動 matrix-synapse
啦。
sudo systemctl enable matrix-synapse && sudo systemctl restart matrix-synapse
建立反向代理
這邊,我們使用 Nginx 來反向代理我們的 Matrix。我們先安裝 Nginx。
sudo apt-get install -y nginx nginx-extras
由於我會使用 CDN,因此原點將只使用 HTTP,不配置 SSL。你可以依照自己的喜好自己為 Nginx 添加。
前往目錄 /etc/nginx/sites-enabled
,並建立一個名為 chat
的檔案。
cd /etc/nginx/sites-enabled && sudo vim chat
貼上以下內容,並自行改變 server_name 成你的網域名稱。
server {
listen 80;
listen [::]:80;
server_name your.domain.com;
server_tokens off;
more_set_headers Server;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
client_max_body_size 10M;
}
}
確認配置並重新啟動 Nginx。
sudo nginx -t && sudo systemctl restart nginx
Matrix 基礎設定
這裡有一個 Matrix 的 基礎設定文件,你可以依據自己的喜好調整。我這裡提幾個會常用到的,且完成所有基礎設定後,請都使用 sudo systemctl restart matrix-synapse
來生效他。
開放註冊
我們可以控制這台 Matrix 開不開放註冊,可以在 /etc/matrix-synapse/homeserver.yaml
最下方加入一行。
enable_registration_without_verification: true
enable_registration: true
預設沒寫都是不開放。若你想開放,則設定為 true
;若不想開放,則設定為 false
。
建立帳號
我們可以使用以下命令來建立帳號。如果你需要建立管理員帳號,或是你沒有開放註冊,一樣都使用這個命令哦!
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
他將會提示幾個我們需要填寫的地方:
New user localpart [root]: // 你的帳號
Password: // 你的密碼
Confirm password: // 在確認一次密碼
Make admin [no]: // 是否為管理員,yes 或是 no
連上伺服器
為 Matrix 設計的前端介面很多,今天介紹 Element,他的網址是:https://app.element.io。
他介面的左下角可以選擇語言,但寫這篇文章的時候忘了,所以下面會是英文的。
一進入網頁後,我們選擇 Sign In
。
點選 Edit
來變更為我們自己的伺服器。
在 Other homeserver
的地方輸入我們自己的網域,並點選 Continue
。
輸入完帳號密碼,即可登入!
現在可以開始使用你自建的聊天軟體啦!
結語
這就是一款自建聊天室的過程啦,如果你想要有一款有更高控制的聊天室,不想被各個平台所約束,那這個工具就可以達成我們所需要的!