Mastodon インストール · 3 min read · Oct 13, 2025
Debian 11にMastodonソーシャルネットワークをインストールする方法

Mastodonは、Twitterに似た無料で分散型のオープンソースソーシャルネットワークです。Mastodonでは、ユーザー同士がフォローし、メッセージ、画像、動画を投稿できます。しかし、Twitterとは異なり、コンテンツの中央ストアや権限はありません。
分散型アーキテクチャにより、Mastodonはコミュニティのさまざまなメンバーによって運営される数千の異なるサーバーで動作します。自分のドメインの下にMastodonサーバーを作成できます。また、他のサーバーの異なるドメインのユーザーをフォローすることもできます。
このチュートリアルでは、Debian 11サーバーにMastodonという分散型マイクロブログプラットフォームをインストールします。このガイドでは、PostgreSQLをデータベースサーバーとして、NginxをリバースプロキシとしてMastodonをセットアップします。また、Letsencryptからの無料SSL証明書を使用してMastodonのインストールを保護します。
前提条件
このガイドでは、以下の要件が整っていることを前提としています:
- Debian 11サーバー - この例では、ホスト名が ‘mastodon-server‘ で、IPアドレスが ‘192.168.5.40‘ の最新のDebian 11サーバーを使用します。
- sudo/root管理者権限を持つ非ルートユーザー。
- 公開Debianサーバーにポイントされ、解決されたドメイン名 - この例では、サブドメイン ‘mastodon.howtoforge.local‘ を使用します。
これらの前提条件が整ったら、Mastodonのインストールに進む準備が整いました。
リポジトリの設定と依存関係のインストール
Mastodonは、Twitterサービスに似た自己ホスト型ソーシャルネットワーキングサービスを実行するための無料でオープンソースのソフトウェアです。主にRubyで書かれており、特にRuby on RailsウェブフレームワークとJavaScriptのReac.jsおよびReduxフレームワークを使用しています。
この最初のステップでは、システムに追加のリポジトリを設定し、Mastodonのインストールに必要なパッケージ依存関係をインストールします。これには、Rubyをコンパイルするためのbuild-essentials、データベースサーバー用のPostgreSQL、ウェブサーバーおよびリバースプロキシ用のNginx、Letsencryptを介してSSL証明書を取得するためのcertbotツール、Mastodonのキー・バリュー・ストアおよびセッション管理に使用されるRedisサーバーが含まれます。
始める前に、以下のaptコマンドを実行して、リポジトリとパッケージを管理するために使用される基本的な依存関係をインストールします。
sudo apt install curl wget gnupg apt-transport-https lsb-release ca-certificatesプロンプトが表示されたら、yを入力して確認し、ENTERを押して続行します。

次に、以下のコマンドを実行してNode.jsのNodesourceリポジトリを追加します。ここでのNode.jsパッケージは、Mastodonの静的アセットをコンパイルするために使用されます。この執筆時点で、最新のMastodonは少なくともNode.js v16を必要とします。
curl -sL https://deb.nodesource.com/setup_16.x | bash -次のような出力が表示されます。

Node.jsリポジトリが追加されたら、次にYarnパッケージマネージャーのリポジトリを設定します。このリポジトリは、JavaScriptの依存関係をインストールするために使用されるYarnパッケージを提供します。
以下のコマンドを実行して、YarnパッケージマネージャーのGPGキーとリポジトリを追加します。
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list追加する3つ目のリポジトリはPostgreSQLリポジトリです。以下のコマンドを実行して、DebianサーバーにPostgreSQLリポジトリを追加します。
wget -O /usr/share/keyrings/postgresql.asc https://www.postgresql.org/media/keys/ACCC4CF8.asc
echo "deb [signed-by=/usr/share/keyrings/postgresql.asc] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
> /etc/apt/sources.list.d/postgresql.list
Node.js、Yarn、PostgreSQLリポジトリが追加されたら、以下のaptコマンドを実行してパッケージインデックスを更新します。
sudo apt update次のような出力が表示されます。

