最終更新日: 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仕様 |