Mastodonで常用するコマンド一覧（non-docker版）2020年3月14日 更新

#個人的な備忘録でございます。

### ~~dailyコマンド~~
```
(bundle exec) rake mastodon:daily
```

### 外部インスタンスユーザのアバターとヘッダ画像を更新
```
RAILS_ENV=production bundle exec rails mastodon:media:redownload_avatars
```

### ローカルに保存されているリモートメディアのキャッシュを削除
```
RAILS_ENV=production bundle exec rake mastodon:media:remove_remote
```

### 存在しないリモートアカウント情報を確認なしでローカルから削除
```
RAILS_ENV=production bundle exec rake mastodon:maintenance:purge_removed_accounts -- --force
```

### ~~どうせLTLで見えないしストレージがもったいないから~~サイレンスアカウントのメディアファイルを削除する
```
RAILS_ENV=production bundle exec rake mastodon:media:remove_silenced
```

### ~~dailyコマンドを分解~~
```
RAILS_ENV=production bundle exec rake mastodon:feeds:clear
RAILS_ENV=production bundle exec rake mastodon:media:clear
RAILS_ENV=production bundle exec rake mastodon:users:clear
RAILS_ENV=production bundle exec rake mastodon:push:refresh
```

### 現在のローカルリポジトリの状態の確認
```
git status
```
### 変更されてcommitされていないファイルを一時的に退避
```
git stash
```
### リモートリポジトリの情報を更新
```
git fetch
```
### git pullでエラーが出てしまったりしちゃったり
参考URL
- 【Git】git pullしてYou are not currently on a branch.が出たときに、対処したことメモ
https://qiita.com/C_HERO/items/3aa64c051d65034ac06f

### dailyコマンドでエラーが出た場合
```
$ bundle install --deployment --with development
$ RAILS_ENV=development bundle exec rails db:setup
```
もう必要ないかな？

### SSL証明書の手動更新
```
service nginx stop
certbot renew
service nginx start
```
### Mastodonのアップデート（最近?）
```
# su - mastodon
$ cd live
/live$ git fetch && git checkout vX.X.X
/live$ git push https://github.com/hogehoge/mastodon.git master:master
Username for 'https://github.com':
Password for 'https://hogehoge@github.com':
/live$ bundle install 
/live$ exit
# systemctl restart mastodon-*.service
```
楽になりましたねぇ。

### どうもMastodonの挙動がおかしいが原因がわからん（脳筋）
1.まずはcacheをクリアしてみる

```
$ RAILS_ENV=production bin/tootctl cache clear
```
2.とりま最新masterでprecompileしてみようか
3.Ruby Gem を再インストールしてみる

```
$ bundle pristine
```
4.Mastodonをバージョンダウンしてみる？
5.こうなったらRubyごと再構築してみる（危険度高）
参考URL
- Installing from source
https://docs.joinmastodon.org/admin/install/

```
# su - mastodon
mastodon@hoge$ rm -rf .rbenv
mastodon@hoge$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
mastodon@hoge$ cd ~/.rbenv && src/configure && make -C src
mastodon@hoge$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
mastodon@hoge$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
mastodon@hoge$ exec bash
mastodon@hoge$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

※ Rubyのバージョンは動作確認できている最新版で
mastodon@hoge$ RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.4
mastodon@hoge$ rbenv global 3.0.4

※ gemのアップデート
mastodon@hoge$ gem update --system

※bundlerのインストール
mastodon@hoge$ gem install bundler --no-document

※完了
mastodon@hoge$ exit
```
mastodonをprecompileしてサービス再起動

6.無理ゲー
Discordの鯖缶工場で諸先輩鯖缶に助けを求める


###メディアファイル アップロード上限緩和（※リモートでの他サーバに対する負荷を考慮すべし）

```
app/models/media_attachment.rb

41行目付近
#  IMAGE_LIMIT = 10.megabytes
#  VIDEO_LIMIT = 40.megabytes
   IMAGE_LIMIT = 100.megabytes
   VIDEO_LIMIT = 100.megabytes

69行目付近
  IMAGE_STYLES = {
    original: {
#     pixels: 2_073_600, # 1920x1080px
      pixels: 8_294_400, # 3840x2160px 4K 
      pixels: 33_177_600, # 7680x4320px 8K

105行目付近
  VIDEO_FORMAT = {
    format: 'mp4',
    content_type: 'video/mp4',
    convert_options: {
      output: {
        'loglevel' => 'fatal',
        'movflags' => 'faststart',
        'pix_fmt' => 'yuv420p',
        'vf' => 'scale=\'trunc(iw/2)*2:trunc(ih/2)*2\'',
        'vsync' => 'cfr',
        'c:v' => 'h264',
#       'maxrate' => '1300K',
#       'bufsize' => '1300K',
#       'b:v' => '1300K',
        'maxrate' => '4000K',
        'bufsize' => '4000K',
        'b:v' => '4000K',


```
```
app/javascript/mastodon/utils/resize_image.js

3行目
const MAX_IMAGE_PIXELS = 8294400; // 3840×2160px
```
```
./etc/nginx/nginx.conf or ./etc/nginx/sutes-enable/*.conf

client_max_body_size 100m;
```