Misskeyインスタンスを立ててみた。(備忘録)

実際にMisskeyインスタンスを設置してみることにしました。
(現状は実験的取り組みのため、URLは非公開とさせていただきます。)
次に構築する時に備えて、以下に備忘録を残しておきます。

・サーバ
サーバは、IDCFクラウドさんのLight.S1プラン(0.4円/h, 200円/月)に、ディスク容量はとりあえず20GB(1GBあたり 0.04円/h, 20円/月)で、合計600円/月という構成です。

・OS
とりあえずUbuntu 18.04.1を使用しました。
ISOイメージ( http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.1-server-amd64.iso )からインストールを実行。

・パーティション構成

マウントポイント サイズ オプション
Reserved BIOS boot area 1.0 MB
/boot 0.5 GB
/ 10.0 GB
/var/lib/mongodb 10.0 GB noatime nodiratime
swap max

・OSインストール後に実施したこと
注)実験環境の為、rootユーザで実行していますがsudoを利用することをお勧めします。

IDCFクラウドさんの環境に最適化するために「open-vm-tools」をインストールします。
# apt install open-vm-tools

OSをアップデートします。
# apt update
# apt upgrade

ファイアウォールの設定やSSHサーバの設定、カーネルパラメータの設定を行います。
<セキュリティ上の理由により非公開>

・MongoDB
データベースの管理者を設定します。
$ mongo
> use admin
> db.createUser({user: “admin”, pwd: “passw0rd”, roles: [{role: “userAdminAnyDatabase”, db: “admin”}]})
> exit

mongodを再起動して適用。
$ sudo systemctl restart mongod

Misskeyで使用するデータベースとユーザを作成します。
$ mongo
> use admin
> db.auth(“admin”, “passw0rd”)
> use misskey_database
> db.createUser({user: “misskey”, pwd: “pa22word”, roles: [{role: “readWrite”, db: “misskey_database”}]})
> exit

・Misskey
Node.jsとRedisをインストールします。
$ sudo su
# apt install curl gnupg
# curl -sL https://deb.nodesource.com/setup_10.x | bash –
# apt install nodejs redis-server redis-tools git build-essential
# vi /etc/redis/redis.conf

実際にMisskeyを動かすユーザを作成します。
# adduser misskey

Misskeyをインストールしますが、node-gypを使用しない方式ではnpm run buildが上手くいかなかったのでnode-gypを使用します。(要追加検証)
# npm install -g node-gyp web-push
# su misskey
$ cd
$ git clone https://github.com/syuilo/misskey.git misskey
$ cd misskey
$ git checkout 10.33.0
各種設定を行います。
$ cp .config/example.yml .config/default.yml
$ vi .config/default.yml
ビルドを行う前にproductionにしておきましょう。
$ export NODE_ENV=production
$ npm install
$ npm install gulp-imagemin
$ node-gyp configure
$ node-gyp build
$ npm run build
これでインストールは完了です。

・Systemd
$ sudo su
# vi /etc/systemd/system/misskey.service
[Unit]
Description=Misskey daemon
After=network.target
[Service]
Type=simple
User=misskey
Environment="NODE_ENV=production"
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target

# systemctl enable /etc/systemd/system/misskey.service
# systemctl daemon-reload
# systemctl start misskey.service

これでMisskeyが動きました。

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中