Ubuntu に Misskey をインストールする時にハマったこと

※ 2023/06/19 現在の情報です

箇条書きで

必須パッケージ

  • pnpm が必須*1
  • vite が必須*2

メモリ不足でセットアップ(ビルド)が落ちる場合

状況

  • メモリ(スワップ)不足でセットアップスクリプト(ビルド)が落ちる*3
    • frontend の vite build のところで JavaScript heap out of memory で落ちる
packages/frontend build$ vite build
│ vite v4.3.9 building for production...
│ transforming...
│ <--- Last few GCs --->
│ [7199:0x734eef0]    37428 ms: Mark-sweep 468.7 (488.3) -> 464.8 (488.8) MB, 678.5 / 0.0 ms  (average mu = 0.208, cur
│ [7199:0x734eef0]    38127 ms: Mark-sweep 469.0 (488.8) -> 465.1 (489.0) MB, 648.7 / 0.0 ms  (average mu = 0.149, cur
│ <--- JS stacktrace --->
│ FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

対応方法

  • 対応方法は こちらにあるとおり、ビルド時に以下の環境変数を指定する
    • NODE_OPTIONS="--max-old-space-size=2048"
$ NODE_OPTIONS="--max-old-space-size=2048" NODE_ENV=production pnpm run build

データベースのテーブル(レコード)を手動でいじってはいけない

  • これは完全に自分のミスだが、通知を消したいと思って PostgreSQL の user_profile テーブルのレコードを手動で消したら、ユーザも削除された*4

*1:$ npm install -g pnpm

*2:$ npm install -g vite

*3:低スペックの VPN で構築したらそうなった

*4:削除されたというステータスになった

Powered by はてなブログ