├── Implementation.md ├── MisskeyAssets.md └── misskey ├── BrokenDependencies.md ├── DevelopCommand.md ├── EmojiEntities.md ├── Misc.md ├── Setup-CloudFlareNginx.md ├── Setup-Dolphin.md ├── Setup-Meisskey-Quick.md ├── Setup-Ubuntu1804-Dolphin.md ├── Setup-Ubuntu1804-Quick.md ├── Setup-Ubuntu1804-v11.md ├── Setup-Ubuntu2004-Quick.md ├── Setup-Ubuntu_Debian.md ├── assets ├── cf1.png ├── cf21.png └── cf22.png └── max-old-space-size.md /Implementation.md: -------------------------------------------------------------------------------- 1 | ## pub-relay-prototype 2 | 3 | https://source.joinmastodon.org/mastodon/pub-relay-prototype 4 | 5 | - Ruby実装、動作環境はたぶんほぼMastodonと同じ。 6 | - メンテはされていない。 7 | - 挙動はたぶんREADMEの通り。 8 | - HTTP-SignatureにalgorithmフィールドがないのでMisskeyでは動かない。 9 | 10 | ## pub-relay-prototype for taruntarun 11 | 12 | https://source.joinmastodon.org/mayaeh/pub-relay-prototype/tree/for-taruntarun 13 | - pub-relay-prototypeのfork 14 | - https://relay.taruntarun.net/ で使われている。 15 | - メンテされている。 16 | - algorithmの問題が修正されている。 17 | - Move ActivityをForwardする 18 | 19 | ## pub-relay 20 | 21 | https://source.joinmastodon.org/mastodon/pub-relay 22 | 23 | - たぶんリファレンス実装 24 | - pub-relay-prototypeのCrystal移植? 25 | - HTTP-SignatureにalgorithmフィールドがないのでMisskeyでは動かない 26 | - READMEの`Only payloads that contain a linked-data signature will be re-broadcast`は多分間違いでなんでもforwardする 27 | - ちょっと動かすのに苦労する 28 | - 実装はシンプルでわかりやすいが、キャッシュとかキューとか輻輳制御とかはほぼないので注意。 29 | 30 | ## pub-relay (fork by noellabo) 31 | 32 | https://github.com/noellabo/pub-relay 33 | 34 | - 主な挙動的にはLitePub (Pleroma) サポートと対象Activityの追加など 35 | - 2021/11現在、LitePubは最近のPleromaでは動かない模様。 36 | - 2021/11現在 relay.fedibird.com で稼働しているものは `Sep 21, 2020` あたりのコミットのものと思われるので注意。 37 | - `0.2.0`を名乗ってUser-Agentにdeliver先のホストを指定してしまっている場合おそらくこのバージョン 38 | - このバージョンの挙動検証用のDocker https://github.com/mei23/pub-relay/tree/n202009 (Crystalのバージョンとかはちょっと違うけど) 39 | - publishedを付けないとActivityがforwardされない バグ? 40 | - LitePub fallbackの挙動がちょっとあやしい 41 | 42 | ## pub-relay (mei23) 43 | 44 | https://github.com/mei23/pub-relay 45 | 46 | - pub-relay (fork by noellabo) のfork 47 | - noellabo版からの主な挙動変更はLitePubの廃止とバグ修正 48 | - 結果的にはpub-relayに対象のActivity typeが追加されてバグが修正された感じ。 49 | 50 | -------------------------------------------------------------------------------- /MisskeyAssets.md: -------------------------------------------------------------------------------- 1 | 2 | ## Mi 3 | 4 | ### mi.svg 5 | SVG文字部分のみ 余白なし 色情報なし 6 | 7 | ### ホームアイコン 8 | 青地に白のMi 余白あり 9 | - `apple-touch-icon.png` 10 | 256x256 11 | - `icons/[16-256].png` 12 | ホーム用 manifest.jsonで使用 13 | 14 | ### ファビコン 15 | 透過に青 余白なし 16 | - `favicon.ico` 17 | ファビコンとして使用 18 | - `favicon/favicon.png` 19 | 未使用 256x256 20 | - `favicon/favicon.svg` 21 | 未使用 22 | 23 | ### タイトルロゴ 24 | Misskeyの文字 25 | - `title.png` 26 | タイトルに使用 透過 余白なし 27 | - `api-doc.png` 28 | 透過 余白あり APIドキュメントで使用 29 | 30 | ### マスコット 31 | - `ai.png` 32 | 藍ちゃん立ち絵 / 透過 / トップ画像 / 変更可(mascotImageUrl) 33 | - `ai-orig.png` 34 | 藍ちゃん立ち絵 / 透過なし / 未使用 35 | 36 | 37 | -------------------------------------------------------------------------------- /misskey/BrokenDependencies.md: -------------------------------------------------------------------------------- 1 | # 壊れるdependencies 2 | 3 | Misskey, Dolphin 各バージョンでUpdateすると不具合の出るdependencies 4 | 5 | バージョン, ロックファイルの状態, コードの状態によって出る出ないがあるのでここにまとめて記述 6 | 7 | ### commander v5.x 8 | 9 | マイグレーションが作成できない https://github.com/syuilo/misskey/issues/6337 10 | 11 | 他の依存関係も 2.x あたり指定してたりするので、影響なくても上げるのは微妙。 12 | 13 | ### gulp-terser v1.2.1 14 | 15 | terserのバージョン指定が`^4.0.0` => `>=4` になってるが、`5.0.0`に解決されるとエラーになる。 16 | 17 | ### css-loader v4.x 18 | `esModule`オプション 19 | https://github.com/syuilo/misskey/commit/60736bab2ac974c2d2c2c106d297fa67fdaff87a#diff-b0ba29b245f5327bca2d51ac8bbb0821 20 | 21 | https://github.com/syuilo/misskey/issues/6613 22 | 23 | なんかまだ他のバグ多そう 24 | 25 | ### koa-router 26 | 27 | v9.1.0 AP/Web両対応パスが壊れる https://github.com/syuilo/misskey/issues/6533 28 | 29 | v9.x の時点でパスマッチにBreaking changes あり 30 | 31 | そもそも、他のプラグインと組み合わせるとtype errorになりがち 32 | 33 | 34 | -------------------------------------------------------------------------------- /misskey/DevelopCommand.md: -------------------------------------------------------------------------------- 1 | 2 | ```sh 3 | # 一新 4 | yarn install && ./data/newver && yarn build && yarn start 5 | 6 | yarn install --prod=false && ./data/newver && yarn clean && yarn build && yarn start 7 | 8 | # server-sideのみ 9 | yarn gulp && yarn start 10 | 11 | 12 | ``` 13 | 14 | 直前のマイグレーションを戻す 15 | ```sh 16 | npx ts-node ./node_modules/typeorm/cli.js migration: 17 | ``` 18 | 19 | ### To use Font Awesome icons 20 | 21 | Find the icon you want to add 22 | https://fontawesome.com/icons?d=gallery&m=free 23 | 24 | For example, if you want to add a `filter` ... 25 | 26 | Search IconDefinition 27 | ```sh 28 | $ find node_modules/@fortawesome -type f -name index.d.ts | xargs grep IconDefinition | grep -i filter 29 | node_modules/@fortawesome/free-solid-svg-icons/index.d.ts:export const faFilter: IconDefinition; 30 | ``` 31 | 32 | in .vue ... 33 | ```ts 34 | // import it 35 | import { faFilter } from '@fortawesome/free-solid-svg-icons'; 36 | 37 | data() { 38 | return { 39 | faFilter, 40 | }; 41 | }, 42 | 43 | // use it 44 | 45 | ``` 46 | -------------------------------------------------------------------------------- /misskey/EmojiEntities.md: -------------------------------------------------------------------------------- 1 | 2 | ### API emoji/list で使われてるやつ 3 | V10, v11 にあり 4 | ``` 5 | name: nameの部分 6 | host: hostの部分 (v10:Unicode, v11:Punycode) 7 | url: URL 8 | id: DBのid (あまり使わない) 9 | aliases: ローカルのMisskey用 10 | ``` 11 | 12 | ### API emojis, emojis/recommendation で使われてるやつ 13 | - XEmojiと呼んでる 14 | - 実際のクライアント提示に適した形式 15 | m544 16 | ``` 17 | name: 'name' or 'name@host' (hostは常にPunycode, hostが省略されている場合はローカル) 18 | url: リモート分は'/files/name@host/time.png'のProxy用URLになる 19 | ``` 20 | 21 | ### 添付用 で使われてるやつ 22 | - REmojiと呼んでる 23 | - Note, User に emojis として添付するための形式 24 | - カスタム絵文字とアバター絵文字を扱う 25 | - クライアントがNote中の絵文字を表示する時には、本文に登場する`:name:`を`url`にマップすればいい。 26 | - m544 27 | ``` 28 | name: 添付元のNote等に記述されている形式 (host部分が省略されている場合は、Noteの所属hostを使用することを意味する, Punycode) 29 | host: nameのhost部分 (Punycode) 30 | url: リモート分は'/files/name@host/time.png'のProxy用URLになる 31 | resolvable: 'name' or 'name@host' (hostは常にPunycode, hostが省略されている場合はローカル XEmojiのnameと同じ) 32 | ``` 33 | -------------------------------------------------------------------------------- /misskey/Misc.md: -------------------------------------------------------------------------------- 1 | # Misskey, Dolphin 共通のメモ 2 | 3 | 特に明記がない限り Misskey v10-12, Dolphin全てに該当すると思うわ 4 | 個人の感想だわ 5 | 6 | ### configのportとかの設定 7 | Misskey app自体でhttpsを喋る機能があったりするけど普通に`port: 3000`とかにして 8 | nginxとかでリバースプロキシするのがおすすめ。 9 | 10 | ### 動く環境 11 | Windowsでも動くくらいだから条件満たせばどこでも動くはず 12 | 悩んだらUbuntu 18.04でいいんじゃないかしら 13 | Arch Linuxぽいのも稀に見る 14 | 15 | ### バージョンアップ時のclean 16 | バージョンアップ時に`yarn clean`を流すと 17 | code splittingで分割されたassetsのjsが404 (キャッシュの状況による) になる問題があるので 18 | 広く公開する環境では非Dockerで`yarn clean`を回さないでバージョンアップしていったほうがいいかも 19 | `clean`しないデメリットは、APIが廃止された時にいつまでも残っちゃうとか 20 | 21 | ### コードを改修したら 22 | コードを改修したら (特にクライアント側コード) バージョンを変えないとうまく反映されない 23 | `x.y.z-なんたら`で`なんたら`の部分をユニークなのに変えていくといいかも 24 | 25 | リポジトリURLの設定は、v11にはあったけどv12やDolphinにはなさそうだからソースコード検索して変えるしかないかも。 26 | 27 | ### チューニング 28 | 基本不要 29 | 30 | #### UV_THREADPOOL_SIZE 31 | ただ、AP deliver以外の名前解決がデフォルト2スレッドなので場合によっては増やしたほうがいいかも。 32 | 33 | Environment Variable `UV_THREADPOOL_SIZE=size`で設定できて、設定値の半分が名前解決に使われる。 34 | https://nodejs.org/api/cli.html#cli_uv_threadpool_size_size 35 | 36 | systemdのunitファイルなんかで設定するといいかも 37 | 値は例えば16とか32とか。 38 | 39 | #### configのパフォーマンス系の設定項目 40 | 41 | ##### worker process数 42 | ``` 43 | clusterLimit: 1 44 | ``` 45 | worker processの数 デフォルトの1で大丈夫 46 | 1だとNodeの処理にCPU1スレッド分しか使えないらしいけど、たいていDBとか別プロセスの画像処理の方が重いので大丈夫 47 | v11-, Dolphinでガンガン増やすとPostgreSQLの接続が足りなくなったりするので注意 48 | 49 | 50 | ##### ジョブの並列度 51 | ``` 52 | deliverJobConcurrency: 128 53 | inboxJobConcurrency: 16 54 | ``` 55 | それぞれリモート配信/受信のジョブの並列度 56 | `ここで設定した値 x clusterLimit x サーバー数`になる 57 | 変える必要ないと思う、流量を制御したいなら下の値をいじったほうがいい 58 | 59 | 60 | ##### ジョブの流量 61 | ``` 62 | deliverJobPerSec: 128 63 | inboxJobPerSec: 16 64 | ``` 65 | それぞれリモート配信/受信のジョブを1秒あたりに処理する数 (インスタンス全体での値) 66 | あまり連合の処理で負荷を上げたくなければ少なくするといいかも 67 | 68 | ※ Dolphinにはない設定があるかも 69 | 70 | ### サーバーの発信IPアドレスを隠したい 71 | 72 | Proxy設定できるけどNATとかVPNしたほうが無難 73 | AWSでNATセグメントの下に入れるとか 74 | -------------------------------------------------------------------------------- /misskey/Setup-CloudFlareNginx.md: -------------------------------------------------------------------------------- 1 | ## nginxとCloudFlareのSSLの組み合わせ方 2 | 3 | ### 方法1: snakeoilとFullを組み合わせる 4 | Debian/Ubuntuなんかは簡単に自己署名が発行できるのでそれと組み合わせる 5 | 6 | nginx側ではDebian/Ubuntuの自己署名証明書を設定して 7 | 8 | /etc/nginx/sites-enabled/misskey.nginx などが以下になってることを確認 9 | ``` 10 | ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; 11 | ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; 12 | ``` 13 | ※ 該当ファイルがなければ`sudo apt install ssl-cert`で入れられる 14 | 15 | CloudFlare側ではmodeとしてFullを選択する 16 | ![cf1](assets/cf1.png) 17 | 18 | 19 | ### 方法2: origin certificateとFullを組み合わせる 20 | CloudFlareで発行してくれる CF<=>origin用の証明書を使う 21 | 22 | CloudFlareでorigin certificateを発行する 23 | ![cf22](assets/cf22.png) 24 | 25 | 発行したcertificateをnginx側にインストール&設定する 26 | 27 | CloudFlare側ではmodeとしてFullを選択するか・・・ 28 | ![cf1](assets/cf1.png) 29 | 30 | 厳密に照合したい場合はFull (strict)を選択する。 31 | こちらを選んだ時は、他のoriginサイトがある場合そちらにもちゃんと証明書を設定する必要があるので注意。 32 | ![cf21](assets/cf21.png) 33 | 34 | ### メモ 35 | デフォルト値はウィザードを実行した時に決まるぽい 36 | -------------------------------------------------------------------------------- /misskey/Setup-Dolphin.md: -------------------------------------------------------------------------------- 1 | # Dolphin セットアップ Ubuntu 2 | 3 | ## 手順 4 | 5 | ### Ubuntu 22.04を用意する 6 | 7 | - VPSやクラウドで、FW付きで(Allow 22,80,443)、サーバーインストールを想定 8 | - メモリ512MB+スワップ(1-2GB)で余裕で動くけど、メモリ1GBあった方がいい。 9 | - 20.04でも大丈夫 10 | 11 | ### 管理者ユーザーで以下を実行 12 | 13 | #### dolphin用ユーザー作成 14 | ```sh 15 | sudo adduser --disabled-password --disabled-login dolphin 16 | ``` 17 | 18 | #### Node.jsインストール 19 | 20 | https://github.com/nodesource/distributions/blob/master/README.md#debian-and-ubuntu-based-distributions 21 | ※ `NODE_MAJOR=18` にしてインストール 22 | 23 | ### yarnインストール 24 | ```sh 25 | sudo npm install -g yarn 26 | 27 | ``` 28 | 29 | #### その他の必要パッケージをインストール 30 | ```sh 31 | sudo apt -y install redis git build-essential nginx ssl-cert letsencrypt ffmpeg postgresql 32 | ``` 33 | 34 | #### DBロールとユーザーの作成 35 | 36 | ```sh 37 | sudo -u postgres psql 38 | ``` 39 | 40 | ```sql 41 | # ロールの作成と確認 (passwordは適切に置き換える) 42 | create role dolphin LOGIN CREATEDB PASSWORD 'password'; 43 | \du 44 | 45 | # DB (dolphin) の作成と確認 46 | create database dolphin owner dolphin; 47 | \l 48 | 49 | # 接続終了 50 | \q 51 | ``` 52 | 53 | 接続を試したい場合は以下コマンド後に 54 | ```sh 55 | psql --host localhost --username dolphin --password 56 | # パスワードを入力 57 | # 接続したら \q または Ctrl+D で抜けられます 58 | ``` 59 | 60 | #### dolphinユーザーでdolphinのインストールをする 61 | ```sh 62 | # dolphinユーザーに変更 63 | sudo su - dolphin 64 | 65 | # リポジトリクローン (ここではfork版をcloneしてます) 66 | git clone https://github.com/mei23/dolphin.git 67 | 68 | # ディレクトリ移動 69 | cd ~/dolphin 70 | 71 | # コンフィグコピー 72 | cp .config/example.yml .config/default.yml 73 | 74 | # コンフィグ編集(vimじゃなくてnanoとかでもいい) 75 | vim .config/default.yml 76 | 77 | ``` 78 | 79 | コンフィグ編集はとくに以下を変更する 80 | 81 | ```yml 82 | # urlはクライアントから見えるURLに変更する 83 | # example.com は 公開するホスト名に置き換える 84 | # httpsです 85 | url: https://example.com/ 86 | 87 | # ポートは1024以上の任意のポートに置き換える 88 | port: 3000 89 | 90 | # db設定は少なくとも pass は置き換える必用があるはず 91 | db: 92 | host: localhost 93 | port: 5432 94 | 95 | # Database name 96 | db: dolphin 97 | 98 | # Auth 99 | user: dolphin 100 | pass: 設定したパスワード 101 | ``` 102 | 103 | ### 編集が終わったら、引き続きdolphinユーザーでインストールとビルドを行う 104 | ```sh 105 | cd ~/dolphin 106 | 107 | # パッケージインストール 108 | yarn install 109 | 110 | # ビルド 111 | NODE_ENV=production yarn build 112 | # メモリが512MBくらいの環境とかで、heapがなんたらと言われて失敗するときは以下のコマンドを使用 113 | NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production yarn build 114 | 115 | # DBスキーマ作成 116 | yarn migrate 117 | 118 | # 起動してみる 119 | yarn start 120 | # Now listening on port 3000 on https://example.com などと出ればOK 121 | # 正常に起動することを確認して Ctrl+Cで 終了する 122 | 123 | # 管理者ユーザに戻る 124 | exit 125 | ``` 126 | 127 | ### nginxの設定 128 | 129 | 管理者ユーザーで実施 130 | ```sh 131 | sudo cp ~dolphin/dolphin/docs/examples/dolphin.nginx /etc/nginx/sites-enabled/ 132 | # 本当は sites-available にコピーして sites-enabled からシンボリックリンクが流儀 133 | 134 | # example.tldをドメインで置き換える 135 | sudo vim /etc/nginx/sites-enabled/dolphin.nginx 136 | ``` 137 | 138 | 引き続き 139 | ```sh 140 | # Nginxをリロード 141 | sudo service nginx reload 142 | ``` 143 | 144 | ### systemdで起動するように設定する 145 | 146 | ```sh 147 | # serviceファイルをコピー 148 | sudo cp ~dolphin/dolphin/docs/examples/dolphin.service /etc/systemd/system/ 149 | 150 | # 再読込して自動起動するように設定 151 | sudo systemctl daemon-reload 152 | sudo systemctl enable dolphin 153 | 154 | # サービスの起動 155 | sudo systemctl start dolphin 156 | 157 | # 状態の確認 158 | sudo systemctl status dolphin 159 | ``` 160 | 161 | CloudFlareとの間でSSL/TLS設定をする 162 | https://github.com/mei23/memo/blob/master/dolphin/Setup-CloudFlareNginx.md の方法1などを参照 163 | 164 | 起動後Webブラウザで実際にアクセスしてみて動作が確認できれば完了 165 | 166 | ### バージョンアップ方法 167 | 168 | ```sh 169 | # dolphinユーザーでなければ変更する 170 | sudo su - dolphin 171 | 172 | cd ~/dolphin 173 | 174 | # 変更を取得&マージ 175 | git pull 176 | 177 | # 依存関係の更新 178 | yarn install 179 | 180 | # ビルド 181 | NODE_ENV=production yarn build 182 | 183 | # DBマイグレーション 184 | yarn migrate 185 | 186 | # 管理者ユーザーに戻る 187 | exit 188 | 189 | # dolphinを再起動する 190 | sudo systemctl restart dolphin 191 | ``` 192 | -------------------------------------------------------------------------------- /misskey/Setup-Meisskey-Quick.md: -------------------------------------------------------------------------------- 1 | 2 | # Meisskey セットアップ Ubuntu 簡単編 3 | 4 | ## 手順 5 | 6 | ### Ubuntu 22.04を用意する 7 | 8 | - VPSやクラウドで、FW付きで(Allow 22,80,443)、サーバーインストールを想定 9 | - 少なくとも `物理メモリ1GB + スワップ2GB` くらいあるとよい 10 | - amd64/arm64いずれでも動きます 11 | 12 | ### 管理者ユーザーで以下を実行 13 | 14 | #### Misskey用ユーザー作成 15 | ```sh 16 | sudo adduser --disabled-password --disabled-login misskey 17 | ``` 18 | 19 | #### Node.jsインストール 20 | 21 | https://github.com/nodesource/distributions/blob/master/README.md#debian-and-ubuntu-based-distributions 22 | ※ `NODE_MAJOR=18` にしてインストール 23 | 24 | #### pnpmインストール 25 | ```sh 26 | sudo npm i -g pnpm 27 | ``` 28 | 29 | #### MongoDBインストール 30 | https://www.mongodb.com/docs/v6.0/tutorial/install-mongodb-on-ubuntu/#install-mongodb-community-edition 31 | 32 | 33 | ```sh 34 | # 開始する 35 | sudo systemctl start mongod 36 | 37 | # MongoDBを自動起動するようにする 38 | sudo systemctl enable mongod 39 | ``` 40 | 41 | #### その他の必要パッケージをインストール 42 | ```sh 43 | sudo apt -y install redis git build-essential nginx ssl-cert letsencrypt ffmpeg 44 | ``` 45 | 46 | #### misskeyユーザーに変更 47 | ```sh 48 | sudo su - misskey 49 | ``` 50 | 51 | ### misskeyユーザーで以下を実行 52 | ```sh 53 | # リポジトリクローン (めいすきーforkをcloneしてます) 54 | git clone -b mei-m544 https://github.com/mei23/misskey.git 55 | 56 | # ディレクトリ移動 57 | cd ~/misskey 58 | 59 | # コンフィグコピー 60 | cp .config/example.yml .config/default.yml 61 | 62 | # コンフィグ編集(vimじゃなくてnanoとかでもいい) 63 | vim .config/default.yml 64 | ``` 65 | 66 | コンフィグ編集はとくに以下を変更する 67 | 68 | ```yml 69 | # urlはクライアントから見えるURLに変更する 70 | # example.com は 公開するホスト名に置き換える 71 | # httpsです 72 | url: https://example.com/ 73 | 74 | # ポートは1024以上の任意のポートに置き換える 75 | port: 3000 76 | 77 | # mongodb 今回は認証をしないのでuser,passはコメントアウトか削除する 78 | mongodb: 79 | host: localhost 80 | port: 27017 81 | db: misskey 82 | 83 | # redis 今回は認証をしないので(というか対応してない)passはコメントアウトか削除する 84 | redis: 85 | host: localhost 86 | port: 6379 87 | ``` 88 | 89 | ### 編集が終わったら、引き続きmisskeyユーザーでインストールとビルドを行う 90 | ```sh 91 | cd ~/misskey 92 | 93 | # パッケージインストール 94 | NODE_ENV=production pnpm i 95 | 96 | # ビルド 97 | NODE_ENV=production pnpm build 98 | # heap out of memory (exit code 134) でビルドできない場合は以下のコマンドを使用 (2048は必要に応じて増やしてください) 99 | # NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production pnpm build 100 | 101 | # ログアウトして管理者ユーザに戻る 102 | exit 103 | ``` 104 | 105 | ### nginxの設定 106 | 107 | 管理者ユーザーで実施 108 | ```sh 109 | sudo cp ~misskey/misskey/docs/examples/misskey.nginx /etc/nginx/sites-enabled/ 110 | # 本当は sites-available にコピーして sites-enabled からシンボリックリンクが流儀 111 | 112 | # example.tldをドメインで置き換える 113 | sudo vim /etc/nginx/sites-enabled/misskey.nginx 114 | ``` 115 | 116 | 引き続き 117 | ```sh 118 | # Nginxをリロード 119 | sudo service nginx reload 120 | ``` 121 | 122 | ```sh 123 | # 管理者 から misskeyユーザーに変更する 124 | sudo su - misskey 125 | ``` 126 | 127 | ### misskeyユーザーでMisskeyを起動してみる 128 | 129 | ```sh 130 | cd ~/misskey 131 | 132 | # 起動してみる 133 | pnpm start 134 | # Now listening on port 3000 on https://example.com などと出ればOK 135 | # 正常に起動することを確認して Ctrl+Cで 終了する 136 | 137 | # 管理者ユーザに戻る 138 | exit 139 | ``` 140 | 141 | ### systemdで起動するように設定する 142 | 143 | ```sh 144 | # serviceファイルをコピー 145 | sudo cp ~misskey/misskey/docs/examples/misskey.service /etc/systemd/system/ 146 | 147 | # 再読込して自動起動するように設定 148 | sudo systemctl daemon-reload 149 | sudo systemctl enable misskey 150 | 151 | # サービスの起動 152 | sudo systemctl start misskey 153 | 154 | # 状態の確認 155 | sudo systemctl status misskey 156 | ``` 157 | 158 | ### CloudFlareとの間でSSL/TLS設定をする 159 | https://github.com/mei23/memo/blob/master/misskey/Setup-CloudFlareNginx.md の方法1などを参照 160 | 161 | 設定後Webブラウザで実際にアクセスしてみて動作が確認できれば完了 162 | 163 | ### 管理者ユーザーを設定する 164 | ```sh 165 | # Misskeyユーザーでなければ変更する 166 | sudo su - misskey 167 | 168 | cd ~/misskey 169 | node cli/mark-admin.js @ユーザーID 170 | ``` 171 | 172 | ### バージョンアップ方法 173 | 174 | ```sh 175 | # Misskeyユーザーでなければ変更する 176 | sudo su - misskey 177 | 178 | cd ~/misskey 179 | 180 | # 変更を取得&マージ 181 | git pull 182 | 183 | # 依存関係の更新 184 | NODE_ENV=production pnpm i 185 | 186 | # ビルド 187 | NODE_ENV=production pnpm build 188 | 189 | # 管理者ユーザーに戻る 190 | exit 191 | 192 | # Misskeyを再起動する 193 | sudo systemctl restart misskey 194 | ``` 195 | -------------------------------------------------------------------------------- /misskey/Setup-Ubuntu1804-Dolphin.md: -------------------------------------------------------------------------------- 1 | # Dolphin セットアップ Ubuntu 18.04 2 | 3 | ## 手順 4 | 5 | ### Ubuntu 18.04 を用意する 6 | 7 | - VPSやクラウドで、FW付きで(Allow 22,80,443)、サーバーインストールを想定 8 | - メモリ512MB+スワップ(1-2GB)で余裕で動くけど、メモリ1GBあった方がいい。 9 | - 20.04でも大丈夫 10 | 11 | ### 管理者ユーザーで以下を実行 12 | 13 | #### dolphin用ユーザー作成 14 | ```sh 15 | sudo adduser --disabled-password --disabled-login dolphin 16 | ``` 17 | 18 | #### Node.jsインストール 19 | ```sh 20 | curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - 21 | sudo apt-get install -y nodejs 22 | ``` 23 | 引用元: https://github.com/nodesource/distributions/blob/master/README.md 24 | 25 | 26 | ### yarnインストール 27 | ```sh 28 | sudo npm install -g yarn 29 | 30 | ``` 31 | 32 | #### その他の必要パッケージをインストール 33 | ```sh 34 | sudo apt -y install redis git build-essential nginx ssl-cert letsencrypt ffmpeg postgresql 35 | ``` 36 | 37 | #### DBロールとユーザーの作成 38 | 39 | ```sh 40 | sudo -u postgres psql 41 | ``` 42 | 43 | ```sql 44 | # ロールの作成と確認 (passwordは適切に置き換える) 45 | create role dolphin LOGIN CREATEDB PASSWORD 'password'; 46 | \du 47 | 48 | # DB (dolphin) の作成と確認 49 | create database dolphin owner dolphin; 50 | \l 51 | 52 | # 接続終了 53 | \q 54 | ``` 55 | 56 | 接続を試したい場合は以下コマンド後に 57 | ```sh 58 | psql --host localhost --username dolphin --password 59 | # パスワードを入力 60 | # 接続したら \q または Ctrl+D で抜けられます 61 | ``` 62 | 63 | #### dolphinユーザーでdolphinのインストールをする 64 | ```sh 65 | # dolphinユーザーに変更 66 | sudo su - dolphin 67 | 68 | # リポジトリクローン (ここではfork版をcloneしてます) 69 | git clone https://github.com/mei23/dolphin.git 70 | 71 | # ディレクトリ移動 72 | cd ~/dolphin 73 | 74 | # コンフィグコピー 75 | cp .config/example.yml .config/default.yml 76 | 77 | # コンフィグ編集(vimじゃなくてnanoとかでもいい) 78 | vim .config/default.yml 79 | 80 | ``` 81 | 82 | コンフィグ編集はとくに以下を変更する 83 | 84 | ```yml 85 | # urlはクライアントから見えるURLに変更する 86 | # example.com は 公開するホスト名に置き換える 87 | # httpsです 88 | url: https://example.com/ 89 | 90 | # ポートは1024以上の任意のポートに置き換える 91 | port: 3000 92 | 93 | # db設定は少なくとも pass は置き換える必用があるはず 94 | db: 95 | host: localhost 96 | port: 5432 97 | 98 | # Database name 99 | db: dolphin 100 | 101 | # Auth 102 | user: dolphin 103 | pass: 設定したパスワード 104 | ``` 105 | 106 | ### 編集が終わったら、引き続きdolphinユーザーでインストールとビルドを行う 107 | ```sh 108 | cd ~/dolphin 109 | 110 | # パッケージインストール 111 | yarn install 112 | 113 | # ビルド 114 | NODE_ENV=production yarn build 115 | # メモリが512MBくらいの環境とかで、heapがなんたらと言われて失敗するときは以下のコマンドを使用 116 | NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production yarn build 117 | 118 | # DBスキーマ作成 119 | yarn migrate 120 | 121 | # 起動してみる 122 | yarn start 123 | # Now listening on port 3000 on https://example.com などと出ればOK 124 | # 正常に起動することを確認して Ctrl+Cで 終了する 125 | 126 | # 管理者ユーザに戻る 127 | exit 128 | ``` 129 | 130 | ### nginxの設定 131 | 132 | 管理者ユーザーで実施 133 | ```sh 134 | sudo cp ~dolphin/dolphin/docs/examples/dolphin.nginx /etc/nginx/sites-enabled/ 135 | # 本当は sites-available にコピーして sites-enabled からシンボリックリンクが流儀 136 | 137 | # example.tldをドメインで置き換える 138 | sudo vim /etc/nginx/sites-enabled/dolphin.nginx 139 | ``` 140 | 141 | 引き続き 142 | ```sh 143 | # Nginxをリロード 144 | sudo service nginx reload 145 | ``` 146 | 147 | ### systemdで起動するように設定する 148 | 149 | ```sh 150 | # serviceファイルをコピー 151 | sudo cp ~dolphin/dolphin/docs/examples/dolphin.service /etc/systemd/system/ 152 | 153 | # 再読込して自動起動するように設定 154 | sudo systemctl daemon-reload 155 | sudo systemctl enable dolphin 156 | 157 | # サービスの起動 158 | sudo systemctl start dolphin 159 | 160 | # 状態の確認 161 | sudo systemctl status dolphin 162 | ``` 163 | 164 | CloudFlareとの間でSSL/TLS設定をする 165 | https://github.com/mei23/memo/blob/master/dolphin/Setup-CloudFlareNginx.md の方法1などを参照 166 | 167 | 起動後Webブラウザで実際にアクセスしてみて動作が確認できれば完了 168 | 169 | ### バージョンアップ方法 170 | 171 | ```sh 172 | # dolphinユーザーでなければ変更する 173 | sudo su - dolphin 174 | 175 | cd ~/dolphin 176 | 177 | # 変更を取得&マージ 178 | git pull 179 | 180 | # 依存関係の更新 181 | yarn install 182 | 183 | # ビルド 184 | NODE_ENV=production yarn build 185 | 186 | # DBマイグレーション 187 | yarn migrate 188 | 189 | # 管理者ユーザーに戻る 190 | exit 191 | 192 | # dolphinを再起動する 193 | sudo systemctl restart dolphin 194 | ``` 195 | -------------------------------------------------------------------------------- /misskey/Setup-Ubuntu1804-Quick.md: -------------------------------------------------------------------------------- 1 | 2 | [こっち参照](Setup-Ubuntu2004-Quick.md) 3 | -------------------------------------------------------------------------------- /misskey/Setup-Ubuntu1804-v11.md: -------------------------------------------------------------------------------- 1 | # Misskey v11/v12 セットアップ Ubuntu 18.04 2 | 3 | ## 手順 4 | 5 | ### Ubuntu 18.04 を用意する 6 | 7 | - VPSやクラウドで、FW付きで(Allow 22,80,443)、サーバーインストールを想定 8 | - 少なくとも `物理メモリ1GB + スワップ2GB` くらいあるとよい 9 | - 20.04でも大丈夫 10 | 11 | ### 管理者ユーザーで以下を実行 12 | 13 | #### Misskey用ユーザー作成 14 | ```sh 15 | sudo adduser --disabled-password --disabled-login misskey 16 | ``` 17 | 18 | #### Node.jsインストール 19 | ```sh 20 | curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - 21 | sudo apt-get install -y nodejs 22 | ``` 23 | 引用元: https://github.com/nodesource/distributions/blob/master/README.md 24 | 25 | 26 | ### yarnインストール 27 | ```sh 28 | sudo npm install -g yarn 29 | 30 | ``` 31 | 32 | #### その他の必要パッケージをインストール 33 | ```sh 34 | sudo apt -y install redis git build-essential nginx ssl-cert letsencrypt ffmpeg postgresql 35 | ``` 36 | 37 | #### DBロールとユーザーの作成 38 | 39 | ```sh 40 | sudo -u postgres psql 41 | ``` 42 | 43 | ```sql 44 | # ロールの作成と確認 (passwordは適切に置き換える) 45 | create role misskey LOGIN CREATEDB PASSWORD 'password'; 46 | \du 47 | 48 | # DB (misskey) の作成と確認 49 | create database misskey owner misskey; 50 | \l 51 | 52 | # 接続終了 53 | \q 54 | ``` 55 | 56 | 接続を試したい場合は以下コマンド後に 57 | ```sh 58 | psql --host localhost --username misskey --password 59 | # パスワードを入力 60 | # 接続したら \q または Ctrl+D で抜けられます 61 | ``` 62 | 63 | #### misskeyユーザーでMisskeyのインストールをする 64 | ```sh 65 | # misskeyユーザーに変更 66 | sudo su - misskey 67 | 68 | # リポジトリクローン (最新バージョン (v12.xとか) のreleaseに近いリポジトリをcloneしてます) 69 | git clone -b master https://github.com/syuilo/misskey.git 70 | 71 | # ディレクトリ移動 72 | cd ~/misskey 73 | 74 | # コンフィグコピー 75 | cp .config/example.yml .config/default.yml 76 | 77 | # コンフィグ編集(vimじゃなくてnanoとかでもいい) 78 | vim .config/default.yml 79 | ``` 80 | 81 | コンフィグ編集はとくに以下を変更する 82 | 83 | ```yml 84 | # urlはクライアントから見えるURLに変更する 85 | # example.com は 公開するホスト名に置き換える 86 | # httpsです 87 | url: https://example.com/ 88 | 89 | # ポートは1024以上の任意のポートに置き換える 90 | port: 3000 91 | 92 | # db設定は少なくとも pass は置き換える必用があるはず 93 | db: 94 | host: localhost 95 | port: 5432 96 | 97 | # Database name 98 | db: misskey 99 | 100 | # Auth 101 | user: misskey 102 | pass: 設定したパスワード 103 | ``` 104 | 105 | ### 編集が終わったら、引き続きmisskeyユーザーでインストールとビルドを行う 106 | ```sh 107 | cd ~/misskey 108 | 109 | # パッケージインストール 110 | yarn install 111 | 112 | # ビルド 113 | NODE_ENV=production yarn build 114 | # heap out of memory (exit code 134) でビルドできない場合は以下のコマンドを使用 (2048は必要に応じて増やしてください) 115 | # NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production yarn build 116 | 117 | # DBスキーマ作成 118 | NODE_ENV=production yarn migrate 119 | 120 | # 起動してみる 121 | yarn start 122 | # Now listening on port 3000 on https://example.com などと出ればOK 123 | # 正常に起動することを確認して Ctrl+Cで 終了する 124 | 125 | # 管理者ユーザに戻る 126 | exit 127 | ``` 128 | 129 | ### nginxの設定 130 | 131 | 管理者ユーザーで実施 132 | ```sh 133 | sudo cp ~misskey/misskey/docs/examples/misskey.nginx /etc/nginx/sites-enabled/ 134 | # 本当は sites-available にコピーして sites-enabled からシンボリックリンクが流儀 135 | 136 | # example.tldをドメインで置き換える 137 | # letsencryptの設定をコメントアウトして、snakeoilの設定のコメントをはずす。 138 | sudo vim /etc/nginx/sites-enabled/misskey.nginx 139 | 140 | # nginxをリロード 141 | sudo service nginx reload 142 | ``` 143 | 144 | ### systemdで起動するように設定する 145 | 146 | ```sh 147 | # serviceファイルをコピー 148 | sudo cp ~misskey/misskey/docs/examples/misskey.service /etc/systemd/system/ 149 | 150 | # 再読込して自動起動するように設定 151 | sudo systemctl daemon-reload 152 | sudo systemctl enable misskey 153 | 154 | # サービスの起動 155 | sudo systemctl start misskey 156 | 157 | # 状態の確認 158 | sudo systemctl status misskey 159 | ``` 160 | 161 | CloudFlareとの間でSSL/TLS設定をする 162 | https://github.com/mei23/memo/blob/master/misskey/Setup-CloudFlareNginx.md の方法1などを参照 163 | 164 | 起動後Webブラウザで実際にアクセスしてみて動作が確認できれば完了 165 | 166 | ### バージョンアップ方法 167 | 168 | ```sh 169 | # Misskeyユーザーでなければ変更する 170 | sudo su - misskey 171 | 172 | cd ~/misskey 173 | 174 | # 変更を取得&マージ 175 | git pull 176 | 177 | # 依存関係の更新 178 | yarn install 179 | 180 | # ビルド 181 | NODE_ENV=production yarn build 182 | 183 | # DBマイグレーション 184 | yarn migrate 185 | 186 | # 管理者ユーザーに戻る 187 | exit 188 | 189 | # Misskeyを再起動する 190 | sudo systemctl restart misskey 191 | ``` 192 | -------------------------------------------------------------------------------- /misskey/Setup-Ubuntu2004-Quick.md: -------------------------------------------------------------------------------- 1 | 2 | # Misskey v10 セットアップ Ubuntu 20.04 簡単編 3 | 4 | ## 手順 5 | 6 | ### Ubuntu 20.04 を用意する 7 | 8 | - VPSやクラウドで、FW付きで(Allow 22,80,443)、サーバーインストールを想定 9 | - 少なくとも `物理メモリ1GB + スワップ2GB` くらいあるとよい 10 | - amd64/arm64いずれでも動きます 11 | 12 | ### 管理者ユーザーで以下を実行 13 | 14 | #### Misskey用ユーザー作成 15 | ```sh 16 | sudo adduser --disabled-password --disabled-login misskey 17 | 18 | ``` 19 | 20 | #### Node.jsインストール 21 | ```sh 22 | curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - 23 | sudo apt-get install -y nodejs 24 | 25 | ``` 26 | 引用元: https://github.com/nodesource/distributions/blob/master/README.md 27 | 28 | ### yarnインストール 29 | ```sh 30 | sudo npm install -g yarn 31 | 32 | ``` 33 | 34 | #### MongoDBインストール 35 | 36 | 以下は Ubuntu 20.04 の例, 18.04の場合は引用元を参照してください 37 | ```sh 38 | # 鍵インポート 39 | sudo apt-get install gnupg 40 | wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - 41 | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 42 | 43 | # インストール 44 | sudo apt-get update 45 | sudo apt-get install -y mongodb-org 46 | 47 | # 開始する 48 | sudo systemctl start mongod 49 | 50 | # MongoDBを自動起動するようにする 51 | sudo systemctl enable mongod 52 | 53 | ``` 54 | 引用元 (一部): https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ 55 | 56 | 57 | #### その他の必要パッケージをインストール 58 | ```sh 59 | sudo apt -y install redis git build-essential nginx ssl-cert letsencrypt ffmpeg 60 | 61 | ``` 62 | 63 | #### misskeyユーザーに変更 64 | ```sh 65 | sudo su - misskey 66 | 67 | ``` 68 | 69 | ### misskeyユーザーで以下を実行 70 | ```sh 71 | # リポジトリクローン (めいすきーforkをcloneしてます) 72 | git clone -b mei-m544 https://github.com/mei23/misskey.git 73 | 74 | # ディレクトリ移動 75 | cd ~/misskey 76 | 77 | # コンフィグコピー 78 | cp .config/example.yml .config/default.yml 79 | 80 | # コンフィグ編集(vimじゃなくてnanoとかでもいい) 81 | vim .config/default.yml 82 | 83 | ``` 84 | 85 | コンフィグ編集はとくに以下を変更する 86 | 87 | ```yml 88 | # urlはクライアントから見えるURLに変更する 89 | # example.com は 公開するホスト名に置き換える 90 | # httpsです 91 | url: https://example.com/ 92 | 93 | # ポートは1024以上の任意のポートに置き換える 94 | port: 3000 95 | 96 | # mongodb 今回は認証をしないのでuser,passはコメントアウトか削除する 97 | mongodb: 98 | host: localhost 99 | port: 27017 100 | db: misskey 101 | 102 | # redis 今回は認証をしないので(というか対応してない)passはコメントアウトか削除する 103 | redis: 104 | host: localhost 105 | port: 6379 106 | ``` 107 | 108 | ### 編集が終わったら、引き続きmisskeyユーザーでインストールとビルドを行う 109 | ```sh 110 | cd ~/misskey 111 | 112 | # パッケージインストール 113 | NODE_ENV=production yarn install 114 | 115 | # ビルド 116 | NODE_ENV=production yarn build 117 | # heap out of memory (exit code 134) でビルドできない場合は以下のコマンドを使用 (2048は必要に応じて増やしてください) 118 | # NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production yarn build 119 | 120 | # ログアウトして管理者ユーザに戻る 121 | exit 122 | 123 | ``` 124 | 125 | ### nginxの設定 126 | 127 | 管理者ユーザーで実施 128 | ```sh 129 | sudo cp ~misskey/misskey/docs/examples/misskey.nginx /etc/nginx/sites-enabled/ 130 | # 本当は sites-available にコピーして sites-enabled からシンボリックリンクが流儀 131 | 132 | # example.tldをドメインで置き換える 133 | sudo vim /etc/nginx/sites-enabled/misskey.nginx 134 | 135 | ``` 136 | 137 | 引き続き 138 | ```sh 139 | # Nginxをリロード 140 | sudo service nginx reload 141 | ``` 142 | 143 | ```sh 144 | # 管理者 から misskeyユーザーに変更する 145 | sudo su - misskey 146 | ``` 147 | 148 | ### misskeyユーザーでMisskeyを起動してみる 149 | 150 | ```sh 151 | cd ~/misskey 152 | 153 | # 起動してみる 154 | yarn start 155 | # Now listening on port 3000 on https://example.com などと出ればOK 156 | # 正常に起動することを確認して Ctrl+Cで 終了する 157 | 158 | # 管理者ユーザに戻る 159 | exit 160 | ``` 161 | 162 | ### systemdで起動するように設定する 163 | 164 | ```sh 165 | # serviceファイルをコピー 166 | sudo cp ~misskey/misskey/docs/examples/misskey.service /etc/systemd/system/ 167 | 168 | # 再読込して自動起動するように設定 169 | sudo systemctl daemon-reload 170 | sudo systemctl enable misskey 171 | 172 | # サービスの起動 173 | sudo systemctl start misskey 174 | 175 | # 状態の確認 176 | sudo systemctl status misskey 177 | ``` 178 | 179 | ### CloudFlareとの間でSSL/TLS設定をする 180 | https://github.com/mei23/memo/blob/master/misskey/Setup-CloudFlareNginx.md の方法1などを参照 181 | 182 | 設定後Webブラウザで実際にアクセスしてみて動作が確認できれば完了 183 | 184 | ### 管理者ユーザーを設定する 185 | ```sh 186 | # Misskeyユーザーでなければ変更する 187 | sudo su - misskey 188 | 189 | cd ~/misskey 190 | node cli/mark-admin.js @ユーザーID 191 | ``` 192 | 193 | ### バージョンアップ方法 194 | 195 | ```sh 196 | # Misskeyユーザーでなければ変更する 197 | sudo su - misskey 198 | 199 | cd ~/misskey 200 | 201 | # 変更を取得&マージ 202 | git pull 203 | 204 | # 依存関係の更新 205 | NODE_ENV=production yarn install --force 206 | 207 | # ビルド 208 | NODE_ENV=production yarn build 209 | 210 | # 管理者ユーザーに戻る 211 | exit 212 | 213 | # Misskeyを再起動する 214 | sudo systemctl restart misskey 215 | ``` 216 | -------------------------------------------------------------------------------- /misskey/Setup-Ubuntu_Debian.md: -------------------------------------------------------------------------------- 1 | [Setup-Ubuntu1804-Quick](Setup-Ubuntu1804-Quick.md) にまとめた 2 | -------------------------------------------------------------------------------- /misskey/assets/cf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mei23/memo/a9000316b17614afe0da5900de07b1fe15b27415/misskey/assets/cf1.png -------------------------------------------------------------------------------- /misskey/assets/cf21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mei23/memo/a9000316b17614afe0da5900de07b1fe15b27415/misskey/assets/cf21.png -------------------------------------------------------------------------------- /misskey/assets/cf22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mei23/memo/a9000316b17614afe0da5900de07b1fe15b27415/misskey/assets/cf22.png -------------------------------------------------------------------------------- /misskey/max-old-space-size.md: -------------------------------------------------------------------------------- 1 | # max-old-space-size 2 | いわゆるNodeのヒープサイズ 3 | 4 | 実際のNodeのヒープサイズは以下で取得できる 5 | ``` 6 | node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))' 7 | ``` 8 | 9 | デフォルト値は実質環境依存値で、主に物理メモリサイズが影響。 10 | https://zenn.dev/legalscape/articles/a0715a699eacb5#node.js%E3%81%AE%E3%83%A1%E3%83%A2%E3%83%AA%E5%88%B6%E9%99%90 11 | 12 | 以下はUbuntu 22.04, Node v20の値の例 13 | ``` 14 | 物理メモリ512MB: 259 15 | 物理メモリ1GB: 464 16 | 物理メモリ2GB: 974 17 | 物理メモリ4GB: 1962 18 | 物理メモリ8GB: 2096 19 | ``` 20 | 21 | 値変えていてビルドするとどのくらいでビルド出来るかだいたいわかりそう 22 | ``` 23 | # 物理メモリ512MBでビルドできる? 24 | NODE_ENV=production NODE_OPTIONS=--max-old-space-size=259 pnpm run build 25 | # 物理メモリ1GBでビルドできる? 26 | NODE_ENV=production NODE_OPTIONS=--max-old-space-size=464 pnpm run build 27 | # 物理メモリ2GBでビルドできる? 28 | NODE_ENV=production NODE_OPTIONS=--max-old-space-size=974 pnpm run build 29 | # 物理メモリ4GBでビルドできる? 30 | NODE_ENV=production NODE_OPTIONS=--max-old-space-size=1962 pnpm run build 31 | ``` 32 | 33 | 実際普通にビルドするのに必要と思われるメモリはこのくらい 34 | ``` 35 | Misskey 2024.3.1: 物理メモリ4GB ※develop 2024/4/9でも同様 36 | めいすきー 10.102.697-m544: 物理メモリ1GB 37 | めいどるふぃん (Dolphin): 物理メモリ1GB ※512MBではダメ 38 | ``` 39 | 40 | スワップを増やしても解決しない。 41 | 42 | 値はオプションで変えられる 43 | 実際のサイズはちょっと違う、以下はUbuntu 22.04, Node v20の値の例 44 | ``` 45 | NODE_OPTIONS=--max-old-space-size=500 node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))' 46 | → 524 47 | NODE_OPTIONS=--max-old-space-size=1000 node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))' 48 | → 1024 49 | NODE_OPTIONS=--max-old-space-size=1500 node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))' 50 | → 1524 51 | NODE_OPTIONS=--max-old-space-size=2000 node -e 'console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))' 52 | → 2024 53 | ``` 54 | --------------------------------------------------------------------------------