架設屬於自己的聯邦宇宙 Misskey

Misskey 是一個自由開放的項目,這意味著任何人都可以自由地使用 Misskey 創建伺服器,因此網路上已經出現了各種各樣的伺服器。另一個重要特點是,Misskey 實作了一種名為 ActivityPub 的分散式通訊協議,這意味著無論您選擇哪台伺服器,都可以與其他伺服器上的使用者進行互動。這就是它被稱為去中心化的原因,也是它與 Twitter 等其他服務的根本不同之處。不同伺服器的主要話題、用戶群和語言各不相同,找到適合自己的伺服器也是樂趣之一(當然,創建自己的伺服器也很有趣)。

最近X的爭議可說是越來越多,除了馬斯克一連串奇怪的政策外,最讓人受不了的大概就是強制讓用戶內容用於AI模型訓練,而且你沒得選,用戶協議就寫在那邊,簡單說不爽不要用,X 平台不缺你們這幾個使用者,導致大量駐點在X的繪師及各領域創作者紛紛逃離,畢竟誰都不想要自己創作的心血被無斷餵給 AI 拿去訓練。

目前路上除了幾個老品牌社群網站,也有許多新興的社群網站出現,甚至有去中心化的"聯邦宇宙"出現。

有別於 BlueSky 自有的 AT Protocol 協定,這次要介紹的是使用 ActivityPub 的 Misskey,ActivityPub 是一個基於 Pump.io 的 ActivityPump 協定的一個開源、去中心化社群網路協定。它爲創作、更新和刪除資料提供一個主從式架構API,正如一個爲了傳輸訊息和資料的邦聯的伺服器對伺服器API。

ActivityPub 是爲了在 W3C 的社群網路羣體的網路的一個標準。在早期階段,協定的名稱是「ActivityPump」,但 ActivityPub 這個名子更好地傳遞了該協定的跨越式發布的目的。它學習了名爲 OStatus 的老一代標準的經驗。

在2018年1月,W3C 當作推薦之一發佈了 ActivityPub 標準。W3C 社交社區小組每年組織一次會議,討論 ActivityPub 的未來。前 Diaspora社群經理 Sean Tilley 撰寫了一篇文章,暗示 ActivityPub 協定最終可能提供一種聯合網際網路平台的方法。

目前 ActivityPub 較知名的項目有 MastodonThreads (對沒錯就是meta那個脆),以及本文介紹的 Misskey。其實 Misskey 自己本身就有一個實例 Misskey.io,不過這個實例是面向日本為大宗,且目前暫停海外註冊,據目前所知X逃離的大部分繪師都在 Misskey.io 上面,所以許多海外人士擠破頭都想要搶註一個帳號,但目前除了飛到日本當地申請別無他法。

當然除了 Misskey.io 以外,也有其他實例,例如面向畫圖的 お絵かきすきー、主打原創的 一次創作 misskey.design、壽司主題的(?) すしすきー、無須Email註冊的匿名 なすきー 等等…,也因為 Misskey 是開源項目,再加上 ActivityPub 的去中心化,人人都可以自行架設屬於自己的 Misskey ,官方也提供了一個 Misskey 伺服器列表,大家也可以去尋找自己喜歡的伺服器。

總之目前有許多 Misskey 實例如雨後春筍般地跑出來,而且不管你在哪一個平台上落地生根,都可以與其他 ActivityPub 一起互動,你可以不用被綁在一個平台上,比如我在 Misskey.io 有一個帳號,我可以與其他 Misskey 實例互動,也可以與 Mastodon、Threads 上的使用者互動,這就是去中心化的好處,也是未來社群網路的主要發展模式。

講了那麼多,不如就自己動手實際架設屬於自己的 Misskey 吧!


Misskey 是根據AGPLv3發布的開源軟體,使用Node.js開發,TypeScript用於前端和後端、PostgreSQL用作其資料庫、Vue.js用於前端。

Misskey 伺服器規格建議

  • OS:Ubuntu 22.04
  • RAM:至少 4 GB RAM
  • 存儲空間:至少 10 GB

此文編寫時Misskey版本為v2024.10.1

Misskey 安裝方式有兩種,一種是在 Docker 上面部屬,另一種是直接用腳本在本機安裝,當然也有給喜歡自己來的純手動安裝

本文的範例使用腳本在本機安裝,另外可用空間當然越大越好(我是直接開500GB),畢竟跟其他站台通訊時其他站台的圖片以及貼文會一起同步到自己的伺服器,時間久了資料量會越來越大。

本文操作環境為 Ubuntu server 22.04,另外要自己準備一個域名,另外建議搭配Cloudflare作快取。

更新系統環境

將所有套件更新到最新,然後重新開機。

sudo apt update; sudo apt full-upgrade -y; sudo reboot

開始安裝

使用官方提供的腳本進行安裝

wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh

第一個選項是你要如何部屬 Misskey,我們選擇用 systemd 本機安裝,輸入Y後按下Emter。

Misskey auto setup for Ubuntu
v3.2.3

Check: Linux;
OK.
Check: root user;
OK. I am root user.
Check: arch;
x86_64 (amd64)

Install Method
Do you use systemd to run Misskey?:
Y = To use systemd / n = To use docker
[Y/n] > Y

這裡選擇 Misskey 的 Source 來源,預設會帶入 Misskey 在 Github 上的 Source,直接 Enter 就好。

Misskey setting
Repository url where you want to install:
> https://github.com/misskey-dev/misskey.git

Misskey 的 Source 目錄名稱,維持預設即可。

The name of a new directory to clone:
> misskey

Misskey Source 下載選項,維持預設即可。

Branch or Tag
> master

在本機上建立一個執行 Misskey使用者帳號,維持預設 misskey 即可

