理系東大生が運営する人生攻略ブログ
※本ページには広告を含みます

【簡単】Misskeyサーバーの立て方・費用・設定を解説!【VPS・初心者向け】

このブログの管理人
管理人:西片(にしかた)
  • 東大(工学系)に所属している学生
  • PC、スマホ、ネット全般に詳しい(つもり)
  • 応用情報技術者などのIT系国家資格を複数所有
  • 開発協力→努力家のための新SNS「yalkey
  • 本ブログの更新情報発信してます!
    Misskey / Mastodon / Twitter

ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です

今回は最近注目を集めているSNS「Misskey」のサーバーを構築する方法を解説していきます

本記事で紹介する構築手順は以下の通りです

  1. 独自ドメインを取得する(数分)。こだわりがなければ無料で取得することも可能。
  2. VPSでサーバー用のアカウントを取得する
  3. DNSの設定をする(設定自体は簡単だが待ち時間が長い場合あり)
  4. VPSを設定してMisskeyサーバーを立てる(数十分)
  5. (必要に応じて)管理者アカウントを作成して自分のサーバーに関する詳細な設定をする

VPSの設定はMisskey Hubに記載されている「Docker Composeを使ったMisskey構築」を参考にしています

本記事では、比較的小規模なサーバーを立てることを想定しています。misskey.ioのような巨大サーバーを構築したい場合には、AWSなど別の方法を使うのがおすすめです

クリックできる目次

Misskeyサーバーの立て方は主に3つ

画像:Misskey Hub

個人がMisskeyサーバー(インスタンス)を立てる方法としては以下の2つが代表的かと思います

  • クラウド(AWSなど)を使う
  • VPSを使う

1つ目は「クラウドを契約して立てる」という方法。

クラウドとは「Webサービスを作る上で必要なものをネット経由で提供してくれるサービス」のこと。

本来、Webアプリ等をネット上に公開するためには、サーバーなどのハードウェアを自分で購入したり、ソフトウェアを自力でインストールしたりする必要があります

しかしながら、全てのリソースを自分で準備するには莫大な費用がかかりますし、維持費もかかります。さらに構築・管理するための知識も必要です

そこで活躍するのが「クラウド」。クラウドを使えば、世界のどこかに設置されているリソース(サーバーなど)をネット経由で自由に使うことができるようになります

クラウドサービスの中でも、Amazonのクラウドサービスである「AWS」やMicrosoftの「Azure」、Googleの「Google Cloud Platform (GCP)」などが人気です

クラウドは拡張性が高くて便利ですが、「多額の請求を受ける可能性がある」という欠点があります。

クラウドは月額料金ではなく、使用した時間やリソースに応じて課金されることがほとんどです。そのため、無計画にクラウドを使っていると、莫大な金額を請求をされて「クラウド破産」に陥る可能性もあります

そこで、本記事ではクラウドではなく「VPS」を使っていきます

VPSは月額課金制なので、自分の想定以上に請求される心配がありません。また、日本企業が運営しているケースが多いので、トラブルが発生した際に日本語で対応してもらえるのもGoodポイント。

VPSサービスは多数存在しますが、この記事ではXserver VPSを使用していきます。安価で高性能なだけでなく、Misskeyサーバーを立てる際に便利なテンプレートが用意されているので、Misskeyサーバーの構築には最適です

Xserver VPS公式サイト

なお、おすすめのVPSについては以下の記事にまとめてあるので、ぜひ参考にしてみてください

あわせて読みたい
【安い順】おすすめのVPS11社を徹底比較!【2024年最新】 ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は「VPS(Virtual Private Server)」を徹底比較していきたいと思い...

Misskeyサーバーを立てるのに必要なもの・費用

画像:Misskey

Misskeyサーバーを立てるにあたって必要なものは以下の2つです

  • サーバー(VPSなど)
  • 独自ドメイン

サーバーについては説明不要かと思いますが、Misskey鯖を立てるには独自ドメインも必要になってきます

ドメインというのはURLの一部として使われる文字列のことで、いわば「Webサイトの住所」とも言える存在です

ネットユーザーは、ドメインを指定することで、そのWebサイトにアクセスできるようになります