最後に、以下のaptコマンドを実行して、Mastodonのインストールに使用されるパッケージ依存関係をインストールします。
sudo apt install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \
g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \
bison build-essential libssl-dev libyaml-dev libreadline6-dev \
zlib1g-dev libncurses5-dev libffi-dev libgdbm-dev \
nginx nodejs yarn redis-server redis-tools postgresql postgresql-contrib \
certbot python3-certbot-nginx libidn11-dev libicu-dev libjemalloc-dev確認のためにyを入力し、ENTERを押して続行します。

これで、Mastodonの基本的な依存関係がインストールされ、Debianシステムにいくつかのサードパーティリポジトリが追加されました。
次のステップでは、rbenvを介してRubyをインストールします - Rubyバージョンマネージャーです。
rbenvとRubyのインストール
rbenvは、Unix系システム上のRubyプログラミング言語用のバージョン管理ツールです。同じマシン上で複数のRubyバージョンを切り替えるのに便利で、作業中の各プロジェクトが常に正しいRubyバージョンで実行されることを保証します。
始めるには、以下のコマンドを実行して、新しいユーザー ‘mastodon‘ をシステムに作成します。この新しいユーザーは、Mastodonに関連するサービスを実行するために使用され、Mastodonのソースコードはこのユーザーのホームディレクトリに保存されます。
sudo adduser --disabled-login mastodonプロセス中に、ユーザー詳細の設定を求められます。ユーザー情報を入力し、yを入力して確認し、ENTERを押します。

‘ mastodon ‘ ユーザーが作成されたら、以下のコマンドを実行してログインします。
su - mastodon次に、以下のgitコマンドを使用してrbenvのソースコードをダウンロードします。
git clone https://github.com/rbenv/rbenv.git ~/.rbenv次に、以下のコマンドを実行して、システムにrbenvをインストールします。
cd ~/.rbenv && src/configure && make -C srcrbenvがインストールされた後、次のような出力が表示されます。

次に、以下のコマンドを実行して、rbenvの’bin’ディレクトリをシステムPATHに追加し、ユーザーが新しいセッションにログインするたびにrbenvをロードします。
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc現在のシェルを再読み込みするために、bashrc設定ファイルを再読み込みします。次に、シェルで’rbenv’コマンドを入力し、TABを押します。
source ~/.bashrc
rbenv TAB次のスクリーンショットでは、rbenvがインストールされており、Rubyをインストールするためにrbenvコマンドを実行できるようになっています。
Rubyをインストールする前に、’ruby-build’というrbenvプラグインをインストールする必要があります。このプラグインは、特にUNIX系オペレーティングシステム向けに、ソースからRubyをインストールするためのコマンドラインツールを提供します。
以下のgitコマンドを使用して、‘ruby-build’プラグインをダウンロードします。
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
‘ruby-build’プラグインが追加されたら、以下のコマンドを実行して、現在のMastodonバージョンに必要なRuby v3.0.4をインストールします。
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4インストールが完了すると、次のような出力が表示されます。

次に、以下のコマンドを実行して、デフォルトのRubyバージョンを3.0.4に設定します。その後、以下のようにrubyコマンドを使用して確認します。DebianシステムにRuby v3.0.4がインストールされていることがわかります。
rbenv global 3.0.4
ruby --version
最後に、Rubyパッケージ管理としてbundlerをインストールする必要があります。以下のgemコマンドを実行して’bundler’をインストールします。
gem install bundler --no-documentこれで、システムにMastodonパッケージ依存関係のインストールが完了しました。rbenv Rubyバージョンマネージャーを介してRuby 3.0.4をインストールし、Rubyパッケージ管理ツールであるbundlerをインストールしました。
次のステップでは、Mastodonインストールに使用されるPostgreSQLユーザーを設定します。
PostgreSQLデータベースサーバーの設定
このステップでは、PostgreSQLサービスが有効で実行されていることを確認します。次に、PostgreSQLシェルを介して新しいPostgreSQLユーザー/ロール’mastodon’を作成します。
以下のコマンドをrootユーザー/権限で実行してください。
始める前に、以下のsystemctlコマンドユーティリティを実行して、PostgreSQLサービスが実行中で有効であることを確認します。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresql次のような出力が表示されます。

PostgreSQLが実行中であれば、以下のコマンドを実行してPostgreSQLシェルにログインします。
cd /etc/postgresql
sudo -u postgres psqlPostgreSQLシェルにログインしたら、以下のPostgreSQLクエリを実行して新しいロール/ユーザー ‘mastodon‘ を作成します。また、デフォルトのパスワードを新しい強力なパスワードに変更してください。
CREATE USER mastodon CREATEDB;
ALTER USER mastodon PASSWORD 'p4ssw0rd';次に、以下のクエリを実行して新しいPostgreSQLユーザー/ロールが作成されたことを確認します。その後、’ ** ‘ を入力してPostgreSQLシェルから退出します。
du
dq以下の出力は、新しいPostgreSQLユーザー/ロール’mastodon’が作成されたことを示しています。

PostgreSQLユーザー/ロールが作成されたので、DebianシステムにMastodonをインストールする準備が整いました。
Mastodonのインストール
このステップでは、MastodonをDebianサーバーにインストールして構成します。また、MastodonのRuby依存関係とJavaScript依存関係をインストールします。最後に、Mastodonのデプロイメントを構成し、ドメイン構成、データベースおよびRedis構成、SMTP構成、Mastodon管理ユーザー構成を含めます。
始める前に、以下のコマンドを使用して’mastodon’ユーザーにログインします。
su - mastodon次に、以下のgitコマンドを使用してMastodonのソースコードをダウンロードし、最新の安定版Mastodonにブランチを変更します。この執筆時点で、Mastodonの安定版はv4.0.2です。
git clone https://github.com/mastodon/mastodon.git live && cd live
git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)
次に、以下のコマンドを実行してMastodonのデプロイメントを設定し、Ruby依存関係をインストールします。
bundle config deployment 'true'
bundle config without 'development test'
bundle install -j$(getconf _NPROCESSORS_ONLN)MastodonのRuby依存関係のインストールには時間がかかります。以下は、ターミナルで受け取る出力の例です。

MastodonのRuby依存関係をインストールしたら、以下のyarnコマンドを実行してMastodonのJavaScript依存関係をインストールします。
yarn install --pure-lockfile次のような出力が表示されます。

Ruby依存関係とJavaScript依存関係がインストールされたら、Mastodonのインストールを設定します。
以下のコマンドを実行して、Mastodonを本番環境用に設定します。
RAILS_ENV=production bundle exec rake mastodon:setupMastodonのいくつかの構成について尋ねられます。
- Mastodonのドメイン名は?この例では、ドメイン’mastodon.howtoforge.local’を使用します。
- シングルユーザーモードを有効にしますか?yを入力します。
- Mastodonを実行するためにDockerを使用しますか?いいえのためにnを入力します。
- PostgreSQLユーザーとパスワードを入力し、’データベース構成が機能します!’というメッセージが表示されることを確認します。
- Redis構成?ENTERを押してデフォルトのままにします。
- クラウドにファイルをアップロードすることを有効にしますか?いいえのためにnを入力します。
- localhostからメールを送信することを許可しますか?はいのためにyを入力して確認するか、いいえのためにnを入力します。これは環境によりますが、サードパーティのSMTPサーバーを使用することもできます。
- 構成を保存しますか?はいのためにyを入力します。
- データベース作成のために。Mastodonデータベースを作成するためにyを入力します。
- Mastodonのアセットと静的ファイルをコンパイルするためにyを入力します。
- 管理ユーザーを設定しますか?Mastodonインストール用の新しい管理ユーザーとメールを入力します。すると、パスワードが自動的に画面に生成されます。
Mastodonのドメイン名、PostgreSQL、Redisサーバー、SMTPメールサーバーの構成。

Mastodonがアセットと静的ファイルを生成します。

