最終更新日: 2025年11月20日

テンプレート説明

Mastodonは、分散型ソーシャルネットワークを実現するオープンソースのマイクロブログプラットフォームです。ActivityPubプロトコルに基づき、独立したサーバー同士が連携してグローバルなソーシャルネットワーク(Fediverse)を形成します。中央集権的な商用SNSとは異なり、各インスタンスが独自のポリシーとコミュニティガイドラインを設定できる柔軟性を持ちます。

インストール完了後、サービスは停止状態となっています。セットアップウィザードで初期設定を完了した後、手動でサービスを起動する仕組みとなっています。

スタートアップスクリプトのテンプレートを利用してサーバー作成を行う手順はご利用ガイドを参照してください。

メモ

Mastodonのセットアップには必ずセットアップウィザードの実行が必要です。サービス起動前に、mastodonユーザーでRAILS_ENV=production bin/rails mastodon:setupコマンドを実行し、データベース設定や管理者アカウント作成を完了してください。

重要

この「Mastodon」スタートアップスクリプトはビルド時にメモリ4GB以上必要なため、最小メモリが4GBとなります。

仕様

対応OSイメージ

Ubuntu 24.04 LTS

主要ソフトウェア

ソフトウェア名 バージョン ライセンス 用途
Mastodon Latest(Git最新タグ) AGPL-3.0 分散型ソーシャルネットワーク本体
Ruby Latest(rbenv経由) BSD-2-Clause アプリケーション実行環境
rbenv Latest MIT Rubyバージョン管理
ruby-build Latest MIT Ruby自動インストール
Node.js 20.x MIT フロントエンド/ストリーミングAPI
PostgreSQL Latest(APTリポジトリ) PostgreSQL License メインデータベース
Redis Latest(OSパッケージ) BSD-3-Clause / RSALv2+SSPLv1 キャッシュ/キューイング
Nginx Latest(OSパッケージ) BSD-2-Clause リバースプロキシ/Webサーバー
FFmpeg Latest(OSパッケージ) LGPL-2.1 / GPL-2.0 動画/音声処理
libvips Latest(OSパッケージ) LGPL-2.1 画像処理(推奨)
Protobuf Latest(OSパッケージ) BSD-3-Clause データシリアライゼーション

スタートアップスクリプト情報

項目 説明
アプリケーション利用ポート 80/tcp (HTTP), 443/tcp (HTTPS)
インストールディレクトリ /home/mastodon/live
設定ファイル /home/mastodon/live/.env.production
SSL証明書(初期) /etc/mastodon/ssl/<domain>.crt/key(自己署名、1年間有効)
管理スクリプト /root/mastodon-*.sh
初期状態 サービス停止中
Systemdサービス mastodon-web, mastodon-sidekiq, mastodon-streaming, nginx

その他

最小システム要件

  • CPU: 2コア以上
  • メモリ: 最小4GB、推奨8GB以上
  • ディスク容量: 30GB以上(ユーザー数に応じて増加)
  • ネットワーク: パブリックIPアドレス、ドメイン名(推奨)

メモ

Mastodonのビルドには4GB以上のメモリが必要です。小規模インスタンス(数名~数十名)でも最低4GBを確保してください。ユーザー数やフェデレーション先の増加に伴い、メモリ・ディスク容量は増加します。

利用手順

メモ

スタートアップスクリプトにてアプリケーションのインストールが完了するまで数分かかります。
インストール完了後、rootディレクトリに「mastodon-info.txt」というファイルが作成されますのでご確認ください。
ファイルが存在しない場合、作成されるまでしばらくお待ちください。
スタートアップスクリプトの実行状況は、SSH接続後に以下のコマンドで確認できます:

# tail -f /var/log/mastodon-setup.log

Step 0: セキュリティグループについて

ConoHa VPS(Ver.3.0)ではサーバー毎にIPアドレスまたはポートでトラフィックを制御するセキュリティグループ(仮想ファイアウォール)が設定されます。
本テンプレートをご利用の場合は、予め利用するポートの通信許可設定が必要です。
詳細はセキュリティグループを参照してください。

重要

テンプレート作成直後はMastodonサービスが停止状態です。以下の手順に従ってサービスを起動し、設定を行ってください。特にStep 2のセットアップウィザード実行は必須です。