たとえば、YouTubeのドメインは「youtube.com」、内閣府ホームページのドメインは「cao.go.jp」です(僕のブログの場合、yagokoro-lab.comがドメインです)

Twitterの場合、すべての投稿はTwitter社が所有するドメイン「twitter.com」の下で管理されます。一方、Misskeyには全体を総括するドメインが存在しないので、サーバーを立てる人が自分専用のドメイン(いわゆる独自ドメイン)を用意する必要があります

ドメインは0円で取得できるものもあれば数万円以上のものもあります。ただ、ドメインはサーバーの質を左右するものではないので、費用を抑えたいなら格安のドメインでも構いません

※おすすめの独自ドメイン取得サービスについては以下の記事にまとめてあります

あわせて読みたい
【料金比較】安い!東大生おすすめの独自ドメイン取得サービス ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は独自ドメインを取得できるサービスについて徹底解説していこうと...

サーバー(VPS)にかかる費用はサーバーの規模によります。仲間内だけで小規模にマストドンを楽しむなら月に数百円程度の出費で済みますが、人数が多くなるとそれなりにハイスペックのプランを契約する必要があるので注意してください

「どのプランを選べばいいか分からない…」という場合は、Xserver VPSの公式サイトに問い合わせてみてください

Xserver VPS公式サイト

知っておくべき基礎知識

本記事の後半では、Linuxコマンドを使用します

コマンド操作に慣れていない場合、つまずくところも多いかもしれませんが、調べながら作業を進めていってください

Misskeyサーバー構築の流れ

Misskeyサーバーを立てる流れは以下の通りです

  1. 独自ドメインの取得
  2. VPSの契約
  3. DNSの設定 ← 設定反映に数時間~数日かかることも
  4. VPSの設定

本記事で紹介する手順の通りに作業を進めれば、そんなに時間はかからないかと思います。ただし、DNSの設定が反映されるのに数時間~数日かかることがあるので注意してください

あと「この記事を読んでも分からない」「不具合が発生して作業が進まない」という人のために、記事の最後に参考リンクを貼っておきました。必要に応じて参考にしてください

Misskeyサーバーの立て方

本記事で紹介するMisskey(ミスキー)のサーバーの立て方は以下の通りとなっています

  1. 独自ドメインを取得する(数分)。こだわりがなければ無料で取得することも可能。
  2. VPSでサーバー用のアカウントを取得する
  3. DNSの設定をする(設定自体は簡単だが待ち時間が長い場合あり)
  4. VPSを設定してMisskeyサーバーを立てる(数十分)
  5. (必要に応じて)管理者アカウントを作成して自分のサーバーに関する詳細な設定をする

VPSの設定はMisskey Hubに記載されている「Docker Composeを使ったMisskey構築」を参考にしました

独自ドメインを取得する

まずは独自ドメインを取得していきます

独自ドメインを取得できるサービスはいくつかありますが、今回は業界最大手の「お名前ドットコム」で取得していこうと思います

ちなみに、おすすめの独自ドメイン取得サービスについては以下の記事にまとめてあるので、よかったら覗いてみてください

あわせて読みたい
【料金比較】安い!東大生おすすめの独自ドメイン取得サービス ヤゴコロ研究所に訪問いただきありがとうございます。東大生ブロガーの西片(@nskt_yagokoro)です 今回は独自ドメインを取得できるサービスについて徹底解説していこうと...

では、さっそく独自ドメインを取得していきましょう

まずは、お名前ドットコムの公式サイトにアクセスします

続いて、検索ボックスに使いたいドメインを入力して検索ボタンを押してください。

例えば「sample.com」を取得したい場合には「sample」と入力します

ドメイン名はどんな文字列でも基本的にOKですが、何のコミュニティか分かりやすいようにドメイン名を決めるのがいいと思います

検索ボタンを押すとドメインが使用可能かどうか表示されます

空きがある場合はチェックボックスが表示されるので、使いたいドメインにチェックを入れて下さい

ちなみに「abc」や「blog」のような単純なドメインは人気なため、すでに使用されていたり高額だったりします。

「.com」「.xyz」など様々なドメインが表示されますが、自分のお好きなもので構いません

購入するドメインにチェックを入れたら右側の「お申し込みへ進む」を押して下さい

次の画面では「サーバーを契約するかどうか」「ドメインの契約年数」「オプションサービスを追加するかどうか」を聞かれます