Mastodon管理ユーザーが作成され、パスワードもターミナル画面に生成されます。
これで、Debian 11上でMastodonのインストールと構成が完了しました。次のステップでは、Mastodonをsystemdサービスとして設定します。
MastodonをSystemdサービスとして実行する
デフォルトでは、Mastodonは’ /home/mastodon/live/dist/ ‘ディレクトリに利用可能なsystemdサービスファイルのサンプルを提供します。
以下のコマンドを実行して、Mastodonサービスファイルを’ /etc/systemd/system ‘ディレクトリにコピーします。
sudo cp /home/mastodon/live/dist/mastodon-*.service /etc/systemd/system/次に、systemdの変更を適用するためにsystemdマネージャーを再読み込みします。
sudo systemctl daemon-reloadその後、以下のsystemctlコマンドユーティリティを使用してMastonサービスを開始および有効にします。
sudo systemctl start mastodon-web mastodon-sidekiq mastodon-streaming
sudo systemctl enable mastodon-web mastodon-sidekiq mastodon-streaming
Mastodonサービスは現在、実行中で有効になっているはずです。以下のsystemctlコマンドを使用して確認します。
sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming次のような出力が表示されます。
mastodon-webサービスが実行中で有効です。

mastodon-sidekiqも実行中で有効です。

mastodon-streamingサービスも実行中で有効です。

すべてのMastodonサービスが実行中で有効になったので、次にNginxをMastodonのリバースプロキシとして設定し、SSL Letsencryptを生成します。
Nginxをリバースプロキシとして設定する
このステップでは、NginxウェブサーバーをMastodonのリバースプロキシとして設定します。また、certbotコマンドを介してSSL Letsencryptを生成し、MastodonをHTTPSセキュア接続で保護します。
MastodonのデフォルトNginxサーバーブロック構成を ‘/etc/nginx/sites-available/mastodon’ にコピーします。次に、新しいサーバーブロック構成 ‘/etc/nginx/sites-available/mastodon ‘ を有効にします。
sudo cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
sudo ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon次に、以下のnanoエディタコマンドを使用してMastodonサーバーブロック構成ファイル ‘/etc/nginx/sites-available/mastodon’ を開きます。
sudo nano /etc/nginx/sites-available/mastodonデフォルトのドメイン名をMastodonのドメインに変更します。この例では、Mastodonのドメインは ‘mastodon.howtoforge.local‘ です。
ドメインを変更
ファイルを保存し、編集が完了したらエディタを終了します。
次に、以下のコマンドを実行してLetsencryptからSSL証明書を生成します。ドメイン名を自分のドメインに変更してください。
sudo certbot --nginx -d mastodon.howtoforge.localSSL証明書が生成されたら、以下のコマンドを実行してNginx構成を確認します。‘テスト成功 - 構文OK ‘という出力メッセージが表示される場合、適切な構成があることを意味します。次に、新しい変更を適用するためにNginxサービスを再起動します。
sudo nginx -t
sudo systemctl restart nginx
最後に、以下のsystemctlコマンドユーティリティを実行してNginxサービスを確認し、サービスが実行中で有効であることを確認します。
sudo systemctl is-enabled nginx
sudo systemctl status nginx次のような出力が表示されます - Nginxサービスは現在実行中で有効です。Nginxサービスは起動時に自動的に実行されます。

すべての構成が完了したので、Mastodonは現在ウェブブラウザを介してアクセス可能です。
Mastodonインストールへのアクセス
ウェブブラウザを開き、Mastodonインストールのドメイン名(例: https://mastodon.howtoforge.local/)にアクセスします。Mastodonのデフォルトのホームページが表示されます。

‘ サインイン ‘ ボタンをクリックしてユーザーを確認します。
次に、Mastodon用の管理ユーザーと生成されたパスワードを入力します。次に、サインインをクリックします。

次に、Mastodonのユーザーホームページが表示されます。

次に、Preferencesメニューをクリックしてユーザー設定ページに移動します。次に、左側のAdministrationメニューをクリックします。すると、以下のMastodon管理ページが表示されます。
現在のMastodonインストールで使用しているソフトウェアスタックの詳細が表示されます。

結論
おめでとうございます!Debian 11サーバーにMastodonマイクロブログプラットフォームのインストールが完了しました。PostgreSQLをデータベースサーバーとして、NginxをリバースプロキシとしてMastodonをインストールしました。また、セキュアなHTTPS接続を介してMastodonのデプロイメントを保護しました。
すべてのインストールが完了したので、Mastodonの連合サポートのためのルールを設定できます。また、Mastodonインストールに追加のセキュリティレイヤーを追加することもできます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。