Step 1: VPSへの接続

作成したVPSにSSHで接続します。

# ssh root@<VPSのIPアドレス>

接続後、インストール情報を確認します。

# cat /root/mastodon-info.txt

初期割当ホスト名(逆引きDNS名)でセットアップされますが、独自ドメインを利用する場合は、次のコマンドを実行してください。

# OLD_DOMAIN_NAME=$(hostname -f)
# NEW_DOMAIN_NAME="変更後のドメイン名"
# sed -i "s|$OLD_DOMAIN_NAME|$NEW_DOMAIN_NAME|" /etc/nginx/sites-available/mastodon
# sed -i "s|$OLD_DOMAIN_NAME|$NEW_DOMAIN_NAME|" /etc/hostname
# sed -i "s|$OLD_DOMAIN_NAME|$NEW_DOMAIN_NAME|" /etc/*hosts 
# sed -i "s|$OLD_DOMAIN_NAME|$NEW_DOMAIN_NAME|" /etc/mastodon/ssl/cert.conf
# hostname $NEW_DOMAIN_NAME

# cd /etc/mastodon/ssl/
# mv ${OLD_DOMAIN_NAME}.key ${NEW_DOMAIN_NAME}.key
# mv ${OLD_DOMAIN_NAME}.crt ${NEW_DOMAIN_NAME}.crt

Step 2: セットアップウィザードの実行(必須)

Mastodonの初期設定を行います。このステップはサービス起動前に必ず実行してください。

mastodonユーザーに切り替えてセットアップウィザードを実行します。

# sudo -u mastodon bash
$ cd /home/mastodon/live
$ RAILS_ENV=production bin/rails mastodon:setup

セットアップウィザードでは以下の設定を行います:

項目 説明
Domain name ドメイン名を入力してください。
Do you want to enable single user mode? (y/N) 複数ユーザーで使用する場合、そのまま「Enter」を押してください。
Are you using Docker to run Mastodon? (Y/n) 本スクリプトではDockerを使用しないので「n」を入力してください。
PostgreSQL host: (/var/run/postgresql) そのまま「Enter」を押してください。
PostgreSQL port: (5432) そのまま「Enter」を押してください。
Name of PostgreSQL database: (mastodon_production) そのまま「Enter」を押してください。
Name of PostgreSQL user: (mastodon) そのまま「Enter」を押してください。
Password of PostgreSQL user: そのまま「Enter」を押してください。
Redis host: (localhost) そのまま「Enter」を押してください。
Redis port: (6379) そのまま「Enter」を押してください。
Redis password: そのまま「Enter」を押してください。
Do you want to store uploaded files on the cloud? (y/N) アップロードしたファイルをクラウドに保存するかの確認。使用しない場合はそのまま「Enter」を押してください。
Do you want to send e-mails from localhost? (y/N) ローカルホストから電子メールを送信するか確認。本スクリプトではSMTPサーバーは設定していないため、そのまま「Enter」を押してください。
SMTP server: (smtp.mailgun.org) 利用するSMTPサーバー名を入力してください。
SMTP port: (587) 利用するSMTPポートを入力してください。
SMTP username: 利用するSMTPユーザー名を入力してください。
SMTP password: 利用するSMTPユーザーのパスワードを入力してください。
SMTP authentication: (plain) 利用するSMTPサーバーの認証方法を入力してください。
SMTP OpenSSL verify mode: (Press ↑/↓ arrow to move and Enter to select) 利用するSMTPサーバーがSSL/TLS証明書を確認する方法を選択してください。
Enable STARTTLS: (Press ↑/↓ arrow to move and Enter to select) 利用するSMTPサーバーのSTARTTLS設定を選択してください。
E-mail address to send e-mails “from”: Mastodonから送信するメールの「From」を入力します。変更しない場合はそのまま「Enter」を押してください。
Send a test e-mail with this configuration right now? (Y/n) テストメールを送信するかの確認です。テストメールを送信する場合はそのまま「Enter」を押してください。
Send test e-mail to: テストメールの送信先メールアドレスを入力してください。
Save configuration? (Y/n) 設定を保存するかの確認です。問題ない場合はそのまま「Enter」を押してください。
Prepare the database now? (Y/n) Mastodon用のデータベースを準備するかの設定です。そのまま「Enter」を押してください。
Compile the assets now? (Y/n) 今すぐアセットをコンパイルするかの確認です。そのまま「Enter」を押してください。
Do you want to create an admin user straight away? (Y/n) 管理者ユーザーを作成するかの確認です。そのまま「Enter」を押してください。
Username: (admin) 任意の管理者ユーザー名を入力します。「admin」で問題ない場合はそのまま「Enter」を押してください。
E-mail: 管理者ユーザーのメールアドレスを入力します。
You can login with the password: 管理者パスワードが表示されるので控えてください。

メモ

セットアップウィザード完了時に表示される管理者パスワードは必ずメモしてください。このパスワードは再表示されません。

セットアップウィザード完了後、rootユーザーに戻ります。

$ exit

Step 3: サービスの起動

セットアップウィザード完了後、サービスを起動します。

# /root/mastodon-manage.sh start

サービスの状態を確認します。

# /root/mastodon-manage.sh status

Step 4: 初回アクセスと動作確認

ブラウザで以下のURLにアクセスします。

https://<ドメイン名またはIPアドレス>

メモ

初期状態では自己署名SSL証明書を使用しているため、ブラウザにセキュリティ警告が表示されます。「詳細設定」→「安全でないサイトへ進む」をクリックしてアクセスしてください。本番環境ではStep 5でLet’s Encrypt証明書への切り替えを推奨します。

Step 2で作成した管理者アカウントでログインし、動作を確認します。

Step 5: HTTPS設定(推奨)

Let’s Encryptを使用して正式なSSL証明書を取得します。

# /root/mastodon-letsencrypt.sh -e [email protected]

重要

Let’s Encrypt証明書を取得するには、ドメインがVPSのIPアドレスに正しくDNS設定されている必要があります。証明書は90日間有効で、自動更新が設定されます。

Step 6: システム診断

システムの状態を診断します。

# /root/mastodon-diagnose.sh

診断結果では以下の項目が表示されます:

  • 各サービスの稼働状態
  • ドメイン名とIPアドレス
  • ポート開放状態
  • ファイアウォール設定
  • SSL証明書の有効期限

管理スクリプト一覧

スクリプト名 機能 使用例
mastodon-manage.sh サービス管理(起動/停止/再起動/状態確認) # /root/mastodon-manage.sh start
mastodon-letsencrypt.sh Let’s Encrypt SSL証明書取得 # /root/mastodon-letsencrypt.sh -e [email protected]
mastodon-diagnose.sh システム診断 # /root/mastodon-diagnose.sh

セキュリティグループ設定

以下のポートを開放してください。

ポート番号 プロトコル 用途 必須/オプション
22 TCP SSH 必須
80 TCP HTTP 必須
443 TCP HTTPS 必須

セキュリティ重要

ポート80はLet’s Encrypt証明書取得時のHTTP-01チャレンジに必要です。証明書取得後もHTTPからHTTPSへのリダイレクトに使用されるため、開放したままにしてください。

日常的な運用

サービス管理

# サービス起動
/root/mastodon-manage.sh start

# サービス停止
/root/mastodon-manage.sh stop

# サービス再起動
/root/mastodon-manage.sh restart

# 状態確認
/root/mastodon-manage.sh status

ログ確認

# セットアップログ
cat /var/log/mastodon-setup.log

# Systemdサービスログ
journalctl -u mastodon-web -f
journalctl -u mastodon-sidekiq -f
journalctl -u mastodon-streaming -f

設定ファイル編集

環境設定を変更する場合は、mastodonユーザーで以下のファイルを編集します。

# sudo -u mastodon nano /home/mastodon/live/.env.production

編集後はサービスを再起動してください。

# /root/mastodon-manage.sh restart

アプリケーションの具体的な利用方法につきましては、サービス開発元やサービス提供元の公式サイト、Wikiなどで最新情報をご確認ください。

サイト名 URL 説明
Mastodon公式サイト https://joinmastodon.org/ プロジェクト情報・コミュニティガイド
Mastodon公式ドキュメント https://docs.joinmastodon.org/ 技術ドキュメント・管理者ガイド
MastodonのGitHubリポジトリ https://github.com/mastodon/mastodon ソースコード・イシュートラッカー
Mastodon API Documentation https://docs.joinmastodon.org/api/ REST/Streaming API仕様