サーバーは後ほど「Xserver VPS」を申し込むので、ここでは「申し込まない」を選択

「Whois情報公開代行メール転送オプション」と「ドメインプロテクション」はお好みで申し込んでください

ドメインプロテクションはドメインの乗っ取りを防ぐための機能です

入力を終えたら、画面右側に「登録に使うメールアドレス」と「登録したいパスワード」を入力して「次へ」をクリック

あとは会員情報を入力し、支払いを完了させれば仮登録は終了です

最後に「サーバーの準備をお忘れではありませんか?」的なことを聞かれるかもしれませんが「申し込まない」を選べばOKです

手続きを終えてしばらくたつと「【重要】【お名前.com】ドメイン 情報認証のお願い」というメールが届くはずなので、記載されているURLをクリックしてください

これでお名前ドットコムへの登録は完了です

Xserverアカウント作成

つづいては、Xserver VPSでVPSサーバーを契約します

Xserver VPSの公式サイトにアクセスし、右上の「お申し込み」ボタンをクリック

エックスサーバー社のサービスを初めて使う場合には「すぐにスタート!新規お申込み」、すでにアカウントを持っている場合は「ログイン」をクリックしてください

「すぐにスタート!新規お申込み」を選択した場合、以下のような情報入力画面が出てくるので、案内にしたがって入力してください

あとは、メールアドレスとSMS(または電話)による認証をすれば、アカウント作成は完了です

XserverVPSのプラン選択

アカウントを作成したらプランの申し込みに移ります

「Xserver VPSを申し込む」をクリックすると、以下のようなアプリの選択画面が出てきます

Misskey用に契約するなら、以下のように入力するのがおすすめです

入力項目入力内容
サーバー名そのままでも自分で決めてもOK
プラン4GB以上推奨
※どれを選べばいいか分からない場合は公式に問い合わせてみてください
サーバーの契約期間長期契約だと月額料金が安くなってお得
イメージタイプDocker
※タブを「OS」から「アプリケーション」に切り替えて「Docker」をクリック
rootパスワード半角英数字、半角数字、半角記号から2種類以上含んだ9文字以上70文字以内

次の確認画面で入力内容に誤りがないことを確認したら「お支払いへ進む」をクリック。

決済画面が表示されます。「クレジットカード」「翌月後払い(コンビニ/銀行)」を選択して支払いを済ませてください

DNSの設定

決済を終えると、自動で以下のようなサーバー管理画面に移行します

先ほど契約したサーバーが表示されているはずなので、右のほうにある「VPS管理」をクリック

VPSサーバーの詳細が表示されます。

下のほうに「IPアドレス」という項目があるので、この文字列をメモしておいてください

続いて、「IPアドレス」の下に「接続許可ポート」という項目があるので、右側の「変更する」をクリック

以下のように「SSH」と「Web」を「ONにする」に切り替えて「接続許可ポートを設定する」をクリックしてください

続いて「お名前ドットコム」のお名前.com Naviにログインします。以下のような管理画面に移動するので、「ネームサーバーの設定」>「ドメインのDNS設定」をクリック。

契約中のドメイン一覧が表示されるので、マストドン用に使いたいドメインを選んで「次へ」をクリック。

続いて「DNSレコード設定を利用する」の右にある「設定する」ボタンをクリックしてください

下のほうへスクロールしていくと「A/AAAA/CNAME/MX/NS/TXT/SRV/DS/CAAレコード」という項目があります↓

ドメインをそのままマストドン用のURLとして使う場合には、以下のようにレコードを2つ追加してください※以下はドメイン名がexample.jp、IPアドレスが111.239.181.187の場合の入力例です。ご自分のIPアドレス(先ほどメモした文字列)に読み替えてください

ホスト名TYPETTLVALUE状態
(入力しない)A3600111.239.181.187有効
(入力しない)TXT3600v=spf1 +ip4:111.239.181.187 ~all有効

※「TYPEとかTTLって何?」という場合には以下のページをご覧ください。

お名前ドットコム「DNSレコード設定の各レコードの意味を教えてください。」