Enter the name of user with which you want to execute Misskey:
> misskey

輸入你想在 Misskey上使用的 domain,將 example.com 換成自己要用在 Misskey 上的domain。

Enter host where you want to install Misskey:
> example.com

是否設定及安裝 Nginx,這裡的 Nginx 是拿來 Proxy Misskey 以及申請 Let’s encrypt 用的,如果你是單機部屬對外的話選Y,如果你的環境有 Proxy 伺服器的話選N。
本文的架設環境有 Proxy (Nginx Proxy Manager)伺服器,所以這裡選 N,稍後在 Nginx Proxy Manager 上進行設定。
另外此腳本的 Nginx 只負責安裝,並無任何設定選項,安裝完後須參照官方Wiki來進行設定。

Nginx setting
Do you want to setup nginx?:
[Y/n] > N
Nginx and Let's encrypt certificate will not be installed.

設定 Misskey 的Port,為持預設3000即可,稍後在 NPM 上設定 domain 的標頭指向到 Misskey。

You should open ports manually.
Misskey port:
> 3000

設定資料庫PostgreSQL資料庫,輸入Y。

Database (PostgreSQL) setting
Do you want to install postgres locally?:
(If you have run this script before in this computer, choose n and enter values you have set.)
[Y/n] > Y
PostgreSQL will be installed on this computer at localhost:5432.

設定資料庫帳號 & 密碼 & 資料庫名稱,除密碼需自行設定外,其他為持預設即可。

Database user name:
> misskey
Database user password:
> enter you password
Database name:
> mk1

設定 Redis ,輸入 Y 後 Enter。
如果你已經在這台伺服器上完整跑過一次安裝腳本,這裡選 N。

Redis setting
Do you want to install redis locally?:
(If you have run this script before in this computer, choose n and enter values you have set.)
[Y/n] > Y

設定 Redis 密碼。

Redis password:
> enter you password

之後就會開始進行安裝,約3~5分鐘。

OK. It will automatically install what you need. This will take some time.

之後輸入伺服器IP位置:3000,就能看到 Misskey 的初始設定頁面。


Misskey 初始設定

接下來將進行 Misskey 初始設定,第一支建立的帳號及為管理員帳號,擁有整個 Misskey 的最大權限。
建議平時不要用這支帳號,比畢竟這隻帳號落入別人手中就代表可以控制整個 Misskey,建議再另外開一支新的帳號將依些基本管理權限放在這隻帳號上作為平常使用。


Cloudflare設定

如果有使用 Cloudflare 作為快取 CDN ,官方建議是將 Cloudflare 內的 Rocket Loader 關閉,否則 Misskey 會無限轉圈。

到 Cloudflare 的網域後台 > 規則 > Configuration Rules 新增規則


Nginx Proxy Manager 設定

Misskey 推薦使用 Nginx 作為 Proxy,但我的環境裡面已經有 Nginx Proxy Manager 作為 Proxy 伺服器,而 Nginx Proxy Manager 本來就是以 Nginx 為基底,所以本文不使用一般的Nginx。


後記

Misskey 這個項目至今至少有10年的歷史了,ActivityPub 也是在 2018 年才加入的。不過這個項目開發人員偏少,且問題也算偏多,很多問題官方 wiki 上面並沒有寫上,所以當 Misskey 發生問題時就比較頭痛,畢竟官方wiki上甚麼都沒寫只能去Google大海撈針

我會選擇 Misskey 的原因是他相比 Mastodon 更輕量,再來又是日本開發的,完美發揮甚麼叫日本匠人二次元精神。Misskey 最大的特點是可以自己新增超多表情符號,這也符合日本網路的文化,去 Misskey.io 晃一圈就知道每個貼文很多都是使用表情符號來互動,而不是只有單純的點愛心與轉發而已,相比其他社交平台顯得互動會更熱絡一些,整體使用下來風格也混著濃厚的日本二次元的味道,拿來建立屬於自己的二次元社群再適合不過了,甚至還有一個名為的看板娘。

且開發者syuilo也是一位資深阿宅,而且才26歲而已 (居然跟我同齡),算是非常年輕的碼農,回推算一下 Misskey 這個項目在他16歲高中時就已經開發 (我高中時在幹嘛),如今因為X一連串奇葩政策變成一個現象級的社群軟體。

而我自己也開了一個 Misskey,名叫米司雞 (google翻譯叫米斯基,我直接改一下拿來用了),是一個面向中文創作者的 Misskey 平台,目前只有我一個人在用(好孤單) ,都看到最後了如果有興趣也大家歡迎加入!

題外話,Misskey 千萬不要用 IIS 作為 Proxy,因為會無法與其他實例通訊,也無法追隨其他實例上面的帳號。一直以來我所有服務都是透過IIS做 Proxy,結果就只有 Misskey 無法與其他伺服器通訊的問題搞得我焦頭爛額,我已經把整個 IIS 翻個底朝天都還是找不到問題。
後來索性通通轉移到 Nginx Proxy Manager,這也是後來我為甚麼寫出NPM等教學文章。以前還想著一台windows server打天下,看來我的微軟夢要結束了 T_T。


參考來源

github.com – misskey-dev/misskey
misskey-hub.net – 建置 Misskey 伺服器
gamer.com.tw – 【推廣】如果考慮離開Twitter,這裡或許有個不錯的選擇:Misskey.io
www.thewhitedog9487.xyz – 解决 【Misskey安装好并且登录之后无限转圈】和【Nextcloud在登录时没有用于输入用户名和密码的框】
blog.ydxian.xyz – 私有但能互通,快速搭建一个去中心化交流平台Misskey
chariri.moe – Misskey 已开通:分布式短文社交平台【自建折腾记 1/3】
en.wikipedia.org – Misskey

分享這篇文章:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *