Mastodon
  • Mastodonの使い方
    • Signing up for an account
    • Setting up your profile
    • Posting toots
    • Using the network features
    • Dealing with unwanted content
    • Promoting yourself and others
    • Set your preferences
    • その他の設定
    • Using Mastodon externally
    • Moving or leaving accounts
  • Mastodonの構築
    • マシンの準備
    • ソースからインストール
    • 環境設定
    • オプションのインストール
      • 全文検索
      • 秘匿サービス
      • シングルサインオン
    • セットアップを完了する
    • 開発者向けコマンドラインを利用する
    • 新しいバージョンへアップグレード
    • サーバのバックアップ
    • 新しいマシンへの移行
    • サーバーのスケールアップ
    • モデレーション
    • トラブルシューティング
  • アプリケーションの開発
    • Getting started with the API
    • Playing with public data
    • Obtaining client app access
    • ログイン
    • ガイドラインとベストプラクティス
    • ライブラリ等
  • コントリビューション
    • 技術的情報
    • 開発環境のセットアップ
    • ソースコードの構造
    • ルーティング
  • スペック
    • ActivityPub
    • WebFinger
    • Security
    • Microformats
    • OAuth
  • REST API
    • OAuthスコープ
  • API一覧
    • apps
      • oauth
    • accounts
      • bookmarks
      • favourites
      • mutes
      • blocks
      • domain_blocks
      • filters
      • reports
      • follow_requests
      • endorsements
      • featured_tags
      • preferences
      • suggestions
    • statuses
      • media
      • polls
      • scheduled_statuses
      • streaming
    • timelines
      • conversations
      • lists
      • markers
    • notifications
      • push
    • search
    • instance
      • trends
      • directory
      • custom_emojis
    • admin
    • proofs
    • oembed
  • APIエンティティ
    • Account
    • Activity
    • Admin::Account
    • Admin::Report
    • Application
    • Attachment
    • Card
    • Context
    • Conversation
    • Emoji
    • Error
    • FeaturedTag
    • Field
    • Filter
    • History
    • IdentityProof
    • Instance
    • List
    • Marker
    • Mention
    • Notification
    • Poll
    • Preferences
    • PushSubscription
    • Relationship
    • Report
    • Results
    • ScheduledStatus
    • Source
    • Status
    • Tag
    • Token

技術的情報

Mastodonのアーキテクチャに対する説明。

未完成です

MastodonはRuby on Railsアプリケーションです。フロントエンドにReact.jsを採用しています。これらのフレームワークの標準的な利用法に従っているので、RailsやReact.jsに触れたことがあるならば、驚くような物は何も無いでしょう。

開発者環境でMastodonを動かす最良の方法は、システムに依存関係をすべてインストールした方がDockerやVagrantを利用するよりも良いです。RubyやNode.js、Postgre、SQL、RedisはRailsアプリケーションによくある依存関係です。

環境

「環境」は特定のユースケースに対する構成設定値の集合です。環境の例: コードを変更するため、テストを走らせるためのdevelopment。エンドユーザーにコードをプレビューするためのstaging。エンドユーザー向けのproductionです。Mastodonにはdevelopment、staging、productionの3つの構成が付属しています。

RAILS_ENVはデフォルトでdevelopmentに設定されています。なので、Mastodonをdevelopmentで動かすときは何も付与する必要はありません。実際は、すべてのMastodonの構成設定はdevelopment用にデフォルト値が設定されており、.envファイルも何かを変更しない限り不要です。以下はdevelopmentモードとproductionモードの挙動の違いです。

  • Rubyコードを変更した時に自動で再読込します。変更を確認するためにRailsサーバーのプロセスを再起動する必要はないと言うことです。
  • 発生したすべてのエラーに対してブラウザにスタックトレースが表示されます。一般的なエラーページが表示されてエラー内容がわからないということはありません。
  • Webpack runs continuously and re-compiles JS and CSS assets when you change any of the front-end files, and the pages automatically reload
  • Webpackが継続的に動作します。JSとCSSアセットを変更時にリコンパイルし、ページを自動で再読込します。
  • キャッシュがデフォルトで無効になります。
  • メールアドレスがadmin@localhost:3000、パスワードがmastodonadminのアカウントがdb:seed中に自動で作成されます。

Dockerの構成設定はproduction環境用に設定されていることに注意してください。つまり、Dockerは開発環境として非常に向いていないということです。逆にVagrantはdevelopmentを目的にしており、productionには不向きです。

最終更新 February 11, 2020 · このページを改善する
他の言語: English

Merch

Tシャツとステッカー(英語)

Mastodonに参加しよう · ブログ · ·

ソースコード · CC BY-SA 4.0 · インプリント