サブドメインを使う場合には、以下のようにレコードを2つ入力してください※以下はドメイン名がmstdn.example.jp、IPアドレスが111.239.181.187の場合の入力例です。ご自分のIPアドレス(先ほどメモした文字列)に読み替えてください

ホスト名TYPETTLVALUE状態
mstdnA3600111.239.181.187有効
mstdnTXT3600v=spf1 +ip4:111.239.181.187 ~all有効

レコードを2つ追加したら、ページの一番下にある「確認画面へ進み」をクリックして変更を反映させてください

なお、DNSの設定が反映されるまでに数時間~数日の時間がかかります(参考:お名前ドットコム「DNS設定の変更手続きをしてから有効になるまでの期間は?」)。反映されたかどうか確認したい場合には、以下のページをお使いください

https://www.whatsmydns.net/

ドメインを入力して「Search」をクリックすると、反映されたかどうかを自動で調べてくれます。表示されたIPアドレスが設定したIPアドレス(Xserver VPSのIPアドレス)になっていればOKです

Teratermの導入&Misskeyの設定

DNSの設定が反映されたら、Misskeyの設定に移りましょう

セキュアな環境でVPSに接続するためにSSHクライアントソフトを導入していきます。ここでは、最も代表的なSSHクライアントソフトである「Teraterm」を使っていきますが、ほかのSSHクライアントソフトでもOKです

まず、公式サイトからTeratermをダウンロードします。「ダウンロードパッケージ一覧」のところにある「teratem-x.xxx.exe」をクリックすると自動的ダウンロードが開始します

ダウンロードが完了したら、ダウンロードしたexeファイルを起動し、Teratermをインストールしてください。特にこだわりがなければ、全部「次へ」をクリックしておけばOKです

Teratermを起動すると、以下のような画面が出てきます

「ホスト」に先ほどメモしたVPSのIPアドレスを入力して「OK」をクリック。

初めて接続する場合にはセキュリティ警告が表示されますが、気にせず「続行」をクリックしてください

すると、以下のような認証画面が出てくるので、ユーザ名に「root」、パスフレーズにVPS契約時に設定したrootパスワードを入力してください

※もし認証画面が出てこない場合には、いったんteratermを閉じてから再度起動させてみてください

黒い背景の画面が出てきたらOKです。この画面にコマンドを入力していきます(※本記事ではコマンド操作に関する詳しい説明は省略するので、分からない箇所は適宜調べてください…)

ユーザーの追加

以下のコマンドを入力し、ユーザーを作成する(user_name のところは自分の好きなユーザー名に差し替えてください)

adduser user_name

パスワードの設定を求められるので、入力します。Full Nameなども聞かれますが、特に設定をしない場合はEnterを押せばOKです

続いて、以下のコマンドで追加したユーザー(user_name)にsudo権限を与えます

sudo gpasswd -a user_name sudo

完了したら以下のコマンドでuser_nameにログインしましょう

su user_name

※参考:VPSにDockerでMisskeyを立てていろいろあった話

システムのアップデート

以下のコマンドを実行してシステムをアップデートしておいてください

sudo apt update
sudo apt upgrade

dockerとdocker-composeの確認

XseverVPSのテンプレートを使っている場合、既にdockerとdocker-composeはインストール済みです。

以下のコマンドでバージョンが表示されることを確認してください(表示されなかったらインストールされていないことになります)

sudo docker -v
sudo docker-compose -v

リポジトリの取得

公式ドキュメントを参考にリポジトリを取得します

git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master

もし「fatal: could not create work tree dir ‘misskey’: Permission denied」というエラーが出る場合、以下のコマンドを実行してから再度上記のコマンドを使用してみてください(パスワードを聞かれたら先ほど設定したパスワードを入力してください)

sudo chmod 777 .

dockerの設定

公式ドキュメントを参考に、設定ファイルのサンプルをコピーしていきます。下のコマンドを実行してください

cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./docker-compose.yml.example ./docker-compose.yml

コピーしたファイルを自分のサーバー用に書き換えてきます

以下のコマンドを実行してvimでdefault.ymlファイルを開き、編集します。

vi .config/default.yml

下記の通りに書き換えてください(Insertキーを押すと編集できるようになります。Vimの使い方はこちらを参考にしてください)

  1. URLのところに「https://ドメイン名」を記載
  2. ユーザ名・パスワードを記載(後述のdocker.envと同じにする)

続いて、以下のコマンドを実行してvimでdocker.envファイルを開き、編集します。

vi .config/docker.env

下記の通りに書き換えてください

  1. ユーザ名・パスワードを記載(先述のdefault.ymlと同じにする)

docker-compose.ymlも編集します

vi docker-compose.yml

以下のコードをdocker-compose.yml内にコピペした後、VIRTUAL_HOSTとLETSENCRYPT_HOSTに自分のドメインを入力します。LETSENCRYPT_EMAILには、自分のメールアドレスを指定してください。

version: "3"
services:
  web:
    image: misskey/misskey:latest
    restart: always
    links:
      - db
      - redis
    depends_on:
      - db
      - redis
    ports:
      - "3000:3000"
    networks:
      - internal_network
      - external_network
    volumes:
      - ./files:/misskey/files
      - ./.config:/misskey/.config:ro
    environment:
      VIRTUAL_HOST: example.com
      VIRTUAL_POST: 3000
      LETSENCRYPT_HOST: example.com
      LETSENCRYPT_EMAIL: xxxx@yyy.com
  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.1-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:
    external: true

※参考:misskeyの自分用サーバをつくる

初期化と起動

続いて、以下のコマンドでデータベースを初期化します

sudo docker compose run --rm web pnpm run init

データベースを初期化したら、以下のコマンドでmisskeyを起動します

sudo docker-compose up -d

以下のコマンドで立ち上がっているかどうかを確認できます

sudo docker-compose ps

参考:Misskeyサーバーをちゃんと建ててみた

nginx&certbot(Let’s Encrypt)の設定

以下のコマンドでnginxとcertbot(Let’s Encrypt)をインストールします

sudo apt install nginx
sudo apt install certbot python3-certbot-nginx

続いて、以下のコマンドでLet’s Encryptの証明書を発行します

sudo certbot --nginx -d ドメイン名

続いて、公式ドキュメントを参考にNginxの設定をしていきます

以下のコマンドを実行してmisskey.confを作成します

cd /etc
mkdir -p nginx/conf.d
cd nginx/conf.d
vi misskey.conf

作成したmisskey.confファイルに、公式ドキュメントの設定例をコピペし、example.tldの部分を全て自分のドメイン名に書き換えます

書き換えが完了したら以下のコマンドで設定ファイルが正常に読み込まれることを確認してください

sudo nginx -t

最後に以下のコマンドでnginxを再起動します

sudo systemctl restart nginx

これで基本的なサーバーの設定は終了です。お疲れ様でした!

ブラウザで「https://ドメイン名」にアクセスすれば、以下のような管理者用ページが表示されると思います

このページでは管理者アカウントを作成できます。管理者アカウントを作ったら、自分好みに色々とカスタマイズしてみてください

参考リンク

Docker Composeを使ったMisskey構築

misskeyの自分用サーバをつくる

VPSにDockerでMisskeyを立てていろいろあった話

東大生が作った「努力家のためのSNS」爆誕!

先日、東大生が開発した新SNS「yalkey (やるきー)」がリリースされました!(僕も開発に関与してます!)

「努力家のためのSNS」をコンセプトとしており、一般的なSNSのように文章を投稿できるだけでなく、日々の努力を数値データとして登録しグラフ化・カレンダー化できるようになっています↓

登録できるデータは「時間(時間/分)」「整数」「小数」「ToDo (達成or未達成)」の4種類で、単位も自分でカスタマイズ可能。以下のような様々な用途に利用できます。

  • 勉強時間を記録してグラフ化
  • 読書したページ数を記録してグラフ化
  • 筋トレした日をToDoカレンダーで管理

登録したデータはCSVファイルで出力できるので、後からExcelで編集することも可能となっています。また、今後も新しい機能が追加していく予定です!

「努力すると決めたけど中々やる気がでない...」「日々の進捗をグラフ化して見える化したい!」という方にうってつけのアプリとなっています!

リリースしたばかりでユーザーが少ないので、登録してもらえるとめちゃくちゃ喜びます!もちろん完全無料です!(登録画面はこちら ※現在Web版のみ。スマホアプリ版は今後リリース予定。)

公式サイト → https://yalkey.com/

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
クリックできる目次