分散型SNS Misskey(ミスキー)とは?始め方から使い方までを解説
はじめに
X(旧Twitter)の利用に不安を感じ、分散型SNSへの移行を検討されている方や、既に複数のアカウントをお持ちの方も多いかと思います。
筆者は分散型SNSのBlueskyのアカウントを以前作成し、主に写真をアップして使っています。BlueskyはほぼXと同様の機能を網羅しており、使い勝手もXと同じです。
今回は分散型SNSのカテゴリーに属するMisskey(ミスキー)を紹介していきたいと思います。Blueskyもそうですが、MisskeyがXと大きく違うところは”分散型”であるということです。
分散型SNSの仲間であるMisskeyは画面上に展開するメッセージのリアクション表示が華やかで、初めて利用する方は少々戸惑うかもしれません。
余談ですがDiscord(ディスコード)のようなシックな画面を好まれている方には最初は違和感があるかもしれません。私がそうでした。DiscordはMisskeyと同様に多様なコミュニティが存在し、サーバーの概念を持つため、分散型SNSと誤解されやすいですが、実際には中央管理型のプラットフォームです
分散型SNSの特徴
分散型SNSの最大の特徴はXのような中央集権的なプラットフォームを持たない点にあります。
中央集権的なプラットフォームとは、一つの組織や企業がサービスの運営を完全に掌握しているシステムのことで、例えば、XはX社が全てのデータを管理し、サービスの提供、変更、終了といった権限を独占しています。
それに対して分散型SNSは、この中央集権的な構造を持たないため、以下のようなメリットがあります。
- 高い自由度
プラットフォームによってルールは異なりますが、一般的に中央集権型のSNSよりも表現の自由度が高い傾向にあります。 - 多様なコミュニティ
各サーバー(インスタンス)が独自のルールを設定できるため、ユーザーは自分の興味や価値観に合ったコミュニティを見つけやすくなります。 - 表現の自由
プラットフォーム全体の方針に縛られずに、自由に意見交換や情報発信を行うことができます。 - 高い耐障害性
データが複数のサーバーに分散されているため、一つのサーバーが故障しても、他のサーバーが機能し、サービスが停止しにくいという特徴があります。 - プライバシーの保護
データ漏洩のリスク低減: 中央サーバーがハッキングされるリスクが低いため、個人情報が漏洩する可能性が少なくなります。
Misskey(ミスキー)とは
今回はこの分散型SNS Misskey(ミスキー)を実際に使ってみたのでご紹介します。以前紹介したBlueskyとは違って、アクセス画面はいきなりエンタメ性抜群のステータスアイコン、グループロゴが表示されキラキラ感満載です。
Misskey(ミスキー)の特徴
Misskeyは、日本の開発者によって作られた、分散型ミニブログのオープンソースソフトウェアです。
2014年にMisskeyの初期開発が始まっています。Xを意識して作られた分散型SNSのBlueskyと比べて個々のユーザーがそれぞれ独自にサーバー(インスタンスと呼ばれる)を立てており、インスタンスで異なるルールやテーマが設定されています。
一般ユーザーはその中から特定のインスタンスに所属してメッセージを発信することになります。
Misskeyはオープンソースソフトウェアで、誰でもMisskeyを使ったサーバーを作成できることから既に様々なサーバーがインターネット上に公開されています。
VPSレンタルサーバーを利用すれば、その人気ぶりがわかります。もちろん独自サーバーにMisskeyをセットアップすることも容易です。
後半ではDockerを用いてセットアップする方法も紹介します。既に様々なサーバーがインターネット上に公開されています。
また重要な特徴として、MisskeyはActivityPubと呼ばれる分散通信プロトコルを実装しています。これによってどのサーバーを選んでも他のサーバーのユーザーとやりとりすることが可能になります。
まずは自分の一番興味ある情報を発信しているサーバーを探して所属してみましょう。その後発展的に他サーバーのユーザーとのつながりを持つことが可能です。
ちなみにBlueskyはAT Protocolと呼ばれる分散通信プロトコルを実装しています。
Misskey(ミスキー)の機能
Misskey(ミスキー)には独自の機能があります。それぞれの機能について紹介します。
タイムラインのカスタマイズ
タイムラインは5種類あります。
ホーム ローカル メディア ソーシャル グローバル
それぞれ表示される内容も違っており次のようになります。
- ホーム
自分がフォローした人の投稿 - ローカル
自身が所属しているインスタンス内の投稿 - ソーシャル
ホームとローカルの投稿を同時に表示 - メディア
自身が所属しているインスタンス内でメディア(画像等)付きの投稿 - グローバル
所属インスタンスとつながっているインスタンスすべての投稿
グローバルは他のインスタンスのユーザーの投稿が表示されます。分散型SNSの大きな特徴のひとつとなります。
また、タイムラインを柔軟にカスタマイズ可能です。フィルタやウィジェットを追加し、個々のニーズに合わせたインターフェースを作成できます。
リアクション機能
Misskeyでは「いいね」はリアクションで表現します。絵文字やカスタムスタンプを用いた多様なリアクションが可能です。
これにより、投稿に対する感情を細かく表現できます。Lineの「リアクション」と似たような感じです。
投稿機能
Misskeyでは「投稿」はノートと呼ばれています。Xでは「ツイート」と呼ばれているもので、Blueskyでは「ポスト」です。呼び方は様々ですが、メッセージを投稿する行為です。
1ノートに付き3000文字まで書くことができます。Blueskyのポスト(投稿)は、現在300文字まで可能ですが、それよりもさらに多いので、ミニブログとも呼ばれます。
投稿にMFM機能と呼ばれるものを利用することもできます。
MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。一部の構文はMarkdownやHTMLと互換性があります。
文章を簡単な記号で装飾できる記法で文字に色を付けたり、形を変更できるようになります。
返信機能
返信することができます。
返信に対しての返信も可能で、スレッドのように会話を続けることもできます
リノート
対象のノートを自分のタイムラインに流して共有することができます。テキストを追記して引用することもできます。
また、投稿にMFM機能と呼ばれるものを利用することもできます。
MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 一部の構文はMarkdownやHTMLと互換性があります。
公開範囲設定
ノートを表示できる相手を制限できます。
- パブリック
すべてのユーザーに公開。 - ホーム
ホームタイムラインのみに公開。フォロワー・プロフィールを見に来た人・リノートから、他のユーザーも見ることができます。 - フォロワー
フォロワーにのみ公開。本人以外がリノートすることはできず、またフォロワー以外は閲覧できません。 - ダイレクト
指定したユーザーにのみ公開され、また相手に通知が入ります。いわゆるダイレクトメッセージです。
参考にMiskkeyとXの機能比較を載せておきます。
SNS | Miskkey | X(旧Twitter) |
---|---|---|
投稿 | ノート | ツイート |
他者投稿の拡散 | リノート | リツイート |
反応 | リアクション カスタム絵文字 | いいね ハートマーク |
文字数上限 | 3000文字 | 140字 |
公開範囲 | パブリック ホーム フォロワー ダイレクト | 全体 フォロワー ダイレクト |
タイムライン | ホーム ローカル ソーシャル メディア グローバル | おすすめ フォロー中 |
投稿メディア | 文章 画像・動画・音声 カスタム絵文字 アンケート | 文章 画像・動画・音声 投票 |
その他 | MFM チャンネル CW(コンテンツ警告) | スペース |
秘密情報は送信する際は注意が必要です。
送信先のサーバーの管理者は投稿内容を見ることが可能なので、信頼できないサーバーのユーザーにダイレクト投稿を送信する場合は注意が必要です。
Misskeyにアカウントを作ってみる
今回はPCから操作してアカウントを作成してみます。公式開発元からはスマフォ版は提供されていませんが、サードパーティーでMisskeyクライントとしてiOS「MissRirica」「MissCat」「Miria」(iOS、android)などがあります。
では、早速Misskeyの世界に入ってみましょう。
Misskeyサーバーを選択する
Misskeyは単一のサーバーではなく、各々のサーバーがインスタンスを提供する分散型ネットワークとなっています。Misskeyを利用するには、サービスを提供しているサーバーでアカウントを作成する必要があります。
注意して欲しいのは「Misskey」=「Misskey.io」ではないということです。Misskey.ioは株式会社MisskeyHQが運営していますが、Misskeyのサーバー(インスタンス)のひとつです。Misskeyのサーバーは800前後存在し、総ユーザー数は90万です。
https://misskey-hub.net/ja/servers/
それではどのサーバーを選択すればいいでしょうか?
Misskey自体はソフトウェアで、サービスではありません。そのため、Misskeyでアカウントを作る場合はアカウントを作るサーバーを最初に選ぶことになります。Misskey Hubのサーバー一覧で、登録を解放しているサーバーを検索して、自分の趣味や属性にあったインスタンスを提供しているサーバーを選択するのが良いです。
サーバー間でやりとりできるので、どこか1か所に集まる必要はありません。自分に合ったサーバーを見つけて、そこにアカウントを作るのがおすすめです。どれを選択していいかわからなければ、最大規模のMisskey.ioを選択すればよいでしょう。
筆者は数ある中から、misskey.designを選択してみました。
Misskeyアカウントを新規作成する
https://misskey.design/ にアクセスして「このサーバーに登録」をクリックして新規登録します。
(皆さんは自身で選択されたサーバーにアクセスしてください。同じような登録画面が表示されます)
必要な情報を入力すると確認メールが来ますので、メール本文中に記載されたリンクにアクセスして登録完了となります。
SMSによる電話認証等はありません。
プロフィールや各種設定も選択指示に従って投入すれば問題なく完了します。SMSによる電話認証等はありません。
最初のログインが成功すると、プロフィールやプライバシー等の各種設定画面が表示されますので、適宜設定してください。
もちろんキャンセルして後で設定も可能です。
アカウントは苗場翔@picolixで作成しましたので、サーバーを越境してテストでメッセージを送りたい方は自由に送ってください。
投稿してみる
メニューの「ノート」をクリックすると、投稿ダイアログが表示されメッセージを記入してノートボタンを押すと投稿できます。
このあたりは他のSNSとかと同じですのですぐになれると思います。
タイムラインのローカルで自分の投稿を見ることができます。皆さんの投稿をみるとリアクションのきらきら感満載で初めてだとクラクラするかもしれません。
本家のmisskey.ioの場合はタイムラインのローカルのメッセージはまるでYouTubeのリアルタイムにコメントがすごい速度で流れていきます。
他サーバーのユーザーにダイレクトメッセージをノートしてみる
筆者はMisskeyに知り合いがいませんので、ここは本家のmisskey.ioにアカウント([email protected])を別途作成しました。サーバーのアプリケーションはオープンソースで提供されていますので、登録方法は先ほどもいいましたようにどのサーバーもほぼ同じです。
misskey.ioにログインして、「ノート」の投稿ダイアログから公開範囲-ダイレクトを選択する。
「ノート」の投稿ダイアログから@マークを入れてユーザー検索ダイアログを表示します。
ホスト(サーバー)は空欄にしていますので、連携しているサーバーから該当のユーザーが存在すれば表示されます。
部分検索でヒットしたユーザ一覧が表示されます。
misskey.ioからmisskey.designの筆者のアカウントが一覧に出てきました。該当のユーザーを選択すると、メッセージ記入画面が表示されます。
顔のアイコンをクリックしてカスタム絵文字を選択することも可能です。
選択後はMFMの文字列に変換されます。メッセージを記載してノートすれば送れます。
このように簡単に他サーバーのユーザーへメッセージを送信できます。
ただアカウント作成当初は、misskey.ioからmisskey.designの筆者のアカウントは検索ヒットしませんでした。1週間ほどあれこれしているといつの間にか検索ヒットするようになりました。Misskeyサーバーでアカウントを作成した後に、misskey.ioなどの他のサーバーからユーザー検索しても見つからない場合、以下のような原因が考えられます。
Misskeyは「分散型SNS」であり、複数のサーバーが連携(=連合)して情報を共有しています。連合していない場合は当然共有できませんが、連合していても作成したアカウントの所属サーバーがmisskey.ioなどの有名なサーバーと連携していない場合、検索結果に表示されないことがあります。
misskey.designはある程度の規模もあり、misskey.ioと連合しているので検索されてもいいはずなのに検索されません。
筆者より3日後に作成されたアカウントは検索に表示されます。この差は何なのか?3日後に作成されたアカウントはノート数が20以上でリアクションもある程度ありました。従って活動状況の差と思われます。
ノートしてリアクションを貰っているうちに検索されるようになったのですが、その詳細なトリガーは不明でした。
Misskeyの連合は基本的に「アカウントが何らかの活動をした場合(投稿など)に他のサーバーに情報が共有される」仕組みです。アカウント作成直後で何も投稿していない場合、他のサーバーから認識されていない可能性があります。いずれにしろ普通にノートしていれば他サーバーのユーザーとのメッセージのやり取りができると思います。
また、ノートも全てが各サーバーにコピーされるわけではありません。一定の重要度に従ってコピーされているものと思います。
現在最大のサーバーmisskey.ioと連合状態にあるサーバーは800を超えていますが、この全サーバーに投稿されるデータは、リアルタイムで他サーバーの情報をすべて参照しているわけではありません。各サーバーは他サーバーの都合のいい投稿を取り込んでコピーした投稿を表示する方法をとっています。
連携には2種類あり、サーバー(インスタンス)単位ごとに繋がる方法とアカウント単位で繋がる方法があります。従ってアカウント単位の場合は、他のアカウントは参照できているのに別のアカウントは参照できないということが発生する場合があります。特に新規登録アカウントなどは明示的に照会しないと探しだせないことが多々あります。時間がたてばいずれ他サーバーに定着するはずです。
自サーバーを立ててみる。
サーバーのOSはAlmaLinux 9.4で、自宅サーバーにMisskeyアプリケーションをインストールしました。
ドメインはmisskey.sco.jpとしました。
独自ドメインを取得することで、サーバー運用の信頼性やブランド力が向上します。筆者はバリュードメインで独自ドメインを取得し、簡単かつ低コストで運用を開始しました。また、バリュードメインでは無料でDDNSも利用できるため、自宅サーバーでも安心してドメイン運用が可能です。
自宅サーバーからValue DomainのDNS関連のURLをたたけば、独自ドメインでの運用がすぐに実現します。
独自ドメインを使用することで、メールアドレスやウェブサイトのURLがプロフェッショナルに見え、個人利用でも企業運用でも信頼性が高まります。
Misskey公式サイトで紹介されているDocker Composeを使った方法でサーバーを立てます。公式に記載されている通りにセットアップすればすぐにサーバーが立ち上がります。もちろんDockerを使用せずにアプリケーション、データベース等を独自にインストールして使うこともできます。
Docker Composeを使ったMisskeyの構築
Misskey公式サイトから配布されているDockerイメージを使うには、Dockerがサーバーにインストールされていなければなりません。Docker自体の説明は省きますが、すごく簡単に言うとアプリやその動作に必要な環境を「コンテナ」という箱にまとめて、どこでも同じように動かせる技術です。ですので、その箱をまるごと手にいれればすぐに利用開始できます。
※Dockerが既にインストールされている場合はこの段落は飛ばしてください。
1.Dockerのインストール
#yum install -y yum-utils
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
#systemctl start docker
#systemctl enable docker
# docker -v
Docker version 27.3.1, build ce12230
# docker run hello-world
Hello from Docker!
Hello from Docker!と表示されればDockerは正常に動作しています。
2.Misskeyのインストール
https://misskey-hub.net/ja/docs/for-admin/install/guides/docker/
インストールディレクトリー:/projects/misskey にしました。
#cd /projects/misskey
#git clone -b master https://github.com/misskey-dev/misskey.git
#git checkout master
各種設定ファイルのサンプルをコピーします。
#cp .config/docker_example.yml .config/default.yml
#cp .config/docker_example.env .config/docker.env
各種設定ファイルの変更
.config/default.yml
url: https://misskey.sco.jp/ #使うドメインを記述
db: misskey #任意のDBの名前
user: misskey #DBのユーザー名
pass: xxxxxxx #DBのパスワード
2) .config/docker.env
POSTGRES_PASSWORD=xxxxxx #DBのパスワード
POSTGRES_USER=misskey #DBのユーザー名
POSTGRES_PASSWORD=xxxxxx #DBのパスワード
POSTGRES_USER=misskey #DBのユーザー名
3) docker-compose.ymlを作成します。
#vi docker-compose.yml
services:
web:
image: misskey/misskey:latest #buildではなくimageを取得する
restart: always
links:
- db
- redis
- mcaptcha
- meilisearch
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
ports:
- "3000:3000"
networks:
- internal_network
- external_network
# env_file:
# - .config/docker.env
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
redis:
restart: always
image: redis:7-alpine
networks:
- internal_network
volumes:
- ./redis:/data
healthcheck:
test: "redis-cli ping"
interval: 5s
retries: 20
db:
restart: always
image: postgres:15-alpine
networks:
- internal_network
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s
retries: 20
networks:
internal_network:
internal: true
external_network
以上で設定ができましたので初期化と起動を行います。
#cd /projects/misskey/
#docker compose run --rm web pnpm run init
#docker compose up -d
起動が完了したらcurlコマンドでレスポンスを確認します。
#curl localhost:3000
htmlのソースコードがずらずらっと表示できれば起動しています。初回起動時にエラーした場合はもう一度実施します。
これをWEB公開するには、リバースプロキシ―で運用します。
httpsで公開したいので、SSL証明書は無料の【Let’s Encrypt】の証明書を取得します。証明書を取得方法、自動化はhttps://letsencrypt.org/ja/を参考にしてください。
また、サーバーからメールを送信したい場合は、GMAILでの送信が可能です。
https://nanasi-apps.xyz/Misskey-Gmail
が参考になります。
肝心のリバースプロキシ―ですが、ネット上ではnginxでの構築例が載っています。
筆者はすでにapacheでWEBサーバーが稼働済みですので、apacheでの設定例を載せておきます。
/etc/httpd/conf.d/website-ssl.conf
ServerName misskey.sco.jp
SetEnvIf User-Agent "internal dummy connection" nolog
ErrorLog /projects/var/log/ssl_misskey_sco_jp_error.log
TransferLog /projects/var/log/ssl_misskey_sco_jp_transfer.log
CustomLog /projects/var/log/ssl_misskey_sco_jp_access.log combined env=!nolog
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite EDH+HIGH:HIGH:MEDIUM:!3DES:!ADH:!RC4:!MD5:!aNULL:!eNULL:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5:!EDH-RSA-DES-CBC3-SHA:!DES-CBC3-SHA:!ECDHE-RSA-WITH-3DES-EDE-CBC-SHA
SSLCertificateFile /opt/dehydrated/certs/misskey.sco.jp/cert.pem
SSLCertificateKeyFile /opt/dehydrated/certs/misskey.sco.jp/privkey.pem
SSLCertificateChainFile /opt/dehydrated/certs/misskey.sco.jp/chain.pem
DocumentRoot /projects/public_html/misskey.sco.jp/
ProxyPreserveHost On
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
以上でhttps://misskey.sco.jpで自前のMisskeyが運用できます。ただし、このままではmisskey.ioとは連合していませんのでクローズドな世界となります。連合したい場合は、https://misskey-hub.net/ja/servers/にあるこちらからのリンクがありますので登録できます。尚、登録と言っても簡単ではなくてAPIをたたいて自サーバーの存在を表明する必要があります。(今回は連合登録はしておりません)
最後に
以上、MisskeyのSNSはどうでしたでしょうか? いろいろなカテゴリーのサーバー(インスタンス)がありますので、きっと自分の興味あるサーバーが見つかるかと思います。
使用感覚としては若者向けであることは間違いないかと思います。私のようなインターネット老人会世代は追い付けないかもしれませんが、技術的な興味は沸きます。それではみなさんも一度Misskeyの世界をのぞかれてはと思います。
また、自分だけのMisskeyインスタンスを運用したい方には独自ドメインの取得がおすすめです。バリュードメインなら手頃な価格で独自ドメインを取得できるだけでなく、DNSやDDNSの設定も簡単に行えます。独自ドメインを利用すれば、自分だけの特別なSNS体験が実現します。技術の面白さを体験しながら、自分だけのMisskeyインスタンスを作ってみてはいかがでしょうか?
この記事を書いている最中にMIXIからMIXI2なるSNSがリリースされました。現在招待制です。このMIXI2はXと同じく中央集権タイプです。メッセージのリアクション表示とかは華やかでエンタメ性の方向を匂わせていますので若者向きと思われます。
ドメイン・サーバー同時契約でドメイン更新費用永久無料(年間最大3,858円お得)
是非、お得なこの機会にご利用ください。最新のキャンペーンはこちらから
※ユーザーノートの記事は、弊社サービスをご利用のお客様に執筆いただいております。
医療メーカーで新素材研究開発後、電機メーカーで制御器系システム開発を経てIT系マルチエンジニアをしています。またデザイン思考を実践し、アート思考などのいろんな思考方法に興味があります。