お知らせ

現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
2025/09/15 22:20 ソフトウェア::Mastodon

ハマったので残しておく。

前提条件

  1. GitHubにMastodon本家をForkしたリポジトリがあり、そこをベースに運用している。
  2. git remote -vの状態が以下の通りで、origin/mainが本番運用ブランチ。
    mastodon        https://github.com/mastodon/mastodon.git (fetch)
    mastodon        https://github.com/mastodon/mastodon.git (push)
    origin  https://github.com/Lycolia/lycodon.git (fetch)
    origin  https://github.com/Lycolia/lycodon.git (push)
    

やり方

  1. マージブランチを作る
    git checkout -b merge-latest
    
  2. 本家を取ってくる
    git fech mastodon
    
  3. マージブランチにマージする
    git merge mastodon/main
    
  4. セットアップする
    # swich user
    sudo su - mastodon
    # install
    bundle install
    yarn install
    # DBがアカンことがあるので叩いておく
    RAILS_ENV=production bundle exec rails db:migrate
    # いつものリビルド
    RAILS_ENV=production bundle exec rails assets:clobber
    RAILS_ENV=production bundle exec rails assets:precompile
    exit
    # 再起動
    sudo systemctl restart mastodon-web mastodon-sidekiq mastodon-streaming
    
  5. 動作確認OKならgit pushしてGitHub上で自分のところのmainにマージする。デフォルトでは本家に向くので注意
  6. もう一度、前述4番のセットアップコマンド一式を流し、問題なければ終わり

トラブルシュート

正常に動いていない場合

ジャーナルを見てエラー原因を特定する。新規要素がらみのパラメーターが出てたらDBが怪しいのでRAILS_ENV=production bundle exec rails db:migrateで直る可能性がある。

sudo journalctl -u mastodon-web -f

なんか昔のやり方が使えなくなってたので調べたメモ。

確認環境

Env Ver
OS Ubuntu 24.04.3 LTS
Docker version 28.1.1, build 4eba377
Docker Compose v2.35.1
Mastodonのバージョン v4.5.0-alpha.2
Mastodonのコミットハッシュ 06803422da3794538cd9cd5c7ccd61a0694ef921

手順

DEVELOPMENT.md#dockerの手順通りにやると行ける。

docker compose -f .devcontainer/compose.yaml up -d
docker compose -f .devcontainer/compose.yaml exec app bin/setup
docker compose -f .devcontainer/compose.yaml exec app bin/dev

コンテナへのアタッチ方法

# 方法1
docker compose -f .devcontainer/compose.yaml exec app zsh

# 方法2
cd .devcontainer
docker compose exec app zsh

VSCodeがあるならDockerやRemoteほげほげ系の拡張を使い、devcontainer-appにAttach Shellしてもよい。

検証ユーザーの作成

  1. 次のコマンドでユーザーを作る
    ./bin/tootctl accounts create hoge --email hoge@example.com --confirmed
    
  2. ユーザーの承認を行い、必要に応じてパスワードを使いやすいものに変更する
    rails console
    user = Account.find_by(username: 'hoge').user
    user.approve!
    # PW変更ここから
    user.password = 'password'
    user.skip_confirmation!
    # PW変更ここまで
    user.save!
    quit
    

フロントエンドのビルドとサーバー起動

bin/rails assets:precompile
bin/dev

トラブルシューティング

localhostではアクセスできるが、マシンのホスト名やhoge.testのようなローカルドメインでアクセスできない

.env.developmentALTERNATE_DOMAINS=hoge.testの行を追加することで他のドメインでもアクセスできる。

この設定があるとMastodonを別環境で動かしててリモートからドメインアクセスする場合に便利。

ActiveRecord::PendingMigrationErrorなど、ActiveRecord関係のエラーが出る

コンテナの中でrails db:setupを叩くことで解決する。

Unable to load application: NameError: uninitialized constant LetterOpenerWebというエラーが出る

リポジトリルートにあるdocker-compose.ymlを使うと発生するので、.devcontainer/compose.yamlを使う事で解決する。

あとがき

検証用にバニラなMastodon環境が欲しくて作ってみたが昔と変わっていて地味にハマった…。

2025/08/27 09:13 ソフトウェア::OpenWrt

確認環境

Env Ver
OpenWrt 24.10.0

手順

  1. LuCIを開きSystem→Administrationを開き、SSH-Keysタブを開く
  2. Add Keyの左にあるテキストボックスに公開鍵を張り付ける
  3. SSH Accessアクセスタブを開く
  4. Password authenticationのチェックを外す
  5. Save & Applyを押す
  6. SSHにパスワード接続できなくなっていることを確認
  7. SSHに鍵認証接続できるようになっていることを確認

あとがき

この状態ではパスワード認証であるLuCI本体がセキュリティホールになっているため、LuCIも公開鍵認証で入れるようにできるとより理想的に思うが、どのみちローカル以外の接続は弾いているため、そこまでしなくてもいいかというのも思わなくはない。

どこかを踏み台にされない限り不正な攻撃を受けることはないし、そこまで考えるか…?みたいな。

adiaryの痒い所をちょこちょこ直している。上の画像にはないがCtrl + Vでクリップボードの画像をアップロードできる機能も付けている。

変更差分はもっぱらGitHubで管理していて、今日も最新版に追従させたところだ。

最近はOGPを強制出力するようにしたり、今日はSyntax HighlightをPrism.jsに置き換えるなどしていた。

adiaryはDiscordのようにChromeに詐称してくるBOT相手だとOGPが出ないし、標準のSyntax Highlightはしょっぱい。

比較用に元のやつを撮っておくのを忘れてしまったが、正直かなり良くなったと思う。

スマホで見たときに行折れせずスクロールできるようになったのも良い。

2025/08/25 03:13 ソフトウェア::Mastodon

Mastodonの最大アップロードサイズを変更する

確認環境

Env Ver
Mastodon v4.5.0-alpha.2
nginx 1.26.1

手順

  1. Mastodonのapp/models/media_attachment.rbIMAGE_LIMIT, VIDEO_LIMIT, MAX_VIDEO_MATRIX_LIMIT, MAX_VIDEO_FRAME_RATE, MAX_VIDEO_FRAMES辺りをいい感じに直す
  2. nginxのmastodon用設定を開き、client_max_body_size 100m;をいい感じに直す
  3. mastodonとnginxを再起動する
  4. 適当にデカいファイルをあげて確認する
  5. 確認用ファイルを消したい場合は、public/system/media_attachments/files/にあるので消す

Mastodonの最大投稿文字数を増やす

確認環境

Mastodon v4.5.0-alpha.2

手順

投稿可能な文字数を増やすを参照。

注目タブを固定した投稿に変更する

確認環境

Mastodon v4.5.0-alpha.2

やり方

割と力押してやったのでイケていない。

  1. 変更時の差分を参考に改造
  2. 資材のビルドを行い、Webを再起動

    RAILS_ENV=production bundle exec rails assets:clobber
    RAILS_ENV=production bundle exec rails assets:precompile
    

必要に応じてsudo chown -R mastodon /home/mastodonで所有権を戻しておく。

TL周りのCSSをいじる

確認環境

Mastodon v4.5.0-alpha.2

手順

  1. app/javascript/styles/mastodon/components.scssを適当に編集
  2. 資材のビルドを行い、Webを再起動

    RAILS_ENV=production bundle exec rails assets:clobber
    RAILS_ENV=production bundle exec rails assets:precompile
    

必要に応じてsudo chown -R mastodon /home/mastodonで所有権を戻しておく。