大体おんなじ毎日

エンジニアじゃないけど技術ブログ書いています

おひとり様Misskey鯖構築日記《6》

今回ものえるさんの記事を参考に進めていきます。

blog.noellabo.jp

今回はMisskeyのセットアップという項目から再開します。

まずは、PostgreSQLと、redis、nginx、ビルドツールとpythonをaptでインストールしておきます。

sudo apt install postgresql redis-server nginx build-essential python

上記コマンドでまとめてインストールします。

次にPostgreSQLの設定をします。

PostgreSQLに任意のユーザ名を設定し、任意の名前のデータベースを作成します。

パスワードも設定します。

sudo -u postgres psql

CREATE ROLE (ユーザ名) LOGIN CREATEDB PASSWORD '(パスワード)';

CREATE DATABASE (データベース名) OWNER (ユーザ名);

\q

上記コマンドで設定します。

次にMisskeyのインストールをやっていきます。

misskeyユーザーを作って、リポジトリをcloneするところまでやります。

sudo adduser --disabled-password --disabled-login misskey

sudo -iu misskey

git clone -b master git://github.com/syuilo/misskey.git

上記コマンドを実行します。

sudo adduser --disabled-password --disabled-login misskey

先ほどのmisskeyユーザ作成の一行目のコマンドを実行すると、

f:id:crim0404:20211024200901p:plain

Full nameを入力しろみたいなメッセージが出てくるが、これは何も入力せずにエンターを押せばデフォルトとなるようです。

私はFull nameのところにmisskeyと入力してから気がついたので、そのままmisskeyという名前になっています。

次にnodejsとyarnをnodenvでインストールします。

まずnodenvを取ってきます。

git clone https://github.com/nodenv/nodenv.git ~/.nodenv

cd ~/.nodenv && src/configure && make -C src

.bashrcの末尾に、nodenvのPATHと初期化を追記します。

ついでに、メモリの少ない環境でyarn buildがHeap不足にならないように、NODE_OPTIONSも指定しておきます。

nano ~/.bashrc

下記の内容を~/.bashrcの末尾に追加します。

export PATH="$HOME/.nodenv/bin:$PATH"

eval "$(nodenv init -)"


export NODE_OPTIONS=--max_old_space_size=4096

一旦シェルを抜けて、もう一度入り直します。

logout

sudo -iu misskey

node installできるようにプラグインを追加します。

mkdir -p "$(nodenv root)"/plugins

git clone https://github.com/nodenv/node-build.git "$(nodenv root)"/plugins/node-build

一緒にyarnをインストールできるようにするプラグインを追加します。

git clone https://github.com/pine/nodenv-yarn-install.git "$(nodenv root)/plugins/nodenv-yarn-install"

nodenvをupdateするためのプラグインを追加します。

git clone https://github.com/nodenv/nodenv-update.git "$(nodenv root)"/plugins/nodenv-update

misskeyディレクトリに入って、.node-versionファイルを確認。 misskeyが想定しているnodeのバージョンになります。

cd misskey

cat .node-version

上記コマンドでバージョンを確認したところ・・・

f:id:crim0404:20211024203105p:plain

v16.6.2と出たので、nodeenvで16.6.2をインストールします。

nodenv install 16.6.2

無事にインストールされたか、nodeとyarnのそれぞれのバージョンを確認します。

node -v

yarn -v

nodeは上記で指定したバージョンが表示されたのですが、

yarnのバージョンが1.22.17で、yarnをインストールした時に現在のバージョンは8.1.1といったようなメッセージが出ていたのが気掛かりです。

以下の画像の通りにバージョンアップするべきか・・・。

とりあえずバージョンアップせずに進めてみます。

f:id:crim0404:20211024204241p:plain

次にデータベース初期化とビルドを行います。

最新のリリースをチェックアウトします。

git checkout master

yarnで依存関係をインストールします。

package.jsonに記載されている、Misskeyが利用しているパッケージ(ソフトウェア部品)のインストールです。

Misskeyがバージョンアップした場合は、package.jsonの内容も変更されることがありますので、必ず実行します。

変更されたものだけを検出して高速に実行されます。

yarn install

インストールは正常に終了したようですが、以下のようなメッセージが表示されたのが気掛かりです。

f:id:crim0404:20211024211420p:plain

設定ファイルのひな形をコピーして、編集します。

cp .config/example.yml .config/default.yml

nano .config/default.yml

編集するのは以下の部分です。

url: (Misskeyを設置するアドレス)

port: 3000

db:

  user: (PostgreSQLのユーザ名)

  pass: (PostgreSQLのパスワード)

f:id:crim0404:20211024212803p:plain

ここのhttps以降をMisskeyを設置するアドレスに変更します。

f:id:crim0404:20211024213634p:plain

portはこのように#を外したのですが、合っているのか分かりませんがこのまま進めてみます。

それでは、Misskeyをビルドしてみます。

NODE_ENV=production yarn build

ビルド中にいくつかのエラーメッセージと共に以下のようなメッセージが表示されました。

f:id:crim0404:20211024215004p:plain

ビルドが完了したら、データベースを初期化します。

あらかじめ空のデータベースを作ってありますので、ここで行うのは、テーブルやインデックスの作成です。

yarn run init

ここまでの手順が完了すると、Misskeyを起動する準備が整います。

今回はここまでにします。

次回はsystemdの設定からやっていきます。