おひとり様Misskey鯖構築日記《6》
今回ものえるさんの記事を参考に進めていきます。
今回は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ユーザ作成の一行目のコマンドを実行すると、
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
上記コマンドでバージョンを確認したところ・・・
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といったようなメッセージが出ていたのが気掛かりです。
以下の画像の通りにバージョンアップするべきか・・・。
とりあえずバージョンアップせずに進めてみます。
次にデータベース初期化とビルドを行います。
最新のリリースをチェックアウトします。
git checkout master
yarnで依存関係をインストールします。
package.jsonに記載されている、Misskeyが利用しているパッケージ(ソフトウェア部品)のインストールです。
Misskeyがバージョンアップした場合は、package.jsonの内容も変更されることがありますので、必ず実行します。
変更されたものだけを検出して高速に実行されます。
yarn install
インストールは正常に終了したようですが、以下のようなメッセージが表示されたのが気掛かりです。
設定ファイルのひな形をコピーして、編集します。
cp .config/example.yml .config/default.yml nano .config/default.yml
編集するのは以下の部分です。
url: (Misskeyを設置するアドレス) port: 3000 db: user: (PostgreSQLのユーザ名) pass: (PostgreSQLのパスワード)
ここのhttps以降をMisskeyを設置するアドレスに変更します。
portはこのように#を外したのですが、合っているのか分かりませんがこのまま進めてみます。
それでは、Misskeyをビルドしてみます。
NODE_ENV=production yarn build
ビルド中にいくつかのエラーメッセージと共に以下のようなメッセージが表示されました。
ビルドが完了したら、データベースを初期化します。
あらかじめ空のデータベースを作ってありますので、ここで行うのは、テーブルやインデックスの作成です。
yarn run init
ここまでの手順が完了すると、Misskeyを起動する準備が整います。
今回はここまでにします。
次回はsystemdの設定からやっていきます。