Misskey構築の手引き ================================================================ Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます! このガイドではMisskeyのインストール・セットアップ方法について解説します。 [英語版もあります - English version also available](./setup.en.md) ---------------------------------------------------------------- *1.* Misskeyユーザーの作成 ---------------------------------------------------------------- Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。 Debianの例: ``` adduser --disabled-password --disabled-login misskey ``` *2.* 依存関係をインストールする ---------------------------------------------------------------- これらのソフトウェアをインストール・設定してください: #### 依存関係 :package: * **[Node.js](https://nodejs.org/en/)** (10.0.0以上) * **[MongoDB](https://www.mongodb.com/)** (3.6以上) ##### オプション * [Redis](https://redis.io/) * Redisはオプションですが、インストールすることを強く推奨します。 * インストールしなくていいのは、あなたのインスタンスが自分専用のときだけとお考えください。 * 具体的には、Redisをインストールしないと、次の事が出来なくなります: * Misskeyプロセスを複数起動しての負荷分散 * レートリミット * ジョブキュー * Twitter連携 * [Elasticsearch](https://www.elastic.co/) * 検索機能を有効にするためにはインストールが必要です。 * [FFmpeg](https://www.ffmpeg.org/) *3.* MongoDBの設定 ---------------------------------------------------------------- ルートで: 1. `mongo` mongoシェルを起動 2. `use misskey` misskeyデータベースを使用 3. `db.createUser( { user: "misskey", pwd: "", roles: [ { role: "readWrite", db: "misskey" } ] } )` misskeyユーザーを作成 4. `exit` mongoシェルを終了 *4.* Misskeyのインストール ---------------------------------------------------------------- 1. misskeyユーザーを使用 `su - misskey` 2. masterブランチからMisskeyレポジトリをクローン `git clone -b master git://github.com/syuilo/misskey.git` 3. misskeyディレクトリに移動 `cd misskey` 4. [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 ```bash git tag | grep '^10\.' | sort -V --reverse | \ while read tag_name; do \ if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ | grep -qE '"(draft|prerelease)": true'; \ then git checkout $tag_name; break; fi ; done ``` 5. Misskeyの依存パッケージをインストール `npm install` *5.* 設定ファイルを作成する ---------------------------------------------------------------- 1. `.config/example.yml`をコピーし名前を`default.yml`にする。 `cp .config/example.yml .config/default.yml` 2. `default.yml` を編集する。 *6.* Misskeyのビルド ---------------------------------------------------------------- 次のコマンドでMisskeyをビルドしてください: `NODE_ENV=production npm run build` Debianをお使いであれば、`build-essential`パッケージをインストールする必要があります。 何らかのモジュールでエラーが発生する場合はnode-gypを使ってください: 1. `npm install -g node-gyp` 2. `node-gyp configure` 3. `node-gyp build` 4. `NODE_ENV=production npm run build` *7.* 以上です! ---------------------------------------------------------------- お疲れ様でした。これでMisskeyを動かす準備は整いました。 ### 通常起動 `NODE_ENV=production npm start`するだけです。GLHF! ### systemdを用いた起動 1. systemdサービスのファイルを作成 `/etc/systemd/system/misskey.service` 2. エディタで開き、以下のコードを貼り付けて保存: ``` [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=syslog StandardError=syslog SyslogIdentifier=misskey Restart=always [Install] WantedBy=multi-user.target ``` CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。 3. systemdを再読み込みしmisskeyサービスを有効化 `systemctl daemon-reload ; systemctl enable misskey` 4. misskeyサービスの起動 `systemctl start misskey` `systemctl status misskey`と入力すると、サービスの状態を調べることができます。 ### Misskeyを最新バージョンにアップデートする方法: 1. `git fetch` 2.   ```bash git tag | grep '^10\.' | sort -V --reverse | \ while read tag_name; do \ if ! curl -s "https://api.github.com/repos/syuilo/misskey/releases/tags/$tag_name" \ | grep -qE '"(draft|prerelease)": true'; \ then git checkout $tag_name; break; fi ; done ``` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する なにか問題が発生した場合は、`npm run clean`または`npm run cleanall`すると直る場合があります。 ---------------------------------------------------------------- なにかお困りのことがありましたらお気軽にご連絡ください。