From f0a29721c9fb10f97faf386bc9d6b1b2fad97895 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 7 Apr 2019 21:50:36 +0900 Subject: Use PostgreSQL instead of MongoDB (#4572) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * wip * Update note.ts * Update timeline.ts * Update core.ts * wip * Update generate-visibility-query.ts * wip * wip * wip * wip * wip * Update global-timeline.ts * wip * wip * wip * Update vote.ts * wip * wip * Update create.ts * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * Update files.ts * wip * wip * Update CONTRIBUTING.md * wip * wip * wip * wip * wip * wip * wip * wip * Update read-notification.ts * wip * wip * wip * wip * wip * wip * wip * Update cancel.ts * wip * wip * wip * Update show.ts * wip * wip * Update gen-id.ts * Update create.ts * Update id.ts * wip * wip * wip * wip * wip * wip * wip * Docker: Update files about Docker (#4599) * Docker: Use cache if files used by `yarn install` was not updated This patch reduces the number of times to installing node_modules. For example, `yarn install` step will be skipped when only ".config/default.yml" is updated. * Docker: Migrate MongoDB to Postgresql Misskey uses Postgresql as a database instead of Mongodb since version 11. * Docker: Uncomment about data persistence This patch will save a lot of databases. * wip * wip * wip * Update activitypub.ts * wip * wip * wip * Update logs.ts * wip * Update drive-file.ts * Update register.ts * wip * wip * Update mentions.ts * wip * wip * wip * Update recommendation.ts * wip * Update index.ts * wip * Update recommendation.ts * Doc: Update docker.ja.md and docker.en.md (#1) (#4608) Update how to set up misskey. * wip * :v: * wip * Update note.ts * Update postgre.ts * wip * wip * wip * wip * Update add-file.ts * wip * wip * wip * Clean up * Update logs.ts * wip * :pizza: * wip * Ad notes * wip * Update api-visibility.ts * Update note.ts * Update add-file.ts * tests * tests * Update postgre.ts * Update utils.ts * wip * wip * Refactor * wip * Refactor * wip * wip * Update show-users.ts * Update update-instance.ts * wip * Update feed.ts * Update outbox.ts * Update outbox.ts * Update user.ts * wip * Update list.ts * Update update-hashtag.ts * wip * Update update-hashtag.ts * Refactor * Update update.ts * wip * wip * :v: * clean up * docs * Update push.ts * wip * Update api.ts * wip * :v: * Update make-pagination-query.ts * :v: * Delete hashtags.ts * Update instances.ts * Update instances.ts * Update create.ts * Update search.ts * Update reversi-game.ts * Update signup.ts * Update user.ts * id * Update example.yml * :art: * objectid * fix * reversi * reversi * Fix bug of chart engine * Add test of chart engine * Improve test * Better testing * Improve chart engine * Refactor * Add test of chart engine * Refactor * Add chart test * Fix bug * コミットし忘れ * Refactoring * :v: * Add tests * Add test * Extarct note tests * Refactor * 存在しないユーザーにメンションできなくなっていた問題を修正 * Fix bug * Update update-meta.ts * Fix bug * Update mention.vue * Fix bug * Update meta.ts * Update CONTRIBUTING.md * Fix bug * Fix bug * Fix bug * Clean up * Clean up * Update notification.ts * Clean up * Add mute tests * Add test * Refactor * Add test * Fix test * Refactor * Refactor * Add tests * Update utils.ts * Update utils.ts * Fix test * Update package.json * Update update.ts * Update manifest.ts * Fix bug * Fix bug * Add test * :art: * Update endpoint permissions * Updaye permisison * Update person.ts #4299 * データベースと同期しないように * Fix bug * Fix bug * Update reversi-game.ts * Use a feature of Node v11.7.0 to extract a public key (#4644) * wip * wip * :v: * Refactoring #1540 * test * test * test * test * test * test * test * Fix bug * Fix test * :sushi: * wip * #4471 * Add test for #4335 * Refactor * Fix test * Add tests * :clock4: * Fix bug * Add test * Add test * rename * Fix bug --- docs/backup.fr.md | 22 ---------------------- docs/backup.md | 22 ---------------------- docs/docker.en.md | 34 +++++++++++++++++++++++++++++++--- docs/docker.ja.md | 36 ++++++++++++++++++++++++++++++++---- docs/setup.en.md | 20 +++++++++++--------- docs/setup.fr.md | 12 ++++-------- docs/setup.ja.md | 20 +++++++++++--------- 7 files changed, 89 insertions(+), 77 deletions(-) delete mode 100644 docs/backup.fr.md delete mode 100644 docs/backup.md (limited to 'docs') diff --git a/docs/backup.fr.md b/docs/backup.fr.md deleted file mode 100644 index 19e99068ce..0000000000 --- a/docs/backup.fr.md +++ /dev/null @@ -1,22 +0,0 @@ -Comment faire une sauvegarde de votre Misskey ? -========================== - -Assurez-vous d'avoir installé **mongodb-tools**. - ---- - -Dans votre terminal : -``` shell -$ mongodump --archive=db-backup -u -p -``` - -Pour plus de détails, merci de consulter [la documentation de mongodump](https://docs.mongodb.com/manual/reference/program/mongodump/). - -Restauration -------- - -``` shell -$ mongorestore --archive=db-backup -``` - -Pour plus de détails, merci de consulter [la documentation de mongorestore](https://docs.mongodb.com/manual/reference/program/mongorestore/). diff --git a/docs/backup.md b/docs/backup.md deleted file mode 100644 index a69af0255b..0000000000 --- a/docs/backup.md +++ /dev/null @@ -1,22 +0,0 @@ -How to backup your Misskey -========================== - -Make sure **mongodb-tools** installed. - ---- - -In your shell: -``` shell -$ mongodump --archive=db-backup -u -p -``` - -For details, please see [mongodump docs](https://docs.mongodb.com/manual/reference/program/mongodump/). - -Restore -------- - -``` shell -$ mongorestore --archive=db-backup -``` - -For details, please see [mongorestore docs](https://docs.mongodb.com/manual/reference/program/mongorestore/). diff --git a/docs/docker.en.md b/docs/docker.en.md index f0fcdb66d5..ee69b6d7ae 100644 --- a/docs/docker.en.md +++ b/docs/docker.en.md @@ -15,9 +15,37 @@ This guide describes how to install and setup Misskey with Docker. *2.* Configure Misskey ---------------------------------------------------------------- -1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`. -2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copy the `.config/mongo_initdb_example.js` and rename it to `mongo_initdb.js`. -3. Edit `default.yml` and `mongo_initdb.js`. + +Create configuration files with following: + +```bash +cd .config +cp example.yml default.yml +cp docker_example.env docker.env +``` + +### `default.yml` + +Edit this file the same as non-Docker environment. +However hostname of Postgresql, Redis and Elasticsearch are not `localhost`, they are set in `docker-compose.yml`. +The following is default hostname: + +| Service | Hostname | +|---------------|----------| +| Postgresql | `db` | +| Redis | `redis` | +| Elasticsearch | `es` | + +### `docker.env` + +Configure Postgresql in this file. +The minimum required settings are: + +| name | Description | +|---------------------|---------------| +| `POSTGRES_PASSWORD` | Password | +| `POSTGRES_USER` | Username | +| `POSTGRES_DB` | Database name | *3.* Configure Docker ---------------------------------------------------------------- diff --git a/docs/docker.ja.md b/docs/docker.ja.md index 0baf285728..060d4e7bda 100644 --- a/docs/docker.ja.md +++ b/docs/docker.ja.md @@ -13,11 +13,39 @@ Dockerを使ったMisskey構築方法 2. `cd misskey` misskeyディレクトリに移動 3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 -*2.* 設定ファイルを作成する +*2.* 設定ファイルの作成と編集 ---------------------------------------------------------------- -1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする -2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` `.config/mongo_initdb_example.js`をコピーし名前を`mongo_initdb.js`にする -3. `default.yml`と`mongo_initdb.js`を編集する + +下記コマンドで設定ファイルを作成してください。 + +```bash +cd .config +cp example.yml default.yml +cp docker_example.env docker.env +``` + +### `default.yml`の編集 + +非Docker環境と同じ様に編集してください。 +ただし、Postgresql、RedisとElasticsearchのホストは`localhost`ではなく、`docker-compose.yml`で設定されたサービス名になっています。 +標準設定では次の通りです。 + +| サービス | ホスト名 | +|---------------|---------| +| Postgresql |`db` | +| Redis |`redis` | +| Elasticsearch |`es` | + +### `docker.env`の編集 + +このファイルはPostgresqlの設定を記述します。 +最低限記述する必要がある設定は次の通りです。 + +| 設定 | 内容 | +|---------------------|--------------| +| `POSTGRES_PASSWORD` | パスワード | +| `POSTGRES_USER` | ユーザー名 | +| `POSTGRES_DB` | データベース名 | *3.* Dockerの設定 ---------------------------------------------------------------- diff --git a/docs/setup.en.md b/docs/setup.en.md index 1125081445..28de1f32f3 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -22,8 +22,8 @@ adduser --disabled-password --disabled-login misskey Please install and setup these softwares: #### Dependencies :package: -* **[Node.js](https://nodejs.org/en/)** >= 10.0.0 -* **[MongoDB](https://www.mongodb.com/)** >= 3.6 +* **[Node.js](https://nodejs.org/en/)** >= 11.7.0 +* **[PostgreSQL](https://www.postgresql.org/)** >= 10 ##### Optional * [Redis](https://redis.io/) @@ -31,13 +31,9 @@ Please install and setup these softwares: * [Elasticsearch](https://www.elastic.co/) - required to enable the search feature * [FFmpeg](https://www.ffmpeg.org/) -*3.* Setup MongoDB +*3.* Setup PostgreSQL ---------------------------------------------------------------- -As root: -1. `mongo` Go to the mongo shell -2. `use misskey` Use the misskey database -3. `db.createUser( { user: "misskey", pwd: "", roles: [ { role: "readWrite", db: "misskey" } ] } )` Create the misskey user. -4. `exit` You're done! +:) *4.* Install Misskey ---------------------------------------------------------------- @@ -68,7 +64,13 @@ If you're still encountering errors about some modules, use node-gyp: 3. `node-gyp build` 4. `NODE_ENV=production npm run build` -*7.* That is it. +*7.* Init DB +---------------------------------------------------------------- +``` shell +npm run init +``` + +*8.* That is it. ---------------------------------------------------------------- Well done! Now, you have an environment that run to Misskey. diff --git a/docs/setup.fr.md b/docs/setup.fr.md index 959ec3392f..217a4c6a5b 100644 --- a/docs/setup.fr.md +++ b/docs/setup.fr.md @@ -22,8 +22,8 @@ adduser --disabled-password --disabled-login misskey Installez les paquets suivants : #### Dépendences :package: -* **[Node.js](https://nodejs.org/en/)** >= 10.0.0 -* **[MongoDB](https://www.mongodb.com/)** >= 3.6 +* **[Node.js](https://nodejs.org/en/)** >= 11.7.0 +* **[PostgreSQL](https://www.postgresql.org/)** >= 10 ##### Optionnels * [Redis](https://redis.io/) @@ -31,13 +31,9 @@ Installez les paquets suivants : * [Elasticsearch](https://www.elastic.co/) - requis pour pouvoir activer la fonctionnalité de recherche * [FFmpeg](https://www.ffmpeg.org/) -*3.* Paramètrage de MongoDB +*3.* Paramètrage de PostgreSQL ---------------------------------------------------------------- -En root : -1. `mongo` Ouvrez le shell mongo -2. `use misskey` Utilisez la base de données misskey -3. `db.createUser( { user: "misskey", pwd: "", roles: [ { role: "readWrite", db: "misskey" } ] } )` Créez l'utilisateur misskey. -4. `exit` Vous avez terminé ! +:) *4.* Installation de Misskey ---------------------------------------------------------------- diff --git a/docs/setup.ja.md b/docs/setup.ja.md index 8a21e104d6..1543541eee 100644 --- a/docs/setup.ja.md +++ b/docs/setup.ja.md @@ -22,8 +22,8 @@ adduser --disabled-password --disabled-login misskey これらのソフトウェアをインストール・設定してください: #### 依存関係 :package: -* **[Node.js](https://nodejs.org/en/)** (10.0.0以上) -* **[MongoDB](https://www.mongodb.com/)** (3.6以上) +* **[Node.js](https://nodejs.org/en/)** (11.7.0以上) +* **[PostgreSQL](https://www.postgresql.org/)** (10以上) ##### オプション * [Redis](https://redis.io/) @@ -38,13 +38,9 @@ adduser --disabled-password --disabled-login misskey * 検索機能を有効にするためにはインストールが必要です。 * [FFmpeg](https://www.ffmpeg.org/) -*3.* MongoDBの設定 +*3.* PostgreSQLの設定 ---------------------------------------------------------------- -ルートで: -1. `mongo` mongoシェルを起動 -2. `use misskey` misskeyデータベースを使用 -3. `db.createUser( { user: "misskey", pwd: "", roles: [ { role: "readWrite", db: "misskey" } ] } )` misskeyユーザーを作成 -4. `exit` mongoシェルを終了 +:) *4.* Misskeyのインストール ---------------------------------------------------------------- @@ -74,7 +70,13 @@ Debianをお使いであれば、`build-essential`パッケージをインスト 3. `node-gyp build` 4. `NODE_ENV=production npm run build` -*7.* 以上です! +*7.* データベースを初期化 +---------------------------------------------------------------- +``` shell +npm run init +``` + +*8.* 以上です! ---------------------------------------------------------------- お疲れ様でした。これでMisskeyを動かす準備は整いました。 -- cgit v1.3.1-freya From eb14acbe0c2f2e3897f82a01779daa493d345436 Mon Sep 17 00:00:00 2001 From: かひわし4(バージョン1) Date: Mon, 8 Apr 2019 21:40:13 +0900 Subject: Doc: Update installing command (#4655) Replace the "Checkout to Latest Release" command. Current setup document will checkout latest alpha version. Because grep command in the document does not exclude alpha version tags. --- docs/docker.en.md | 4 ++-- docs/docker.fr.md | 4 ++-- docs/docker.ja.md | 4 ++-- docs/setup.en.md | 4 ++-- docs/setup.fr.md | 4 ++-- docs/setup.ja.md | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) (limited to 'docs') diff --git a/docs/docker.en.md b/docs/docker.en.md index ee69b6d7ae..1b607f9eae 100644 --- a/docs/docker.en.md +++ b/docs/docker.en.md @@ -11,7 +11,7 @@ This guide describes how to install and setup Misskey with Docker. ---------------------------------------------------------------- 1. `git clone -b master git://github.com/syuilo/misskey.git` Clone Misskey repository's master branch. 2. `cd misskey` Move to misskey directory. -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag. +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) tag. *2.* Configure Misskey ---------------------------------------------------------------- @@ -67,7 +67,7 @@ Just `docker-compose up -d`. GLHF! ### How to update your Misskey server to the latest version 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 4. `git stash pop` 5. `docker-compose build` 6. Check [ChangeLog](../CHANGELOG.md) for migration information diff --git a/docs/docker.fr.md b/docs/docker.fr.md index 8f7e9f4294..e89a8f1b15 100644 --- a/docs/docker.fr.md +++ b/docs/docker.fr.md @@ -12,7 +12,7 @@ Ce guide explique comment installer et configurer Misskey avec Docker. ---------------------------------------------------------------- 1. `git clone -b master git://github.com/syuilo/misskey.git` Clone le dépôt de Misskey sur la branche master. 2. `cd misskey` Naviguez dans le dossier du dépôt. -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest). +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest). *2.* Configuration de Misskey ---------------------------------------------------------------- @@ -40,7 +40,7 @@ Utilisez la commande `docker-compose up -d`. GLHF! ### How to update your Misskey server to the latest version 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 4. `git stash pop` 5. `docker-compose build` 6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration diff --git a/docs/docker.ja.md b/docs/docker.ja.md index 060d4e7bda..ecc75fef2e 100644 --- a/docs/docker.ja.md +++ b/docs/docker.ja.md @@ -11,7 +11,7 @@ Dockerを使ったMisskey構築方法 ---------------------------------------------------------------- 1. `git clone -b master git://github.com/syuilo/misskey.git` masterブランチからMisskeyレポジトリをクローン 2. `cd misskey` misskeyディレクトリに移動 -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 *2.* 設定ファイルの作成と編集 ---------------------------------------------------------------- @@ -67,7 +67,7 @@ cp docker_example.env docker.env ### Misskeyを最新バージョンにアップデートする方法: 1. `git fetch` 2. `git stash` -3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +3. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 4. `git stash pop` 5. `docker-compose build` 6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する diff --git a/docs/setup.en.md b/docs/setup.en.md index 28de1f32f3..2e1706de35 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -40,7 +40,7 @@ Please install and setup these softwares: 1. `su - misskey` Connect to misskey user. 2. `git clone -b master git://github.com/syuilo/misskey.git` Clone the misskey repo from master branch. 3. `cd misskey` Navigate to misskey directory -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) +4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) 5. `npm install` Install misskey dependencies. *5.* Configure Misskey @@ -109,7 +109,7 @@ You can check if the service is running with `systemctl status misskey`. ### How to update your Misskey server to the latest version 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. Check [ChangeLog](../CHANGELOG.md) for migration information diff --git a/docs/setup.fr.md b/docs/setup.fr.md index 217a4c6a5b..2f8694b9da 100644 --- a/docs/setup.fr.md +++ b/docs/setup.fr.md @@ -40,7 +40,7 @@ Installez les paquets suivants : 1. `su - misskey` Basculez vers l'utilisateur misskey. 2. `git clone -b master git://github.com/syuilo/misskey.git` Clonez la branche master du dépôt misskey. 3. `cd misskey` Accédez au dossier misskey. -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) +4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) 5. `npm install` Installez les dépendances de misskey. *5.* Création du fichier de configuration @@ -103,7 +103,7 @@ Vous pouvez vérifier si le service a démarré en utilisant la commande `system ### Méthode de mise à jour vers la plus récente version de Misskey 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. Consultez [ChangeLog](../CHANGELOG.md) pour les information de migration. diff --git a/docs/setup.ja.md b/docs/setup.ja.md index 1543541eee..f636a74181 100644 --- a/docs/setup.ja.md +++ b/docs/setup.ja.md @@ -47,7 +47,7 @@ adduser --disabled-password --disabled-login misskey 1. `su - misskey` misskeyユーザーを使用 2. `git clone -b master git://github.com/syuilo/misskey.git` masterブランチからMisskeyレポジトリをクローン 3. `cd misskey` misskeyディレクトリに移動 -4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 +4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 5. `npm install` Misskeyの依存パッケージをインストール *5.* 設定ファイルを作成する @@ -115,7 +115,7 @@ CentOSで1024以下のポートを使用してMisskeyを使用する場合は`Ex ### Misskeyを最新バージョンにアップデートする方法: 1. `git fetch` -2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` +2. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` 3. `npm install` 4. `NODE_ENV=production npm run build` 5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する -- cgit v1.3.1-freya From e369031a28a7aae390d17d4d9f075c6f0df7fe55 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 13 Apr 2019 19:19:32 +0900 Subject: Redis必須に MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config/example.yml | 8 ++++---- CHANGELOG.md | 3 ++- docs/setup.en.md | 17 ++++++----------- docs/setup.fr.md | 15 +++++---------- docs/setup.ja.md | 23 ++++++----------------- src/db/redis.ts | 4 ++-- src/server/api/limiter.ts | 6 ------ src/server/api/service/discord.ts | 10 ++-------- src/server/api/service/github.ts | 10 ++-------- src/server/api/service/twitter.ts | 10 ++-------- src/server/api/streaming.ts | 31 +++++++++++++------------------ src/services/stream.ts | 22 ++++------------------ 12 files changed, 48 insertions(+), 111 deletions(-) (limited to 'docs') diff --git a/.config/example.yml b/.config/example.yml index 10239f1a76..24985fd280 100644 --- a/.config/example.yml +++ b/.config/example.yml @@ -65,10 +65,10 @@ db: # ┌─────────────────────┐ #───┘ Redis configuration └───────────────────────────────────── -#redis: -# host: localhost -# port: 6379 -# pass: example-pass +redis: + host: localhost + port: 6379 + #pass: example-pass # ┌─────────────────────────────┐ #───┘ Elasticsearch configuration └───────────────────────────── diff --git a/CHANGELOG.md b/CHANGELOG.md index 3149777034..a17e89ff7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,8 @@ If you encounter any problems with updating, please try the following: 11.0.0 ---------- -* データベースがMongoDBからPostgreSQLに変更されました +* **データベースがMongoDBからPostgreSQLに変更されました** +* **Redisが必須に** * アカウントを完全に削除できるように * ミュート/ブロック時にそのユーザーの投稿のウォッチをすべて解除するように * フォロー申請数が実際より1すくなくなる問題を修正 diff --git a/docs/setup.en.md b/docs/setup.en.md index 2e1706de35..45e3e2c68b 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -24,18 +24,13 @@ Please install and setup these softwares: #### Dependencies :package: * **[Node.js](https://nodejs.org/en/)** >= 11.7.0 * **[PostgreSQL](https://www.postgresql.org/)** >= 10 +* **[Redis](https://redis.io/)** ##### Optional -* [Redis](https://redis.io/) - * Redis is optional, but we strongly recommended to install it * [Elasticsearch](https://www.elastic.co/) - required to enable the search feature * [FFmpeg](https://www.ffmpeg.org/) -*3.* Setup PostgreSQL ----------------------------------------------------------------- -:) - -*4.* Install Misskey +*3.* Install Misskey ---------------------------------------------------------------- 1. `su - misskey` Connect to misskey user. 2. `git clone -b master git://github.com/syuilo/misskey.git` Clone the misskey repo from master branch. @@ -43,12 +38,12 @@ Please install and setup these softwares: 4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest) 5. `npm install` Install misskey dependencies. -*5.* Configure Misskey +*4.* Configure Misskey ---------------------------------------------------------------- 1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`. 2. Edit `default.yml` -*6.* Build Misskey +*5.* Build Misskey ---------------------------------------------------------------- Build misskey with the following: @@ -64,13 +59,13 @@ If you're still encountering errors about some modules, use node-gyp: 3. `node-gyp build` 4. `NODE_ENV=production npm run build` -*7.* Init DB +*6.* Init DB ---------------------------------------------------------------- ``` shell npm run init ``` -*8.* That is it. +*7.* That is it. ---------------------------------------------------------------- Well done! Now, you have an environment that run to Misskey. diff --git a/docs/setup.fr.md b/docs/setup.fr.md index 2f8694b9da..e6d36aeff8 100644 --- a/docs/setup.fr.md +++ b/docs/setup.fr.md @@ -24,18 +24,13 @@ Installez les paquets suivants : #### Dépendences :package: * **[Node.js](https://nodejs.org/en/)** >= 11.7.0 * **[PostgreSQL](https://www.postgresql.org/)** >= 10 +* **[Redis](https://redis.io/)** ##### Optionnels -* [Redis](https://redis.io/) - * Redis est optionnel mais nous vous recommandons vivement de l'installer * [Elasticsearch](https://www.elastic.co/) - requis pour pouvoir activer la fonctionnalité de recherche * [FFmpeg](https://www.ffmpeg.org/) -*3.* Paramètrage de PostgreSQL ----------------------------------------------------------------- -:) - -*4.* Installation de Misskey +*3.* Installation de Misskey ---------------------------------------------------------------- 1. `su - misskey` Basculez vers l'utilisateur misskey. 2. `git clone -b master git://github.com/syuilo/misskey.git` Clonez la branche master du dépôt misskey. @@ -43,12 +38,12 @@ Installez les paquets suivants : 4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest) 5. `npm install` Installez les dépendances de misskey. -*5.* Création du fichier de configuration +*4.* Création du fichier de configuration ---------------------------------------------------------------- 1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le`default.yml`. 2. Editez le fichier `default.yml` -*6.* Construction de Misskey +*5.* Construction de Misskey ---------------------------------------------------------------- Construisez Misskey comme ceci : @@ -64,7 +59,7 @@ Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp: 3. `node-gyp build` 4. `NODE_ENV=production npm run build` -*7.* C'est tout. +*6.* C'est tout. ---------------------------------------------------------------- Excellent ! Maintenant, vous avez un environnement prêt pour lancer Misskey diff --git a/docs/setup.ja.md b/docs/setup.ja.md index f636a74181..1b1730b69e 100644 --- a/docs/setup.ja.md +++ b/docs/setup.ja.md @@ -24,25 +24,14 @@ adduser --disabled-password --disabled-login misskey #### 依存関係 :package: * **[Node.js](https://nodejs.org/en/)** (11.7.0以上) * **[PostgreSQL](https://www.postgresql.org/)** (10以上) +* **[Redis](https://redis.io/)** ##### オプション -* [Redis](https://redis.io/) - * Redisはオプションですが、インストールすることを強く推奨します。 - * インストールしなくていいのは、あなたのインスタンスが自分専用のときだけとお考えください。 - * 具体的には、Redisをインストールしないと、次の事が出来なくなります: - * Misskeyプロセスを複数起動しての負荷分散 - * レートリミット - * ジョブキュー - * Twitter連携 * [Elasticsearch](https://www.elastic.co/) * 検索機能を有効にするためにはインストールが必要です。 * [FFmpeg](https://www.ffmpeg.org/) -*3.* PostgreSQLの設定 ----------------------------------------------------------------- -:) - -*4.* Misskeyのインストール +*3.* Misskeyのインストール ---------------------------------------------------------------- 1. `su - misskey` misskeyユーザーを使用 2. `git clone -b master git://github.com/syuilo/misskey.git` masterブランチからMisskeyレポジトリをクローン @@ -50,12 +39,12 @@ adduser --disabled-password --disabled-login misskey 4. `git checkout $(git tag -l | grep -Ev -- '-(rc|alpha)\.[0-9]+$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認 5. `npm install` Misskeyの依存パッケージをインストール -*5.* 設定ファイルを作成する +*4.* 設定ファイルを作成する ---------------------------------------------------------------- 1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする。 2. `default.yml` を編集する。 -*6.* Misskeyのビルド +*5.* Misskeyのビルド ---------------------------------------------------------------- 次のコマンドでMisskeyをビルドしてください: @@ -70,13 +59,13 @@ Debianをお使いであれば、`build-essential`パッケージをインスト 3. `node-gyp build` 4. `NODE_ENV=production npm run build` -*7.* データベースを初期化 +*6.* データベースを初期化 ---------------------------------------------------------------- ``` shell npm run init ``` -*8.* 以上です! +*7.* 以上です! ---------------------------------------------------------------- お疲れ様でした。これでMisskeyを動かす準備は整いました。 diff --git a/src/db/redis.ts b/src/db/redis.ts index cebf2a10af..6518cb0059 100644 --- a/src/db/redis.ts +++ b/src/db/redis.ts @@ -1,7 +1,7 @@ import * as redis from 'redis'; import config from '../config'; -export default config.redis ? redis.createClient( +export default redis.createClient( config.redis.port, config.redis.host, { @@ -9,4 +9,4 @@ export default config.redis ? redis.createClient( prefix: config.redis.prefix, db: config.redis.db || 0 } -) : null; +); diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts index 8a6c94458e..48d12d3cc6 100644 --- a/src/server/api/limiter.ts +++ b/src/server/api/limiter.ts @@ -8,12 +8,6 @@ import Logger from '../../services/logger'; const logger = new Logger('limiter'); export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => { - // Redisがインストールされてない場合は常に許可 - if (limiterDB == null) { - ok(); - return; - } - const limitation = endpoint.meta.limit!; const key = limitation.hasOwnProperty('key') diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts index b2561dee61..d8a979b5b2 100644 --- a/src/server/api/service/discord.ts +++ b/src/server/api/service/discord.ts @@ -83,8 +83,6 @@ async function getOAuth2() { } router.get('/connect/discord', async ctx => { - if (redis == null) return; - if (!compareOrigin(ctx)) { ctx.throw(400, 'invalid origin'); return; @@ -110,8 +108,6 @@ router.get('/connect/discord', async ctx => { }); router.get('/signin/discord', async ctx => { - if (redis == null) return; - const sessid = uuid(); const params = { @@ -138,8 +134,6 @@ router.get('/signin/discord', async ctx => { }); router.get('/dc/cb', async ctx => { - if (redis == null) return; - const userToken = getUserToken(ctx); const oauth2 = await getOAuth2(); @@ -160,7 +154,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise((res, rej) => { - redis!.get(sessid, async (_, state) => { + redis.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -241,7 +235,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise((res, rej) => { - redis!.get(userToken, async (_, state) => { + redis.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts index 4878d8c529..a4d274cc62 100644 --- a/src/server/api/service/github.ts +++ b/src/server/api/service/github.ts @@ -80,8 +80,6 @@ async function getOath2() { } router.get('/connect/github', async ctx => { - if (redis == null) return; - if (!compareOrigin(ctx)) { ctx.throw(400, 'invalid origin'); return; @@ -106,8 +104,6 @@ router.get('/connect/github', async ctx => { }); router.get('/signin/github', async ctx => { - if (redis == null) return; - const sessid = uuid(); const params = { @@ -133,8 +129,6 @@ router.get('/signin/github', async ctx => { }); router.get('/gh/cb', async ctx => { - if (redis == null) return; - const userToken = getUserToken(ctx); const oauth2 = await getOath2(); @@ -155,7 +149,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise((res, rej) => { - redis!.get(sessid, async (_, state) => { + redis.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -222,7 +216,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise((res, rej) => { - redis!.get(userToken, async (_, state) => { + redis.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts index b35ee8c479..39fdfd8654 100644 --- a/src/server/api/service/twitter.ts +++ b/src/server/api/service/twitter.ts @@ -79,8 +79,6 @@ async function getTwAuth() { } router.get('/connect/twitter', async ctx => { - if (redis == null) return; - if (!compareOrigin(ctx)) { ctx.throw(400, 'invalid origin'); return; @@ -99,8 +97,6 @@ router.get('/connect/twitter', async ctx => { }); router.get('/signin/twitter', async ctx => { - if (redis == null) return; - const twAuth = await getTwAuth(); const twCtx = await twAuth!.begin(); @@ -122,8 +118,6 @@ router.get('/signin/twitter', async ctx => { }); router.get('/tw/cb', async ctx => { - if (redis == null) return; - const userToken = getUserToken(ctx); const twAuth = await getTwAuth(); @@ -137,7 +131,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise((res, rej) => { - redis!.get(sessid, async (_, twCtx) => { + redis.get(sessid, async (_, twCtx) => { res(twCtx); }); }); @@ -170,7 +164,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise((res, rej) => { - redis!.get(userToken, async (_, twCtx) => { + redis.get(userToken, async (_, twCtx) => { res(twCtx); }); }); diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts index ab66f2b6d9..902c62ef98 100644 --- a/src/server/api/streaming.ts +++ b/src/server/api/streaming.ts @@ -1,7 +1,6 @@ import * as http from 'http'; import * as websocket from 'websocket'; import * as redis from 'redis'; -import Xev from 'xev'; import MainStreamConnection from './stream'; import { ParsedUrlQuery } from 'querystring'; @@ -23,28 +22,24 @@ module.exports = (server: http.Server) => { let ev: EventEmitter; - if (config.redis) { - // Connect to Redis - const subscriber = redis.createClient( - config.redis.port, config.redis.host); + // Connect to Redis + const subscriber = redis.createClient( + config.redis.port, config.redis.host); - subscriber.subscribe('misskey'); + subscriber.subscribe('misskey'); - ev = new EventEmitter(); + ev = new EventEmitter(); - subscriber.on('message', async (_, data) => { - const obj = JSON.parse(data); + subscriber.on('message', async (_, data) => { + const obj = JSON.parse(data); - ev.emit(obj.channel, obj.message); - }); + ev.emit(obj.channel, obj.message); + }); - connection.once('close', () => { - subscriber.unsubscribe(); - subscriber.quit(); - }); - } else { - ev = new Xev(); - } + connection.once('close', () => { + subscriber.unsubscribe(); + subscriber.quit(); + }); const main = new MainStreamConnection(connection, ev, user, app); diff --git a/src/services/stream.ts b/src/services/stream.ts index c52af48b59..28cb2057e2 100644 --- a/src/services/stream.ts +++ b/src/services/stream.ts @@ -1,33 +1,19 @@ import redis from '../db/redis'; -import Xev from 'xev'; import { User } from '../models/entities/user'; import { Note } from '../models/entities/note'; import { UserList } from '../models/entities/user-list'; import { ReversiGame } from '../models/entities/games/reversi/game'; class Publisher { - private ev: Xev | null = null; - - constructor() { - // Redisがインストールされてないときはプロセス間通信を使う - if (redis == null) { - this.ev = new Xev(); - } - } - private publish = (channel: string, type: string | null, value?: any): void => { const message = type == null ? value : value == null ? { type: type, body: null } : { type: type, body: value }; - if (this.ev) { - this.ev.emit(channel, message); - } else { - redis!.publish('misskey', JSON.stringify({ - channel: channel, - message: message - })); - } + redis.publish('misskey', JSON.stringify({ + channel: channel, + message: message + })); } public publishMainStream = (userId: User['id'], type: string, value?: any): void => { -- cgit v1.3.1-freya