From 6e57ef281da36c3a3dc5049e57f58e32003ada0e Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 19 May 2017 00:52:50 +0900 Subject: やった MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- docs/BASE.pug | 43 ----------- docs/api/entities/post.pug | 149 --------------------------------------- docs/api/entities/user.pug | 122 -------------------------------- docs/api/getting-started.pug | 82 --------------------- docs/api/library.pug | 14 ---- docs/docker.en.md | 23 ++++++ docs/index.pug | 9 --- docs/license.pug | 8 --- docs/link-to-twitter.pug | 14 ---- docs/privacy.pug | 10 --- docs/setup.en.md | 92 ++++++++++++++++++++++++ docs/setup.ja.md | 93 ++++++++++++++++++++++++ docs/setup.md | 119 ------------------------------- docs/tou.pug | 9 --- src/docs/api/entities/post.pug | 149 +++++++++++++++++++++++++++++++++++++++ src/docs/api/entities/user.pug | 122 ++++++++++++++++++++++++++++++++ src/docs/api/getting-started.pug | 82 +++++++++++++++++++++ src/docs/api/library.pug | 14 ++++ src/docs/index.pug | 9 +++ src/docs/link-to-twitter.pug | 14 ++++ src/docs/privacy.pug | 10 +++ src/docs/tou.pug | 9 +++ 23 files changed, 618 insertions(+), 580 deletions(-) delete mode 100644 docs/BASE.pug delete mode 100644 docs/api/entities/post.pug delete mode 100644 docs/api/entities/user.pug delete mode 100644 docs/api/getting-started.pug delete mode 100644 docs/api/library.pug create mode 100644 docs/docker.en.md delete mode 100644 docs/index.pug delete mode 100644 docs/license.pug delete mode 100644 docs/link-to-twitter.pug delete mode 100644 docs/privacy.pug create mode 100644 docs/setup.en.md create mode 100644 docs/setup.ja.md delete mode 100644 docs/setup.md delete mode 100644 docs/tou.pug create mode 100644 src/docs/api/entities/post.pug create mode 100644 src/docs/api/entities/user.pug create mode 100644 src/docs/api/getting-started.pug create mode 100644 src/docs/api/library.pug create mode 100644 src/docs/index.pug create mode 100644 src/docs/link-to-twitter.pug create mode 100644 src/docs/privacy.pug create mode 100644 src/docs/tou.pug diff --git a/README.md b/README.md index 7aadc41ea8..2b7bf0aa11 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ and more! You can touch with your own eyes at https://misskey.xyz/. Setup and Installation ---------------------------------------------------------------- -Please see [Setup and installation guide](./docs/setup.md). +Please see [Setup and installation guide](./docs/setup.en.md). Contribution ---------------------------------------------------------------- diff --git a/docs/BASE.pug b/docs/BASE.pug deleted file mode 100644 index 633488202f..0000000000 --- a/docs/BASE.pug +++ /dev/null @@ -1,43 +0,0 @@ -doctype html - -html(lang='ja', dir='ltr') - - head - meta(charset='utf-8') - meta(name='application-name', content='Misskey') - meta(name='theme-color', content=themeColor) - meta(name='referrer', content='origin') - meta(name='viewport', content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no') - link(rel='stylesheet', href='/assets/style.css') - title - block title - | | About Misskey - - body - nav - ul - li: a(href='/link-to-twitter') Twitterと連携する - li - p API - ul - li: a(href='/api/getting-started') Getting Started - li - p Entities - ul - li: a(href='/api/entities/post') Post - li: a(href='/api/entities/user') User - li: a(href='/api/library') ライブラリ - li: a(href='/tou') 利用規約 - li: a(href='/privacy') プライバシー - li: a(href='/license') ライセンス - - main - article - block content - footer - p.contribution - | 間違いを見つけた、またはドキュメントに貢献したいですか? - a(href='https://github.com/syuilo/misskey/blob/master/docs/' + path + '.pug', target='_blank') Github 上でこのページを編集する - | か、 - a(href='https://github.com/syuilo/misskey/fork', target='_blank') Github からこのサイトを Fork してプルリクエストしましょう! - p.copyright (c) syuilo 2017 diff --git a/docs/api/entities/post.pug b/docs/api/entities/post.pug deleted file mode 100644 index e505d3fcb6..0000000000 --- a/docs/api/entities/post.pug +++ /dev/null @@ -1,149 +0,0 @@ -extend ../../BASE - -block title - | Entity: Post - -block content - h1 Post - p 投稿を表します。 - - section - h2 Properties - table.entity - thead: tr - td Name - td Type - td Description - tbody - tr.nullable.optional - td app - td: a(href='./app', target='_blank') App - td 投稿したアプリ - tr.nullable - td app_id - td ID - td 投稿したアプリのID - tr - td created_at - td Date - td 投稿日時 - tr - td id - td ID - td 投稿ID - tr.optional - td is_liked - td Boolean - td いいね したかどうか - tr - td likes_count - td Number - td いいね数 - tr.nullable.optional - td media_ids - td ID[] - td 添付されたメディアのIDの配列 - tr.nullable.optional - td media - td: a(href='./drive-file', target='_blank') DriveFile[] - td 添付されたメディアの配列 - tr - td replies_count - td Number - td 返信数 - tr.optional - td reply_to - td: a(href='./post', target='_blank') Post - td 返信先の投稿 - tr.nullable - td reply_to_id - td ID - td 返信先の投稿のID - tr.optional - td repost - td: a(href='./post', target='_blank') Post - td Repostした投稿 - tr - td repost_count - td Number - td Repostされた数 - tr.nullable - td repost_id - td ID - td Repostした投稿のID - tr.nullable - td text - td String - td 本文 - tr.optional - td user - td: a(href='./user', target='_blank') User - td 投稿者 - tr - td user_id - td ID - td 投稿者のID - - section - h2 Example - pre: code. - { - "created_at": "2016-12-10T00:28:50.114Z", - "media_ids": null, - "reply_to_id": "584a16b15860fc52320137e3", - "repost_id": null, - "text": "小日向美穂だぞ!", - "user_id": "5848bf7764e572683f4402f8", - "app_id": null, - "likes_count": 1, - "replies_count": 1, - "id": "584b4c42d8e5186f8f755d0c", - "user": { - "birthday": null, - "created_at": "2016-12-08T02:03:35.332Z", - "bio": "女が嫌いです、女性は好きです", - "followers_count": 11, - "following_count": 11, - "links": null, - "location": "", - "name": "女が嫌い", - "posts_count": 26, - "likes_count": 2, - "liked_count": 20, - "username": "onnnagakirai", - "id": "5848bf7764e572683f4402f8", - "avatar_url": "https://file.himasaku.net/5848c0ec64e572683f4402fc", - "banner_url": "https://file.himasaku.net/5848c12864e572683f4402fd", - "is_following": true, - "is_followed": true - }, - "reply_to": { - "created_at": "2016-12-09T02:28:01.563Z", - "media_ids": null, - "reply_to_id": "5849d35e547e4249be329884", - "repost_id": null, - "text": "アイコン小日向美穂?", - "user_id": "57d01a501fdf2d07be417afe", - "app_id": null, - "replies_count": 1, - "id": "584a16b15860fc52320137e3", - "user": { - "birthday": null, - "created_at": "2016-09-07T13:46:56.605Z", - "bio": "どうすれば君だけのために生きていけるの", - "followers_count": 51, - "following_count": 97, - "links": null, - "location": "川崎", - "name": "きな子", - "posts_count": 4813, - "username": "syuilo", - "likes_count": 3141, - "liked_count": 750, - "id": "57d01a501fdf2d07be417afe", - "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a", - "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5" - } - }, - "is_liked": true - } diff --git a/docs/api/entities/user.pug b/docs/api/entities/user.pug deleted file mode 100644 index a37886bb19..0000000000 --- a/docs/api/entities/user.pug +++ /dev/null @@ -1,122 +0,0 @@ -extend ../../BASE - -block title - | Entity: User - -block content - h1 User - p ユーザーを表します。 - - section - h2 Properties - table.entity - thead: tr - td Name - td Type - td Description - tbody - tr.nullable.optional - td avatar_id - td ID - td アバターに設定しているドライブのファイルのID - tr.nullable - td avatar_url - td String - td アバターURL - tr.nullable.optional - td banner_id - td ID - td バナーに設定しているドライブのファイルのID - tr.nullable - td banner_url - td String - td バナーURL - tr.nullable - td bio - td String - td プロフィール - tr.nullable - td birthday - td String - td 誕生日(YYYY-MM-DD) - tr - td created_at - td Date - td アカウント作成日時 - tr.optional - td drive_capacity - td Number - td ドライブの最大容量(byte単位) - tr - td followers_count - td Number - td フォロワー数 - tr - td following_count - td Number - td フォロー数 - tr - td id - td ID - td ユーザーID - tr.optional - td is_bot - td Boolean - td botかどうか - tr.optional - td is_followed - td Boolean - td フォローされているか - tr.optional - td is_following - td Boolean - td フォローしているか - tr - td liked_count - td Number - td 投稿にいいねされた数 - tr - td likes_count - td Number - td 投稿にいいねした数 - tr.nullable - td location - td String - td 住処 - tr - td name - td String - td ニックネーム - tr - td posts_count - td Number - td 投稿数 - tr - td username - td String - td ユーザー名 - - section - h2 Example - pre: code. - { - "avatar_id": "583ddc6e64df272771f74c1a", - "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a", - "banner_id": "584bfc82d8e5186f8f755ec5", - "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5", - "bio": "どうすれば君だけのために生きていけるの", - "birthday": "1997-12-06", - "created_at": "2016-09-07T13:46:56.605Z", - "drive_capacity": 1073741824, - "email": null, - "followers_count": 51, - "following_count": 97, - "id": "57d01a501fdf2d07be417afe", - "liked_count": 750, - "likes_count": 3130, - "links": null, - "location": "川崎", - "name": "きな子", - "posts_count": 4811, - "username": "syuilo" - } diff --git a/docs/api/getting-started.pug b/docs/api/getting-started.pug deleted file mode 100644 index 2aa2822e42..0000000000 --- a/docs/api/getting-started.pug +++ /dev/null @@ -1,82 +0,0 @@ -extend ../BASE - -block title - | Getting Started - -block content - h1 Getting Started - - p MisskeyはREST APIやStreaming APIを提供しており、プログラムからMisskeyの全ての機能を利用することができます。 - p それらのAPIを利用するには、まずAPIを利用したいアカウントのアクセストークンを取得する必要があります: - - section - h2 自分のアクセストークンを取得したい場合 - p 自分自身のアクセストークンは、設定 > API で確認できます。 - p.tip - | アカウントを乗っ取られてしまう可能性があるため、トークンは第三者に教えないでください(アプリなどにも入力しないでください)。 - br - | 万が一トークンが漏れたりその可能性がある場合は トークンを再生成できます。(副作用として、ログインしているすべてのデバイスでログアウトが発生します) - - section - h2 他人のアクセストークンを取得する - p - | 不特定多数のユーザーからAPIを利用したい場合、アプリケーションを作成します。 - br - | アプリケーションを作成すると、ユーザーが連携を許可した時に、そのユーザーのアクセストークンを取得することができます。 - p アプリケーションを作成しアクセストークンを取得するまでの流れを見ていきます。 - - section - h3 アプリケーションを作成する - p まずはあなたのアプリケーションを作成しましょう。 - p - | デベロッパーセンターにアクセスし、アプリ > アプリ作成 に進みます。 - br - | 次に、フォームに必要事項を記入します: - dl - dt アプリケーション名 - dd あなたのアプリケーションの名前。 - dt Named ID - dd アプリを識別する/a-z-/で構成されたID。 - dt アプリの概要 - dd アプリの簡単な説明を入力してください。 - dt コールバックURL - dd あなたのアプリケーションがWebアプリケーションである場合、ユーザーが後述するフォームで認証を終えた際にリダイレクトするURLを設定できます。 - dt 権限 - dd アプリケーションが要求する権限。ここで要求した機能だけがAPIからアクセスできます。 - p.tip - | 権限はアプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーはすべて無効になります。 - p - | アプリケーションを作成すると、作ったアプリの管理ページに進みます。 - br - | アプリのシークレットキー(App Secret)が表示されていますので、メモしておいてください。 - p.tip - | アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。 - - section - h3 ユーザーに認証させる - p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。 - p 認証セッションを開始するには、#{api_url}/auth/session/generateへパラメータにapp_secretとしてApp Secretを含めたリクエストを送信します。 - p - | そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。 - br - | この認証フォームのURLをブラウザで表示し、ユーザーにフォームを表示してください。 - section - h4 あなたのアプリがコールバックURLを設定している場合 - p ユーザーがアプリの連携を許可すると設定しているコールバックURLにtokenという名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 - section - h4 あなたのアプリがコールバックURLを設定していない場合 - p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。 - p - | 次に、#{api_url}/auth/session/userkeyapp_secretとしてApp Secretを、tokenとしてセッションのトークンをパラメータとして付与したリクエストを送信してください。 - br - | 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます! - p - | 以降アクセストークンは、ユーザーのアクセストークン+アプリのシークレットキーをsha256したものとして扱います。 - - p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンをiとしてパラメータに含めるだけです。 - - section - h2 リクエスト形式 - p application/jsonを受け付けます。 - p.tip - | 現在application/x-www-form-urlencodedも受け付けていますが、将来的にこのサポートはされなくなる予定です。 diff --git a/docs/api/library.pug b/docs/api/library.pug deleted file mode 100644 index 4b2943b2a9..0000000000 --- a/docs/api/library.pug +++ /dev/null @@ -1,14 +0,0 @@ -extend ../BASE - -block title - | ライブラリ - -block content - h1 ライブラリ - - p Misskey APIを便利に利用するためのライブラリ一覧です。 - - section - h2 .NET - ul - li: strong: a(href='https://github.com/syuilo/Misq') Misq (公式) diff --git a/docs/docker.en.md b/docs/docker.en.md new file mode 100644 index 0000000000..fc5f348bfb --- /dev/null +++ b/docs/docker.en.md @@ -0,0 +1,23 @@ +Setup with Docker :whale: +================================================================ + +Ensure that the working directory is the repository root directory. + +To create misskey image: + +`sudo docker build -t misskey ./docker` + +To run misskey: + +`sudo docker run --rm -i -t -p $PORT:80 -v $(pwd):/root/misskey -v $DBPATH:/data/db misskey` + +where `$PORT` is the port used to access Misskey Web from host browser +and `$DBPATH` is the path of MongoDB database on the host for data persistence. + +ex: `sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db misskey` + +If you want to run misskey in production mode, add `--env NODE_ENV=production` like this: + +`sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db --env NODE_ENV=production misskey` + +Note that `$(pwd)` is the working directory. diff --git a/docs/index.pug b/docs/index.pug deleted file mode 100644 index bae22d9c7f..0000000000 --- a/docs/index.pug +++ /dev/null @@ -1,9 +0,0 @@ -extend ./BASE - -block title - | About Misskey - -block content - h1 About Misskey - - p 誰か書いて diff --git a/docs/license.pug b/docs/license.pug deleted file mode 100644 index 323b9b9528..0000000000 --- a/docs/license.pug +++ /dev/null @@ -1,8 +0,0 @@ -extend ./BASE - -block title - | ライセンス - -block content - h1 ライセンス - div!= license diff --git a/docs/link-to-twitter.pug b/docs/link-to-twitter.pug deleted file mode 100644 index 6e98df52c3..0000000000 --- a/docs/link-to-twitter.pug +++ /dev/null @@ -1,14 +0,0 @@ -extend ./BASE - -block title - | Twitterと連携する - -block content - h1 Twitterと連携する - - p 設定 -> Twitter から、お使いのMisskeyアカウントとお使いのTwitterアカウントを関連付けることができます。 - p アカウントの関連付けを行うと、プロフィールにTwitterアカウントへのリンクが表示されたりなどします。 - p - | MisskeyがあなたのTwitterアカウントでツイートしたり誰かをフォローしたりなどといったことは一切行いませんので、ご安心ください。(Misskeyはそのような権限を取得しないので、行おうと思っても行えません) - br - | このことに関しては、Twitterのアプリケーション認証フォームで詳細を確認することができます。また、いつでも連携を取り消すことができます。 diff --git a/docs/privacy.pug b/docs/privacy.pug deleted file mode 100644 index 75885c2b0f..0000000000 --- a/docs/privacy.pug +++ /dev/null @@ -1,10 +0,0 @@ -extend ./BASE - -block title - | プライバシーポリシー - -block content - h1 プライバシーポリシー - - p Misskeyはユーザーの了解を得た上でメールアドレスを設定することがありますが、この情報をみだりに公開することはありません。ただし、法的強制力のある請求の場合はこの限りではありません。 - p プライバシーポリシーは予告なく変更される可能性があります。 diff --git a/docs/setup.en.md b/docs/setup.en.md new file mode 100644 index 0000000000..4f8b3b2019 --- /dev/null +++ b/docs/setup.en.md @@ -0,0 +1,92 @@ +Misskey Setup and Installation Guide +================================================================ + +We thank you for your interest in setup your Misskey server! +This guide describes how to install and setup Misskey. + +[Japanse version also available - 日本語版もあります](./setup.ja.md) + +---------------------------------------------------------------- + +If you can use Docker, Please see [Setup with Docker](./docker.en.md). + +*1.* Domains +---------------------------------------------------------------- +Misskey requires two domains called the primary domain and the secondary domain. + +* The primary domain is used to provide main service of Misskey. +* The secondary domain is used to avoid vulnerabilities such as XSS. + +**Ensure that the secondary domain is not a subdomain of the primary domain.** + +### Subdomains +Note that Misskey uses following subdomains: + +* **api**.*{primary domain}* +* **auth**.*{primary domain}* +* **about**.*{primary domain}* +* **dev**.*{primary domain}* +* **file**.*{secondary domain}* + +*2.* reCAPTCHA tokens +---------------------------------------------------------------- +Misskey requires reCAPTCHA tokens. +Please visit https://www.google.com/recaptcha/intro/ and generate keys. + +*3.* Install dependencies +---------------------------------------------------------------- +Please install and setup these softwares: + +#### Dependencies :package: +* *Node.js* and *npm* +* **[MongoDB](https://www.mongodb.com/)** +* **[Redis](https://redis.io/)** +* **[GraphicsMagick](http://www.graphicsmagick.org/)** + +##### Optional +* [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB + +*4.* Install Misskey +---------------------------------------------------------------- +There is **two ways** to install Misskey: + +### WAY 1) Using built code (recommended) +We have official release of Misskey. +The built code is automatically pushed to https://github.com/syuilo/misskey/tree/release after the CI test succeeds. + +1. `git clone -b release git://github.com/syuilo/misskey.git` +2. `cd misskey` +3. `npm install` + +#### Update +1. `git fetch` +2. `git reset --hard origin/release` +3. `npm install` + +### WAY 2) Using source code +If you want to build Misskey manually, you can do it via the +`build` command after download the source code of Misskey and install dependencies: + +1. `git clone -b master git://github.com/syuilo/misskey.git` +2. `cd misskey` +3. `npm install` +4. `npm run build` + +#### Update +1. `git pull origin master` +2. `npm install` +3. `npm run build` + +*5.* That is it. +---------------------------------------------------------------- +お疲れ様でした。これでMisskeyを動かす準備は整いました。 + +### Launch +Just `sudo npm start`. GLHF! + +### Testing +Run `npm test` after building + +### Debugging :bug: +#### Show debug messages +Misskey uses [debug](https://github.com/visionmedia/debug) and the namespace is `misskey:*`. diff --git a/docs/setup.ja.md b/docs/setup.ja.md new file mode 100644 index 0000000000..e260ae0fcb --- /dev/null +++ b/docs/setup.ja.md @@ -0,0 +1,93 @@ +Misskey構築の手引き +================================================================ + +Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます! +このガイドではMisskeyのインストール・セットアップ方法について解説します。 + +[英語版もあります - English version also available](./setup.en.md) + +---------------------------------------------------------------- + +Dockerを利用してMisskeyを構築することもできます: [Setup with Docker](./docker.en.md)。 +その場合、3および4番目の手順はスキップできます。 + +*1.* ドメインの用意 +---------------------------------------------------------------- +Misskeyはプライマリ ドメインとセカンダリ ドメインを必要とします。 + +* プライマリ ドメインはMisskeyの主要な部分を提供するために使われます。 +* セカンダリ ドメインはXSSといった脆弱性の対策に使われます。 + +**セカンダリ ドメインがプライマリ ドメインのサブドメインであってはなりません。** + +### サブドメイン +Misskeyは以下のサブドメインを使います: + +* **api**.*{primary domain}* +* **auth**.*{primary domain}* +* **about**.*{primary domain}* +* **dev**.*{primary domain}* +* **file**.*{secondary domain}* + +*2.* reCAPTCHAトークンの用意 +---------------------------------------------------------------- +MisskeyはreCAPTCHAトークンを必要とします。 +https://www.google.com/recaptcha/intro/ にアクセスしてトークンを生成してください。 + +*3.* 依存関係をインストールする +---------------------------------------------------------------- +これらのソフトウェアをインストール・設定してください: + +#### 依存関係 :package: +* *Node.js* と *npm* +* **[MongoDB](https://www.mongodb.com/)** +* **[Redis](https://redis.io/)** +* **[GraphicsMagick](http://www.graphicsmagick.org/)** + +##### オプション +* [Elasticsearch](https://www.elastic.co/) - 検索機能を向上させるために用います。 + +*4.* Misskeyのインストール +---------------------------------------------------------------- +Misskeyをインストールするには**2つの方法**があります: + +### 方法 1) ビルドされたコードを利用する (推奨) +Misskeyには公式のリリースがあります。 +ビルドされたコードはCIテストに合格した後、自動で https://github.com/syuilo/misskey/tree/release にpushされています。 + +1. `git clone -b release git://github.com/syuilo/misskey.git` +2. `cd misskey` +3. `npm install` + +#### アップデートするには: +1. `git fetch` +2. `git reset --hard origin/release` +3. `npm install` + +### 方法 2) ソースコードを利用する +Misskeyを手動でビルドしたい場合は、Misskeyのソースコードと依存関係をインストールした後、 +`build`コマンドを用いることができます: + +1. `git clone -b master git://github.com/syuilo/misskey.git` +2. `cd misskey` +3. `npm install` +4. `npm run build` + +#### アップデートするには: +1. `git pull origin master` +2. `npm install` +3. `npm run build` + +*5.* 以上です! +---------------------------------------------------------------- +お疲れ様でした。これでMisskeyを動かす準備は整いました。 + +### 起動 +`sudo npm start`するだけです。GLHF! + +### テスト +(ビルドされている状態で)`npm test` + +### デバッグ :bug: +#### デバッグメッセージを表示するようにする +Misskeyは[debug](https://github.com/visionmedia/debug)モジュールを利用しており、ネームスペースは`misskey:*`となっています。 diff --git a/docs/setup.md b/docs/setup.md deleted file mode 100644 index 3a5edfca97..0000000000 --- a/docs/setup.md +++ /dev/null @@ -1,119 +0,0 @@ -Misskey Setup and Installation Guide -================================================================ - -We thank you for your interest in setup your Misskey server! -This guide describes how to install and setup Misskey. - -*1.* Install dependencies ----------------------------------------------------------------- - -There is **two ways** to install and setup dependencies: - -### WAY 1) Setup with Docker :whale: - -Ensure that the working directory is the repository root directory. - -To create misskey image: - -`sudo docker build -t misskey ./docker` - -To run misskey: - -`sudo docker run --rm -i -t -p $PORT:80 -v $(pwd):/root/misskey -v $DBPATH:/data/db misskey` - -where `$PORT` is the port used to access Misskey Web from host browser -and `$DBPATH` is the path of MongoDB database on the host for data persistence. - -ex: `sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db misskey` - -If you want to run misskey in production mode, add `--env NODE_ENV=production` like this: - -`sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db --env NODE_ENV=production misskey` - -Note that `$(pwd)` is the working directory. - -### WAY 2) Setup manually - -Please install and setup following dependencies: - -#### Dependencies :package: -Please install these softwares. -* *Node.js* and *npm* -* **[MongoDB](https://www.mongodb.com/)** -* **[Redis](https://redis.io/)** -* **[GraphicsMagick](http://www.graphicsmagick.org/)** - -##### Optional -* [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB - -*2.* Domains ----------------------------------------------------------------- - -Misskey requires two domains called the primary domain and the secondary domain. - -* The primary domain is used to provide main service of Misskey. -* The secondary domain is used to avoid vulnerabilities such as XSS. - -**Ensure that the secondary domain is not a subdomain of the primary domain.** - -### Subdomains -Note that Misskey uses following subdomains: - -* **api**.*{primary domain}* -* **auth**.*{primary domain}* -* **about**.*{primary domain}* -* **dev**.*{primary domain}* -* **file**.*{secondary domain}* - -*3.* reCAPTCHA tokens ----------------------------------------------------------------- - -Misskey requires reCAPTCHA tokens. -Please visit https://www.google.com/recaptcha/intro/ and generate keys. - -*4.* Install Misskey ----------------------------------------------------------------- - -There is **two ways** to install Misskey: - -### WAY 1) Using built code (recommended) -We have official release of Misskey. -The built code is automatically pushed to https://github.com/syuilo/misskey/tree/release after the CI test succeeds. - -1. `git clone -b release git://github.com/syuilo/misskey.git` -2. `cd misskey` -3. `npm install` - -#### Update -1. `git fetch` -2. `git reset --hard origin/release` -3. `npm install` - -### WAY 2) Using source code -If you want to build Misskey manually, you can do it via the -`build` command after download the source code of Misskey and install dependencies: - -1. `git clone -b master git://github.com/syuilo/misskey.git` -2. `cd misskey` -3. `npm install` -4. `npm run build` - -#### Update -1. `git pull origin master` -2. `npm install` -3. `npm run build` - -*5.* That is it. ----------------------------------------------------------------- - -お疲れ様でした。これでMisskeyを動かす準備は整いました。 - -### Launch -Just `sudo npm start`. GLHF! - -### Testing -Run `npm test` after building - -### Debugging :bug: -#### Show debug messages -Misskey uses [debug](https://github.com/visionmedia/debug) and the namespace is `misskey:*`. diff --git a/docs/tou.pug b/docs/tou.pug deleted file mode 100644 index cb3ab84a48..0000000000 --- a/docs/tou.pug +++ /dev/null @@ -1,9 +0,0 @@ -extend ./BASE - -block title - | 利用規約 - -block content - h1 利用規約 - - p 法律上問題のあることはお止めください。 diff --git a/src/docs/api/entities/post.pug b/src/docs/api/entities/post.pug new file mode 100644 index 0000000000..e505d3fcb6 --- /dev/null +++ b/src/docs/api/entities/post.pug @@ -0,0 +1,149 @@ +extend ../../BASE + +block title + | Entity: Post + +block content + h1 Post + p 投稿を表します。 + + section + h2 Properties + table.entity + thead: tr + td Name + td Type + td Description + tbody + tr.nullable.optional + td app + td: a(href='./app', target='_blank') App + td 投稿したアプリ + tr.nullable + td app_id + td ID + td 投稿したアプリのID + tr + td created_at + td Date + td 投稿日時 + tr + td id + td ID + td 投稿ID + tr.optional + td is_liked + td Boolean + td いいね したかどうか + tr + td likes_count + td Number + td いいね数 + tr.nullable.optional + td media_ids + td ID[] + td 添付されたメディアのIDの配列 + tr.nullable.optional + td media + td: a(href='./drive-file', target='_blank') DriveFile[] + td 添付されたメディアの配列 + tr + td replies_count + td Number + td 返信数 + tr.optional + td reply_to + td: a(href='./post', target='_blank') Post + td 返信先の投稿 + tr.nullable + td reply_to_id + td ID + td 返信先の投稿のID + tr.optional + td repost + td: a(href='./post', target='_blank') Post + td Repostした投稿 + tr + td repost_count + td Number + td Repostされた数 + tr.nullable + td repost_id + td ID + td Repostした投稿のID + tr.nullable + td text + td String + td 本文 + tr.optional + td user + td: a(href='./user', target='_blank') User + td 投稿者 + tr + td user_id + td ID + td 投稿者のID + + section + h2 Example + pre: code. + { + "created_at": "2016-12-10T00:28:50.114Z", + "media_ids": null, + "reply_to_id": "584a16b15860fc52320137e3", + "repost_id": null, + "text": "小日向美穂だぞ!", + "user_id": "5848bf7764e572683f4402f8", + "app_id": null, + "likes_count": 1, + "replies_count": 1, + "id": "584b4c42d8e5186f8f755d0c", + "user": { + "birthday": null, + "created_at": "2016-12-08T02:03:35.332Z", + "bio": "女が嫌いです、女性は好きです", + "followers_count": 11, + "following_count": 11, + "links": null, + "location": "", + "name": "女が嫌い", + "posts_count": 26, + "likes_count": 2, + "liked_count": 20, + "username": "onnnagakirai", + "id": "5848bf7764e572683f4402f8", + "avatar_url": "https://file.himasaku.net/5848c0ec64e572683f4402fc", + "banner_url": "https://file.himasaku.net/5848c12864e572683f4402fd", + "is_following": true, + "is_followed": true + }, + "reply_to": { + "created_at": "2016-12-09T02:28:01.563Z", + "media_ids": null, + "reply_to_id": "5849d35e547e4249be329884", + "repost_id": null, + "text": "アイコン小日向美穂?", + "user_id": "57d01a501fdf2d07be417afe", + "app_id": null, + "replies_count": 1, + "id": "584a16b15860fc52320137e3", + "user": { + "birthday": null, + "created_at": "2016-09-07T13:46:56.605Z", + "bio": "どうすれば君だけのために生きていけるの", + "followers_count": 51, + "following_count": 97, + "links": null, + "location": "川崎", + "name": "きな子", + "posts_count": 4813, + "username": "syuilo", + "likes_count": 3141, + "liked_count": 750, + "id": "57d01a501fdf2d07be417afe", + "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a", + "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5" + } + }, + "is_liked": true + } diff --git a/src/docs/api/entities/user.pug b/src/docs/api/entities/user.pug new file mode 100644 index 0000000000..a37886bb19 --- /dev/null +++ b/src/docs/api/entities/user.pug @@ -0,0 +1,122 @@ +extend ../../BASE + +block title + | Entity: User + +block content + h1 User + p ユーザーを表します。 + + section + h2 Properties + table.entity + thead: tr + td Name + td Type + td Description + tbody + tr.nullable.optional + td avatar_id + td ID + td アバターに設定しているドライブのファイルのID + tr.nullable + td avatar_url + td String + td アバターURL + tr.nullable.optional + td banner_id + td ID + td バナーに設定しているドライブのファイルのID + tr.nullable + td banner_url + td String + td バナーURL + tr.nullable + td bio + td String + td プロフィール + tr.nullable + td birthday + td String + td 誕生日(YYYY-MM-DD) + tr + td created_at + td Date + td アカウント作成日時 + tr.optional + td drive_capacity + td Number + td ドライブの最大容量(byte単位) + tr + td followers_count + td Number + td フォロワー数 + tr + td following_count + td Number + td フォロー数 + tr + td id + td ID + td ユーザーID + tr.optional + td is_bot + td Boolean + td botかどうか + tr.optional + td is_followed + td Boolean + td フォローされているか + tr.optional + td is_following + td Boolean + td フォローしているか + tr + td liked_count + td Number + td 投稿にいいねされた数 + tr + td likes_count + td Number + td 投稿にいいねした数 + tr.nullable + td location + td String + td 住処 + tr + td name + td String + td ニックネーム + tr + td posts_count + td Number + td 投稿数 + tr + td username + td String + td ユーザー名 + + section + h2 Example + pre: code. + { + "avatar_id": "583ddc6e64df272771f74c1a", + "avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a", + "banner_id": "584bfc82d8e5186f8f755ec5", + "banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5", + "bio": "どうすれば君だけのために生きていけるの", + "birthday": "1997-12-06", + "created_at": "2016-09-07T13:46:56.605Z", + "drive_capacity": 1073741824, + "email": null, + "followers_count": 51, + "following_count": 97, + "id": "57d01a501fdf2d07be417afe", + "liked_count": 750, + "likes_count": 3130, + "links": null, + "location": "川崎", + "name": "きな子", + "posts_count": 4811, + "username": "syuilo" + } diff --git a/src/docs/api/getting-started.pug b/src/docs/api/getting-started.pug new file mode 100644 index 0000000000..2aa2822e42 --- /dev/null +++ b/src/docs/api/getting-started.pug @@ -0,0 +1,82 @@ +extend ../BASE + +block title + | Getting Started + +block content + h1 Getting Started + + p MisskeyはREST APIやStreaming APIを提供しており、プログラムからMisskeyの全ての機能を利用することができます。 + p それらのAPIを利用するには、まずAPIを利用したいアカウントのアクセストークンを取得する必要があります: + + section + h2 自分のアクセストークンを取得したい場合 + p 自分自身のアクセストークンは、設定 > API で確認できます。 + p.tip + | アカウントを乗っ取られてしまう可能性があるため、トークンは第三者に教えないでください(アプリなどにも入力しないでください)。 + br + | 万が一トークンが漏れたりその可能性がある場合は トークンを再生成できます。(副作用として、ログインしているすべてのデバイスでログアウトが発生します) + + section + h2 他人のアクセストークンを取得する + p + | 不特定多数のユーザーからAPIを利用したい場合、アプリケーションを作成します。 + br + | アプリケーションを作成すると、ユーザーが連携を許可した時に、そのユーザーのアクセストークンを取得することができます。 + p アプリケーションを作成しアクセストークンを取得するまでの流れを見ていきます。 + + section + h3 アプリケーションを作成する + p まずはあなたのアプリケーションを作成しましょう。 + p + | デベロッパーセンターにアクセスし、アプリ > アプリ作成 に進みます。 + br + | 次に、フォームに必要事項を記入します: + dl + dt アプリケーション名 + dd あなたのアプリケーションの名前。 + dt Named ID + dd アプリを識別する/a-z-/で構成されたID。 + dt アプリの概要 + dd アプリの簡単な説明を入力してください。 + dt コールバックURL + dd あなたのアプリケーションがWebアプリケーションである場合、ユーザーが後述するフォームで認証を終えた際にリダイレクトするURLを設定できます。 + dt 権限 + dd アプリケーションが要求する権限。ここで要求した機能だけがAPIからアクセスできます。 + p.tip + | 権限はアプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーはすべて無効になります。 + p + | アプリケーションを作成すると、作ったアプリの管理ページに進みます。 + br + | アプリのシークレットキー(App Secret)が表示されていますので、メモしておいてください。 + p.tip + | アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。 + + section + h3 ユーザーに認証させる + p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。 + p 認証セッションを開始するには、#{api_url}/auth/session/generateへパラメータにapp_secretとしてApp Secretを含めたリクエストを送信します。 + p + | そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。 + br + | この認証フォームのURLをブラウザで表示し、ユーザーにフォームを表示してください。 + section + h4 あなたのアプリがコールバックURLを設定している場合 + p ユーザーがアプリの連携を許可すると設定しているコールバックURLにtokenという名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。 + section + h4 あなたのアプリがコールバックURLを設定していない場合 + p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。 + p + | 次に、#{api_url}/auth/session/userkeyapp_secretとしてApp Secretを、tokenとしてセッションのトークンをパラメータとして付与したリクエストを送信してください。 + br + | 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます! + p + | 以降アクセストークンは、ユーザーのアクセストークン+アプリのシークレットキーをsha256したものとして扱います。 + + p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンをiとしてパラメータに含めるだけです。 + + section + h2 リクエスト形式 + p application/jsonを受け付けます。 + p.tip + | 現在application/x-www-form-urlencodedも受け付けていますが、将来的にこのサポートはされなくなる予定です。 diff --git a/src/docs/api/library.pug b/src/docs/api/library.pug new file mode 100644 index 0000000000..4b2943b2a9 --- /dev/null +++ b/src/docs/api/library.pug @@ -0,0 +1,14 @@ +extend ../BASE + +block title + | ライブラリ + +block content + h1 ライブラリ + + p Misskey APIを便利に利用するためのライブラリ一覧です。 + + section + h2 .NET + ul + li: strong: a(href='https://github.com/syuilo/Misq') Misq (公式) diff --git a/src/docs/index.pug b/src/docs/index.pug new file mode 100644 index 0000000000..bae22d9c7f --- /dev/null +++ b/src/docs/index.pug @@ -0,0 +1,9 @@ +extend ./BASE + +block title + | About Misskey + +block content + h1 About Misskey + + p 誰か書いて diff --git a/src/docs/link-to-twitter.pug b/src/docs/link-to-twitter.pug new file mode 100644 index 0000000000..6e98df52c3 --- /dev/null +++ b/src/docs/link-to-twitter.pug @@ -0,0 +1,14 @@ +extend ./BASE + +block title + | Twitterと連携する + +block content + h1 Twitterと連携する + + p 設定 -> Twitter から、お使いのMisskeyアカウントとお使いのTwitterアカウントを関連付けることができます。 + p アカウントの関連付けを行うと、プロフィールにTwitterアカウントへのリンクが表示されたりなどします。 + p + | MisskeyがあなたのTwitterアカウントでツイートしたり誰かをフォローしたりなどといったことは一切行いませんので、ご安心ください。(Misskeyはそのような権限を取得しないので、行おうと思っても行えません) + br + | このことに関しては、Twitterのアプリケーション認証フォームで詳細を確認することができます。また、いつでも連携を取り消すことができます。 diff --git a/src/docs/privacy.pug b/src/docs/privacy.pug new file mode 100644 index 0000000000..75885c2b0f --- /dev/null +++ b/src/docs/privacy.pug @@ -0,0 +1,10 @@ +extend ./BASE + +block title + | プライバシーポリシー + +block content + h1 プライバシーポリシー + + p Misskeyはユーザーの了解を得た上でメールアドレスを設定することがありますが、この情報をみだりに公開することはありません。ただし、法的強制力のある請求の場合はこの限りではありません。 + p プライバシーポリシーは予告なく変更される可能性があります。 diff --git a/src/docs/tou.pug b/src/docs/tou.pug new file mode 100644 index 0000000000..cb3ab84a48 --- /dev/null +++ b/src/docs/tou.pug @@ -0,0 +1,9 @@ +extend ./BASE + +block title + | 利用規約 + +block content + h1 利用規約 + + p 法律上問題のあることはお止めください。 -- cgit v1.2.3-freya