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を押して続行します。

install basic packages

次に、以下のコマンドを実行してNode.jsのNodesourceリポジトリを追加します。ここでのNode.jsパッケージは、Mastodonの静的アセットをコンパイルするために使用されます。この執筆時点で、最新のMastodonは少なくともNode.js v16を必要とします。

curl -sL https://deb.nodesource.com/setup_16.x | bash -

次のような出力が表示されます。

add nodejs repo

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

add yarn postgresql repo

Node.js、Yarn、PostgreSQLリポジトリが追加されたら、以下のaptコマンドを実行してパッケージインデックスを更新します。

sudo apt update

次のような出力が表示されます。

update and refresh repo

最後に、以下の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を押して続行します。

install dependencies

これで、Mastodonの基本的な依存関係がインストールされ、Debianシステムにいくつかのサードパーティリポジトリが追加されました。

次のステップでは、rbenvを介してRubyをインストールします - Rubyバージョンマネージャーです。

rbenvとRubyのインストール

rbenvは、Unix系システム上のRubyプログラミング言語用のバージョン管理ツールです。同じマシン上で複数のRubyバージョンを切り替えるのに便利で、作業中の各プロジェクトが常に正しいRubyバージョンで実行されることを保証します。

始めるには、以下のコマンドを実行して、新しいユーザー ‘mastodon‘ をシステムに作成します。この新しいユーザーは、Mastodonに関連するサービスを実行するために使用され、Mastodonのソースコードはこのユーザーのホームディレクトリに保存されます。

sudo adduser --disabled-login mastodon

プロセス中に、ユーザー詳細の設定を求められます。ユーザー情報を入力し、yを入力して確認し、ENTERを押します。

add new user

mastodon ‘ ユーザーが作成されたら、以下のコマンドを実行してログインします。

su - mastodon

次に、以下のgitコマンドを使用してrbenvのソースコードをダウンロードします。

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

次に、以下のコマンドを実行して、システムにrbenvをインストールします。

cd ~/.rbenv && src/configure && make -C src

rbenvがインストールされた後、次のような出力が表示されます。

download and install rbenv

次に、以下のコマンドを実行して、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

download ruby_plugin

‘ruby-build’プラグインが追加されたら、以下のコマンドを実行して、現在のMastodonバージョンに必要なRuby v3.0.4をインストールします。

RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4

インストールが完了すると、次のような出力が表示されます。

install ruby

次に、以下のコマンドを実行して、デフォルトのRubyバージョンを3.0.4に設定します。その後、以下のようにrubyコマンドを使用して確認します。DebianシステムにRuby v3.0.4がインストールされていることがわかります。

rbenv global 3.0.4  
ruby --version

verify ruby

最後に、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

次のような出力が表示されます。

verify postgresql

PostgreSQLが実行中であれば、以下のコマンドを実行してPostgreSQLシェルにログインします。

cd /etc/postgresql  
sudo -u postgres psql

PostgreSQLシェルにログインしたら、以下のPostgreSQLクエリを実行して新しいロール/ユーザー ‘mastodon‘ を作成します。また、デフォルトのパスワードを新しい強力なパスワードに変更してください。

CREATE USER mastodon CREATEDB;  
ALTER USER mastodon PASSWORD 'p4ssw0rd';

次に、以下のクエリを実行して新しいPostgreSQLユーザー/ロールが作成されたことを確認します。その後、’ ** ‘ を入力してPostgreSQLシェルから退出します。


du  

dq

以下の出力は、新しいPostgreSQLユーザー/ロール’mastodon’が作成されたことを示しています。

setup postgresql role/user

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)

download mastodon

次に、以下のコマンドを実行してMastodonのデプロイメントを設定し、Ruby依存関係をインストールします。

bundle config deployment 'true'  
bundle config without 'development test'  
bundle install -j$(getconf _NPROCESSORS_ONLN)

MastodonのRuby依存関係のインストールには時間がかかります。以下は、ターミナルで受け取る出力の例です。

setup deployment and install dependencies

MastodonのRuby依存関係をインストールしたら、以下のyarnコマンドを実行してMastodonのJavaScript依存関係をインストールします。

yarn install --pure-lockfile

次のような出力が表示されます。

install javascript dependneices

Ruby依存関係とJavaScript依存関係がインストールされたら、Mastodonのインストールを設定します。

以下のコマンドを実行して、Mastodonを本番環境用に設定します。

RAILS_ENV=production bundle exec rake mastodon:setup

Mastodonのいくつかの構成について尋ねられます。

  • 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メールサーバーの構成。

configure mastodon

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

generate assets

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

setup mastodon systemd

Mastodonサービスは現在、実行中で有効になっているはずです。以下のsystemctlコマンドを使用して確認します。

sudo systemctl status mastodon-web mastodon-sidekiq mastodon-streaming

次のような出力が表示されます。

mastodon-webサービスが実行中で有効です。

mastodon-web service

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

mastodon sidekiq service

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

mastodon streaming sertvice

すべての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.local

SSL証明書が生成されたら、以下のコマンドを実行してNginx構成を確認します。‘テスト成功 - 構文OK ‘という出力メッセージが表示される場合、適切な構成があることを意味します。次に、新しい変更を適用するためにNginxサービスを再起動します。

sudo nginx -t  
sudo systemctl restart nginx

verify nginx configuration

最後に、以下のsystemctlコマンドユーティリティを実行してNginxサービスを確認し、サービスが実行中で有効であることを確認します。

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

次のような出力が表示されます - Nginxサービスは現在実行中で有効です。Nginxサービスは起動時に自動的に実行されます。

verify nginx

すべての構成が完了したので、Mastodonは現在ウェブブラウザを介してアクセス可能です。

Mastodonインストールへのアクセス

ウェブブラウザを開き、Mastodonインストールのドメイン名(例: https://mastodon.howtoforge.local/)にアクセスします。Mastodonのデフォルトのホームページが表示されます。

mastodon homepage

サインイン ‘ ボタンをクリックしてユーザーを確認します。

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

mastodon login page

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

mastodon user dashboard

次に、Preferencesメニューをクリックしてユーザー設定ページに移動します。次に、左側のAdministrationメニューをクリックします。すると、以下のMastodon管理ページが表示されます。

現在のMastodonインストールで使用しているソフトウェアスタックの詳細が表示されます。

mastodon administration

結論

おめでとうございます!Debian 11サーバーにMastodonマイクロブログプラットフォームのインストールが完了しました。PostgreSQLをデータベースサーバーとして、NginxをリバースプロキシとしてMastodonをインストールしました。また、セキュアなHTTPS接続を介してMastodonのデプロイメントを保護しました。

すべてのインストールが完了したので、Mastodonの連合サポートのためのルールを設定できます。また、Mastodonインストールに追加のセキュリティレイヤーを追加することもできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。