Misskeyはどの様なことができるかRaspberry Pi 4(Rocky Linux release 9.5 (Blue Onyx) )にインストールしてみた。
サブドメインでは正常に動作しないので、専用のドメインを用意する必要が有る。
前準備(関連パッケージのインストール)
以下のソフトウェアがインストールされて、設定されていることが条件です。
ソフトウェア | バージョン | 備考 |
Node.js | v22 | |
pnpm | v10以上 | |
PostgreSQL | v15以上 | |
Redis | v6.2.17 | 別件でインストール済み |
FFmpeg | v7.1.1 | 別件でインストール済み |
PostgreSQLのインストールと設定
有効なバージョンのPostgreSQLをインストールし、必要な設定を行う。
バージョン15をインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# yum module list postgresql メタデータの期限切れの最終確認: 3:45:23 前の 2025年05月05日 12時17分53秒 に実施しました。 Rocky Linux 9 - AppStream Name Stream Profiles Summary postgresql 15 client, server [d] PostgreSQL server and client module postgresql 16 client, server [d] PostgreSQL server and client module ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled # # yum install -y @postgresql:15 メタデータの期限切れの最終確認: 3:45:58 前の 2025年05月05日 12時17分53秒 に実施しました。 依存関係が解決しました。 =============================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ =============================================================================================================== アップグレード: postgresql aarch64 15.12-1.module+el9.5.0+30637+4391fcca appstream 1.7 M postgresql-contrib aarch64 15.12-1.module+el9.5.0+30637+4391fcca appstream 910 k postgresql-private-devel aarch64 15.12-1.module+el9.5.0+30637+4391fcca appstream 62 k postgresql-private-libs aarch64 15.12-1.module+el9.5.0+30637+4391fcca appstream 139 k postgresql-server aarch64 15.12-1.module+el9.5.0+30637+4391fcca appstream 6.1 M モジュールプロファイルのインストール中: postgresql/server モジュールストリームの有効化中: postgresql 15 : アップグレード済み: postgresql-15.12-1.module+el9.5.0+30637+4391fcca.aarch64 postgresql-contrib-15.12-1.module+el9.5.0+30637+4391fcca.aarch64 postgresql-private-devel-15.12-1.module+el9.5.0+30637+4391fcca.aarch64 postgresql-private-libs-15.12-1.module+el9.5.0+30637+4391fcca.aarch64 postgresql-server-15.12-1.module+el9.5.0+30637+4391fcca.aarch64 完了しました! # |
データベースを初期化する。
DBの領域確保と初期化を行う。
1 2 3 4 5 6 |
# postgresql-setup initdb WARNING: using obsoleted argument syntax, try --help WARNING: arguments transformed to: postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log # |
PostgreSQLを起動する。
PostgreSQLの自動起動を有効化し起動する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# systemctl enable postgresql Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service. # # systemctl start postgresql # # systemctl status postgresql ● postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: disabled) Active: active (running) since Mon 2025-05-05 16:09:40 JST; 9s ago Process: 208039 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS) Main PID: 208041 (postmaster) Tasks: 7 (limit: 23846) CPU: 159ms CGroup: /system.slice/postgresql.service ┣208041 /usr/bin/postmaster -D /var/lib/pgsql/data ┣208042 "postgres: logger " ┣208043 "postgres: checkpointer " ┣208044 "postgres: background writer " ┣208046 "postgres: walwriter " ┣208047 "postgres: autovacuum launcher " ┗208048 "postgres: logical replication launcher " 5月 05 16:09:40 raspberrypi systemd[1]: Starting PostgreSQL database server... 5月 05 16:09:40 raspberrypi postmaster[208041]: 2025-05-05 16:09:40.901 JST [208041] LOG: ログ出力をログ収集プロセスにリダイレク> 5月 05 16:09:40 raspberrypi postmaster[208041]: 2025-05-05 16:09:40.901 JST [208041] ヒント: ここからのログ出力はディレクトリ"lo> 5月 05 16:09:40 raspberrypi systemd[1]: Started PostgreSQL database server. # |
Misskeyで利用するDBユーザとDBを作成する。
Misskeyで利用するデータベースの利用ユーザとデータベースを作成する。
データベース利用ユーザ: misskey
データベース利用ユーザパスワード: mypassword
データベース名: misskey
合わせて、パスワードの認証の、postgresユーザのパスワード(mypassword)も設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# su - postgres $ $ psql psql (13.20) "help"でヘルプを表示します。 postgres=# CREATE ROLE misskey LOGIN PASSWORD 'mypassword'; CREATE ROLE postgres=# postgres=# CREATE DATABASE misskey OWNER misskey; CREATE DATABASE postgres=# postgres=# alter role postgres with password 'mypassword'; ALTER ROLE postgres=# postgres=# \q $ |
DBの定義ファイルのユーザのアクセスをパスワード認証に変更する。
Misskeyでのユーザ認証はパスワード認証のため、認証方法を修正する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
$ cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf_org $ $ vi /var/lib/pgsql/data/pg_hba.conf $ $ diff -c /var/lib/pgsql/data/pg_hba.conf_org /var/lib/pgsql/data/pg_hba.conf *** /var/lib/pgsql/data/pg_hba.conf_org 2025-05-01 15:19:10.579957977 +0900 --- /var/lib/pgsql/data/pg_hba.conf 2025-05-01 15:17:53.620154640 +0900 *************** *** 81,89 **** # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only ! local all all peer # IPv4 local connections: ! host all all 127.0.0.1/32 ident # IPv6 local connections: host all all ::1/128 ident # Allow replication connections from localhost, by a user with the --- 81,89 ---- # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only ! local all all password # IPv4 local connections: ! host all all 127.0.0.1/32 password # IPv6 local connections: host all all ::1/128 ident # Allow replication connections from localhost, by a user with the $ $ exit ログアウト # |
PostgreSQLを再起動する。
パスワード認証を有効化するためPostgreSQLを再起度する。
1 2 |
# systemctl restart postgresql # |
作成したデータベースを確認する。
作成したMisskeyのDBを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# psql -U misskey -h localhost ユーザ misskey のパスワード: psql (13.20) "help"でヘルプを表示します。 misskey=> misskey=> \l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権限 -----------+----------+------------------+------------+-------------------+----------------------- misskey | misskey | UTF8 | ja_JP.utf8 | ja_JP.utf8 | postgres | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 | template0 | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.utf8 | ja_JP.utf8 | =c/postgres + | | | | | postgres=CTc/postgres (4 行) misskey=> \q # |
Redisのバージョンを確認する。
すでにインストールしているRedisパッケージのバージョンを確認する。
1 2 3 |
$ redis-cli -v redis-cli 6.2.17 $ |
FFmpegのいバージョンを確認する。
すでにインストールしているFFmpegパッケージのバージョンを確認する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ ffmpeg -v ffmpeg version 7.1.1 Copyright (c) 2000-2025 the FFmpeg developers built with gcc 11 (GCC) configuration: libavutil 59. 39.100 / 59. 39.100 libavcodec 61. 19.101 / 61. 19.101 libavformat 61. 7.100 / 61. 7.100 libavdevice 61. 3.100 / 61. 3.100 libavfilter 10. 4.100 / 10. 4.100 libswscale 8. 3.100 / 8. 3.100 libswresample 5. 3.100 / 5. 3.100 Missing argument for option 'v'. Error splitting the argument list: Invalid argument $ |
misskeyユーザを作成する。
Misskeyのプログラムを実行するユーザを作成する。
1 2 3 4 |
# adduser misskey # # su - misskey $ |
pnpmの最新バージョンをインストールする。
Node.jsのパッケージマネージャーをインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ curl -fsSL https://get.pnpm.io/install.sh | sh - ==> Downloading pnpm binaries 10.10.0 ?WARN? using --force I sure hope you know what you are doing Copying pnpm CLI from /tmp/tmp.BRgXymQoUY/pnpm to /home/misskey/.local/share/pnpm/pnpm Appended new lines to /home/misskey/.bashrc Next configuration changes were made: export PNPM_HOME="/home/misskey/.local/share/pnpm" case ":$PATH:" in *":$PNPM_HOME:"*) ;; *) export PATH="$PNPM_HOME:$PATH" ;; esac To start using pnpm, run: source /home/misskey/.bashrc $ $ source .bashrc # |
環境変数を設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ cp .bashrc .bashrc_org $ $ vi .bashrc $ $ diff .bashrc_org .bashrc 28a29,36 > # pnpm > export PNPM_HOME="/home/misskey/.local/share/pnpm" > case ":$PATH:" in > *":$PNPM_HOME:"*) ;; > *) export PATH="$PNPM_HOME:$PATH" ;; > esac > # pnpm end > $ $ source .bashrc $ |
.bash_profileファイルが無い場合は、ファイルを作成する。
ログイン時に.bashrcファイルを読み込まれる.bash_profileを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ vi .bash_profile $ $ cat .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs $ |
Node.jsの最新バージョンをインストールする。
Node.jsのパッケージマネージャーをインストールしたため、Misskeyで対応するバージョンの22をインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# yum module list nodejs メタデータの期限切れの最終確認: 1:00:03 前の 2025年04月29日 12時35分03秒 に実施しました。 Rocky Linux 9 - AppStream Name Stream Profiles Summary nodejs 18 common [d], development, minimal, s2i Javascript runtime nodejs 20 common [d], development, minimal, s2i Javascript runtime nodejs 22 common [d], development, minimal, s2i Javascript runtime ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled # # yum module install -y nodejs:22 メタデータの期限切れの最終確認: 1:00:36 前の 2025年04月29日 12時35分03秒 に実施しました。 依存関係が解決しました。 ================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ================================================================================================================== アップグレード: nodejs aarch64 1:22.13.1-1.module+el9.5.0+30609+557cb4b3 appstream 1.9 M nodejs-docs noarch 1:22.13.1-1.module+el9.5.0+30609+557cb4b3 appstream 8.6 M nodejs-full-i18n aarch64 1:22.13.1-1.module+el9.5.0+30609+557cb4b3 appstream 8.6 M nodejs-libs aarch64 1:22.13.1-1.module+el9.5.0+30609+557cb4b3 appstream 19 M npm aarch64 1:10.9.2-1.22.13.1.1.module+el9.5.0+30609+557cb4b3 appstream 2.0 M モジュールプロファイルのインストール中: nodejs/common モジュールストリームの有効化中: nodejs 22 : nodejs-1:22.13.1-1.module+el9.5.0+30609+557cb4b3.aarch64 nodejs-docs-1:22.13.1-1.module+el9.5.0+30609+557cb4b3.noarch nodejs-full-i18n-1:22.13.1-1.module+el9.5.0+30609+557cb4b3.aarch64 nodejs-libs-1:22.13.1-1.module+el9.5.0+30609+557cb4b3.aarch64 npm-1:10.9.2-1.22.13.1.1.module+el9.5.0+30609+557cb4b3.aarch64 完了しました! # |
Misskeyをインストールして設定する。
Misskeyパッケージをインストールする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# sudo -iu misskey $ $ git clone --recursive https://github.com/misskey-dev/misskey.git Cloning into 'misskey'... remote: Enumerating objects: 264794, done. remote: Counting objects: 100% (244/244), done. remote: Compressing objects: 100% (114/114), done. remote: Total 264794 (delta 182), reused 131 (delta 130), pack-reused 264550 (from 2) Receiving objects: 100% (264794/264794), 167.86 MiB | 11.00 MiB/s, done. Resolving deltas: 100% (206920/206920), done. Updating files: 100% (2771/2771), done. Submodule 'fluent-emojis' (https://github.com/misskey-dev/emojis.git) registered for path 'fluent-emojis' Cloning into '/home/misskey/misskey/fluent-emojis'... remote: Enumerating objects: 1551, done. remote: Counting objects: 100% (1551/1551), done. remote: Compressing objects: 100% (1550/1550), done. remote: Total 1551 (delta 1), reused 1551 (delta 1), pack-reused 0 (from 0) Receiving objects: 100% (1551/1551), 12.40 MiB | 10.79 MiB/s, done. Resolving deltas: 100% (1/1), done. Submodule path 'fluent-emojis': checked out 'cae981eb4c5189ea9ea3230e83b876a5068df7d1' $ $ cd misskey $ $ git checkout master branch 'master' set up to track 'origin/master'. Switched to a new branch 'master' $ $ git submodule update --init $ $ NODE_ENV=production pnpm install --frozen-lockfile Scope: all 10 workspace projects Lockfile is up to date, resolution step is skipped Packages: +2210 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Downloading @img/sharp-libvips-linux-arm64@1.1.0: 7.62 MB/7.62 MB, done Downloading @img/sharp-libvips-linuxmusl-arm64@1.1.0: 7.63 MB/7.63 MB, done : node_modules/.pnpm/v-code-diff@1.13.1_vue@3.5.13_typescript@5.8.3_/node_modules/v-code-diff: Running postinstall script, done in 782ms node_modules/.pnpm/@tensorflow+tfjs-node@4.22.0_encoding@0.1.13_seedrandom@3.0.5/node_modules/@tensorflow/tfjs-node: Running instalnode_modules/.pnpm/@tensorflow+tfjs-node@4.22.0_encoding@0.1.13_seedrandom@3.0.5/node_modules/@tensorflow/tfjs-node: Running install script, done in 43.1s node_modules/.pnpm/@nestjs+core@11.1.0_@nestjs+common@11.1.0_reflect-metadata@0.2.2_rxjs@7.8.2__@nestjs+pl_aa3831a022f6328434dff0a5node_modules/.pnpm/@nestjs+core@11.1.0_@nestjs+common@11.1.0_reflect-metadata@0.2.2_rxjs@7.8.2__@nestjs+pl_aa3831a022f6328434dff0a5eb1ab4c9/node_modules/@nestjs/core: Running postinstall script, done in 751ms dependencies: + cssnano 7.0.6 + esbuild 0.25.3 + execa 9.5.2 + fast-glob 3.3.3 + glob 11.0.2 + ignore-walk 7.0.0 + js-yaml 4.1.0 + postcss 8.5.3 + tar 7.4.3 + terser 5.39.0 + typescript 5.8.3 optionalDependencies: + @tensorflow/tfjs-core 4.22.0 devDependencies: + @misskey-dev/eslint-plugin 2.1.0 + @types/node 22.15.2 + @typescript-eslint/eslint-plugin 8.31.0 + @typescript-eslint/parser 8.31.0 + cross-env 7.0.3 + cypress 14.3.2 + eslint 9.25.1 + globals 16.0.0 + ncp 2.0.0 + pnpm 10.10.0 + start-server-and-test 2.0.11 Done in 9m 41.7s using pnpm v10.10.0 $ |
Misskeyを設定する。
ドメイン名とDBサクセスのユーザ名やパスワードを設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
$ cp .config/example.yml .config/default.yml $ $ vi .config/default.yml $ $ diff -c .config/example.yml .config/default.yml *** .config/example.yml 2025-05-31 13:49:24.774404986 +0900 --- .config/default.yml 2025-05-31 13:56:24.241140075 +0900 *************** *** 77,83 **** #qqqj URL mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq # Final accessible URL seen by a user. ! url: https://example.tld/ # ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE # URL SETTINGS AFTER THAT! --- 77,83 ---- #qqqj URL mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq # Final accessible URL seen by a user. ! url: https://ksm.hoge00.jp/ # ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE # URL SETTINGS AFTER THAT! *************** *** 116,123 **** db: misskey # Auth ! user: example-misskey-user ! pass: example-misskey-pass # Whether disable Caching queries #disableCache: true --- 116,123 ---- db: misskey # Auth ! user: misskey ! pass: hoge111 # Whether disable Caching queries #disableCache: true $ |
Misskeyのビルドと初期化を行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
$ NODE_ENV=production pnpm run build > misskey@2025.5.0 build /home/misskey/misskey > pnpm build-pre && pnpm -r build && pnpm build-assets > misskey@2025.5.0 build-pre /home/misskey/misskey > node ./scripts/build-pre.js Scope: 9 of 10 workspace projects packages/misskey-bubble-game build$ node ./build.js x [misskey-bubble-game] start building... x [misskey-bubble-game] build succeeded. : [7 lines collapsed] Ⅰ ../../built/_frontend_embed_vite_/Cqq1W_WT.png 6.29 kB Ⅰ ../../built/_frontend_embed_vite_/CthQ4-e5.woff2 820.32 kB Ⅰ ../../built/_frontend_embed_vite_/Cxsed65d.woff 1,203.84 kB Ⅰ ../../built/_frontend_embed_vite_/FR5pMc0b.ttf 2,382.35 kB Ⅰ ../../built/_frontend_embed_vite_/Dhs21BEC.css 22.93 kB Ⅰ ../../built/_frontend_embed_vite_/Crj5WEiX.css 244.63 kB Ⅰ ../../built/_frontend_embed_vite_/app-BKDYMLKy.js 44.62 kB Ⅰ ../../built/_frontend_embed_vite_/BG1JcAnM.js 63.82 kB Ⅰ ../../built/_frontend_embed_vite_/C0ITntOc.js 110.84 kB Ⅰ ✓ built in 37.96s ┗ Done in 43.6s > misskey@2025.5.0 build-assets /home/misskey/misskey > node ./scripts/build-assets.mjs $ $ pnpm run init > misskey@2025.4.0 init /home/misskey/misskey > pnpm migrate > misskey@2025.4.0 migrate /home/misskey/misskey > cd packages/backend && pnpm migrate > backend@ migrate /home/misskey/misskey/packages/backend > pnpm typeorm migration:run -d ormconfig.js query: SELECT * FROM current_schema() query: SELECT version(); query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations' query: CREATE TABLE "migrations" ("id" SERIAL NOT NULL, "timestamp" bigint NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_8c82d7f526340ab734260ea46be" PRIMARY KEY ("id")) query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC 0 migrations are already loaded in the database. : Migration RoleCopyOnMoveAccount1743558299182 has been executed successfully. query: ALTER TABLE "antenna" RENAME COLUMN "hideNotesInSensitiveChannel" TO "excludeNotesInSensitiveChannel" query: INSERT INTO "migrations"("timestamp", "name") VALUES ($1, $2) -- PARAMETERS: [1744075766000,"ExcludeNotesInSensitiveChannel1744075766000"] Migration ExcludeNotesInSensitiveChannel1744075766000 has been executed successfully. query: COMMIT $ |
Misskeyの起動(失敗)
起動するとexit code 129で異常終了する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ NODE_ENV=production pnpm run start > misskey@2025.5.0 start /home/misskey/misskey > pnpm check:connect && cd packages/backend && node ./built/boot/entry.js > misskey@2025.5.0 check:connect /home/misskey/misskey > cd packages/backend && pnpm check:connect > backend@ check:connect /home/misskey/misskey/packages/backend > node ./scripts/check_connect.js ELIFECYCLE Command failed with exit code 129. $ |
arm64 CPUの場合エラーが発生する
以下のURLに回答が最近記載された。
2025.5.0 does not run ond Ubuntu 24.04.2 #16080
概要:
@napi-rs/canvasライブラリがarm64 CPUでは動作しない。
packages/backend/src/misc/gen-identicon.tsファイルに記載された、@napi-rs/canvasのimport定義をコメントアウトする。
2025年5月上旬のインストール時に障害に会い、いろいろ調べてが判明せず。
5月下旬にやっと対応方法が判明した。
ファイルを修正する。
@napi-rs/canvasのimportをコメントアウトする。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
$ cp packages/backend/src/misc/gen-identicon.ts packages/backend/src/misc/gen-identicon.ts_org $ $ vi packages/backend/src/misc/gen-identicon.ts $ $ diff -c packages/backend/src/misc/gen-identicon.ts_org packages/backend/src/misc/gen-identicon.ts *** packages/backend/src/misc/gen-identicon.ts_org 2025-05-31 14:28:48.739349314 +0900 --- packages/backend/src/misc/gen-identicon.ts 2025-05-31 14:29:07.727293024 +0900 *************** *** 8,14 **** * https://en.wikipedia.org/wiki/Identicon */ ! import { createCanvas } from '@napi-rs/canvas'; import gen from 'random-seed'; const size = 128; // px --- 8,14 ---- * https://en.wikipedia.org/wiki/Identicon */ ! // import { createCanvas } from '@napi-rs/canvas'; import gen from 'random-seed'; const size = 128; // px $ |
再度ビルドと初期化を行う。
ファイルを修正したので、再度ビルトと、念のため初期化を行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
$ NODE_ENV=production pnpm run build > misskey@2025.5.0 build /home/misskey/misskey > pnpm build-pre && pnpm -r build && pnpm build-assets > misskey@2025.5.0 build-pre /home/misskey/misskey > node ./scripts/build-pre.js Scope: 9 of 10 workspace projects packages/misskey-bubble-game build$ node ./build.js Ⅰ [misskey-bubble-game] start building... Ⅰ [misskey-bubble-game] build succeeded. Ⅰ [misskey-bubble-game] skip building d.ts because NODE_ENV is production. Ⅰ[misskey-bubble-game] finish building. ┗ Done in 2.4s packages/misskey-js build$ node ./build.js Ⅰ [misskey-js] start building... Ⅰ [misskey-js] build succeeded. Ⅰ [misskey-js] skip building d.ts because NODE_ENV is production. ┗ [misskey-js] finish building. mq Done in 1.9s packages/misskey-reversi build$ node ./build.js Ⅰ [misskey-reversi] start building... Ⅰ [misskey-reversi] build succeeded. Ⅰ [misskey-reversi] skip building d.ts because NODE_ENV is production. ┗ [misskey-reversi] finish building. mq Done in 2.4s packages/backend build$ swc src -d built -D --strip-leading-paths x Successfully compiled: 886 files, copied 31 files with swc (506.47ms) mq Done in 5.8s packages/frontend-shared build$ node ./build.js Ⅰ [frontend-shared] start building... Ⅰ [frontend-shared] build succeeded. Ⅰ [frontend-shared] skip building d.ts because NODE_ENV is production. ┗ [frontend-shared] finish building. mq Done in 2.4s packages/sw build$ node build.js Ⅰ Starting SW building... ┗ done mq Done in 4s packages/frontend build$ vite build [646 lines collapsed] Ⅰ ../../built/_frontend_vite_/CC5lIlZc.js 177.16 kB Ⅰ ../../built/_frontend_vite_/DMDrRND9.js 192.94 kB Ⅰ ../../built/_frontend_vite_/CLm82A-F.js 274.22 kB Ⅰ ../../built/_frontend_vite_/DHH9kzWJ.js 350.08 kB Ⅰ ../../built/_frontend_vite_/app-Dk-rInfu.js 713.10 kB Ⅰ ✓ built in 2m 46s Ⅰ (!) Some chunks are larger than 500 kB after minification. Consider: Ⅰ - Using dynamic import() to code-split the application Ⅰ - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualch… Ⅰ - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. ┗ Done in 2m 57.8s packages/frontend-embed build$ vite build [7 lines collapsed] Ⅰ ../../built/_frontend_embed_vite_/Cqq1W_WT.png 6.29 kB Ⅰ ../../built/_frontend_embed_vite_/CthQ4-e5.woff2 820.32 kB Ⅰ ../../built/_frontend_embed_vite_/Cxsed65d.woff 1,203.84 kB Ⅰ ../../built/_frontend_embed_vite_/FR5pMc0b.ttf 2,382.35 kB Ⅰ ../../built/_frontend_embed_vite_/Dhs21BEC.css 22.93 kB Ⅰ ../../built/_frontend_embed_vite_/Crj5WEiX.css 244.63 kB Ⅰ ../../built/_frontend_embed_vite_/app-BKDYMLKy.js 44.62 kB Ⅰ ../../built/_frontend_embed_vite_/BG1JcAnM.js 63.82 kB Ⅰ ../../built/_frontend_embed_vite_/C0ITntOc.js 110.84 kB Ⅰ ✓ built in 35.09s ┗ Done in 39.6s > misskey@2025.5.0 build-assets /home/misskey/misskey > node ./scripts/build-assets.mjs $ $ pnpm run init > misskey@2025.5.0 init /home/misskey/misskey > pnpm migrate > misskey@2025.5.0 migrate /home/misskey/misskey > cd packages/backend && pnpm migrate > backend@ migrate /home/misskey/misskey/packages/backend > pnpm typeorm migration:run -d ormconfig.js query: SELECT version() query: SELECT * FROM current_schema() query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations' query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC No migrations are pending $ |
Misskeyを起動する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
$ NODE_ENV=production pnpm run start > misskey@2025.5.0 start /home/misskey/misskey > pnpm check:connect && cd packages/backend && node ./built/boot/entry.js > misskey@2025.5.0 check:connect /home/misskey/misskey > cd packages/backend && pnpm check:connect > backend@ check:connect /home/misskey/misskey/packages/backend > node ./scripts/check_connect.js INFO * [core] Start main process... pid: 208833 _____ _ _ | |_|___ ___| |_ ___ _ _ | | | | |_ -|_ -| '_| -_| | | |_|_|_|_|___|___|_,_|___|_ | v2025.5.0 |___| Misskey is an open-source decentralized microblogging platform. If you like Misskey, please donate to support development. https://www.patreon.com/syuilo --- raspberrypi (PID: 208833) --- INFO * [core boot] Welcome to Misskey! INFO * [core boot] Misskey v2025.5.0 INFO * [core boot env] NODE_ENV: production (node:208833) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead. (Use `node --trace-deprecation ...` to show where the warning was created) INFO * [core boot nodejs] Version v22.13.1 detected. DONE * [core boot config] Loaded DONE * [core boot] Misskey initialized INFO * [core boot] mode: [disableClustering: false, onlyServer: false, onlyQueue: false] INFO * [core nest] NestFactory: Starting Nest application... INFO * [core nest] InstanceLoader: MainModule dependencies initialized INFO * [core nest] InstanceLoader: QueueModule dependencies initialized IMPORTANT! Eviction policy is allkeys-lru. It should be "noeviction" IMPORTANT! Eviction policy is allkeys-lru. It should be "noeviction" : CTRL + C # |
nginxにアクセスする設定を行う。
Misskeyのポートは3000である。
クライアントからアクセスされると、プロキシとしてMisskeyの3000番ポートに転送する設定を行う。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# cd /etc/nginx/conf.d # # vi hogehoge.jp.conf # # cat hogehoge.jp.conf server { listen 443 ssl http2; server_name ksm.wjg.jp; root /var/www/hogehoge.jp; : # Proxy to Node location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_http_version 1.1; proxy_redirect off; # If it's behind another reverse proxy or CDN, remove the following. proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; # For WebSocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # Cache settings proxy_cache cache1; proxy_cache_lock on; #proxy_cache_use_stale updating; proxy_force_ranges on; add_header X-Cache $upstream_cache_status; } } $ |
nginxを再起動する。
1 2 3 4 5 6 |
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # # systemctl restart nginx # |
ブート時にMisskeyを自動起動する設定を行う。
システム再起動時に自動起動する様に設定する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# vi /etc/systemd/system/misskey.service # # cat /etc/systemd/system/misskey.service [Unit] Description=Misskey daemon [Service] Type=simple User=misskey ExecStart=/usr/bin/npm start WorkingDirectory=/home/misskey/misskey Environment="NODE_ENV=production" TimeoutSec=60 StandardOutput=journal StandardError=journal SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target # # systemctl enable misskey Created symlink /etc/systemd/system/multi-user.target.wants/misskey.service → /etc/systemd/system/misskey.service. # # systemctl start misskey # # systemctl status misskey ● misskey.service - Misskey daemon Loaded: loaded (/etc/systemd/system/misskey.service; enabled; preset: disabled) Active: active (running) since Sat 2025-05-31 18:49:02 JST; 15s ago Main PID: 223594 (npm start) Tasks: 18 (limit: 23846) CPU: 15.599s CGroup: /system.slice/misskey.service tq223594 "npm start" mq223606 node ./built/boot/entry.js 5月 31 18:49:02 raspberrypi systemd[1]: Started Misskey daemon. 5月 31 18:49:03 raspberrypi misskey[223594]: > misskey@2025.5.0 start 5月 31 18:49:03 raspberrypi misskey[223594]: > pnpm check:connect && cd packages/backend && node ./built/boot/entry.js 5月 31 18:49:06 raspberrypi misskey[223607]: > misskey@2025.5.0 check:connect /home/misskey/misskey 5月 31 18:49:06 raspberrypi misskey[223607]: > cd packages/backend && pnpm check:connect 5月 31 18:49:09 raspberrypi misskey[223624]: > backend@ check:connect /home/misskey/misskey/packages/backend 5月 31 18:49:09 raspberrypi misskey[223624]: > node ./scripts/check_connect.js # # ps -fae | grep misskey misskey 223594 1 3 18:49 ? 00:00:01 npm start misskey 223606 223594 76 18:49 ? 00:00:27 node ./built/boot/entry.js root 223709 187121 0 18:49 pts/0 00:00:00 grep --color=auto misskey # |
ブラウザでアクセスする。
画面が表示された。
管理者のユーザ名とパスワードを設定する。
初期設定開始用パスワードを無視して、管理用ユーザ名とパスワードを入力して、登録する。
1 |