New Crowdin updates (#132)

* New translations kubernetes.md (English)

* New translations kubernetes.md (Indonesian)

* New translations manual.md (French)

* New translations manual.md (Italian)

* New translations manual.md (Korean)

* New translations manual.md (Polish)

* New translations manual.md (Chinese Simplified)

* New translations manual.md (Chinese Traditional)

* New translations manual.md (English)

* New translations manual.md (Indonesian)

* New translations cdn.md (French)

* New translations cdn.md (Italian)

* New translations cdn.md (Korean)

* New translations cdn.md (Polish)

* New translations cdn.md (Chinese Simplified)

* New translations cdn.md (Chinese Traditional)

* New translations cdn.md (English)

* New translations cdn.md (Indonesian)

* New translations nginx.md (French)

* New translations nginx.md (Italian)

* New translations nginx.md (Korean)

* New translations nginx.md (Polish)

* New translations nginx.md (Chinese Simplified)

* New translations nginx.md (Chinese Traditional)

* New translations nginx.md (English)

* New translations nginx.md (Indonesian)

* New translations push-docker-hub.md (French)

* New translations push-docker-hub.md (Italian)

* New translations push-docker-hub.md (Korean)

* New translations push-docker-hub.md (Polish)

* New translations push-docker-hub.md (Chinese Simplified)

* New translations push-docker-hub.md (Chinese Traditional)

* New translations push-docker-hub.md (English)

* New translations push-docker-hub.md (Indonesian)

* New translations scale-out.md (French)

* New translations scale-out.md (Italian)

* New translations scale-out.md (Korean)

* New translations scale-out.md (Polish)

* New translations scale-out.md (Chinese Simplified)

* New translations scale-out.md (Chinese Traditional)

* New translations scale-out.md (English)

* New translations scale-out.md (Indonesian)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (Italian)

* New translations troubleshooting.md (Korean)

* New translations troubleshooting.md (Polish)

* New translations troubleshooting.md (Chinese Simplified)

* New translations troubleshooting.md (Chinese Traditional)

* New translations troubleshooting.md (English)

* New translations troubleshooting.md (Indonesian)

* New translations disable-timelines.md (French)

* New translations disable-timelines.md (Italian)

* New translations disable-timelines.md (Korean)

* New translations disable-timelines.md (Polish)

* New translations disable-timelines.md (Chinese Simplified)

* New translations disable-timelines.md (Chinese Traditional)

* New translations disable-timelines.md (English)

* New translations disable-timelines.md (Indonesian)

* New translations 1.index.md (French)

* New translations 1.index.md (Italian)

* New translations 1.index.md (Korean)

* New translations 1.index.md (Polish)

* New translations 1.index.md (Chinese Simplified)

* New translations 1.index.md (Chinese Traditional)

* New translations 1.index.md (English)

* New translations 1.index.md (Indonesian)

* New translations libraries.md (French)

* New translations libraries.md (Italian)

* New translations libraries.md (Korean)

* New translations libraries.md (Polish)

* New translations libraries.md (Chinese Simplified)

* New translations libraries.md (Chinese Traditional)

* New translations libraries.md (English)

* New translations libraries.md (Indonesian)

* New translations permission.md (French)

* New translations permission.md (Italian)

* New translations permission.md (Korean)

* New translations permission.md (Polish)

* New translations permission.md (Chinese Simplified)

* New translations permission.md (Chinese Traditional)

* New translations permission.md (English)

* New translations permission.md (Indonesian)

* New translations 1.index.md (French)

* New translations 1.index.md (Italian)

* New translations 1.index.md (Korean)

* New translations 1.index.md (Polish)

* New translations 1.index.md (Chinese Simplified)

* New translations 1.index.md (Chinese Traditional)

* New translations 1.index.md (English)

* New translations 1.index.md (Indonesian)

* New translations 1.index.md (French)

* New translations 1.index.md (Italian)

* New translations 1.index.md (Korean)

* New translations 1.index.md (Polish)

* New translations 1.index.md (Chinese Simplified)

* New translations 1.index.md (Chinese Traditional)

* New translations 1.index.md (English)

* New translations 1.index.md (Indonesian)

* New translations global-timeline.md (French)

* New translations global-timeline.md (Italian)

* New translations global-timeline.md (Korean)

* New translations global-timeline.md (Polish)

* New translations global-timeline.md (Chinese Simplified)

* New translations global-timeline.md (Chinese Traditional)

* New translations global-timeline.md (English)

* New translations global-timeline.md (Indonesian)

* New translations home-timeline.md (French)

* New translations home-timeline.md (Italian)

* New translations home-timeline.md (Korean)

* New translations home-timeline.md (Polish)

* New translations home-timeline.md (Chinese Simplified)

* New translations home-timeline.md (Chinese Traditional)

* New translations home-timeline.md (English)

* New translations home-timeline.md (Indonesian)

* New translations hybrid-timeline.md (French)

* New translations hybrid-timeline.md (Italian)

* New translations hybrid-timeline.md (Korean)

* New translations hybrid-timeline.md (Polish)

* New translations hybrid-timeline.md (Chinese Simplified)

* New translations hybrid-timeline.md (Chinese Traditional)

* New translations hybrid-timeline.md (English)

* New translations hybrid-timeline.md (Indonesian)

* New translations index.md (French)

* New translations index.md (Italian)

* New translations index.md (Korean)

* New translations index.md (Polish)

* New translations index.md (Chinese Simplified)

* New translations index.md (Chinese Traditional)

* New translations index.md (English)

* New translations index.md (Indonesian)

* New translations local-timeline.md (French)

* New translations local-timeline.md (Italian)

* New translations local-timeline.md (Korean)

* New translations local-timeline.md (Polish)

* New translations local-timeline.md (Chinese Simplified)

* New translations local-timeline.md (Chinese Traditional)

* New translations local-timeline.md (English)

* New translations local-timeline.md (Indonesian)

* New translations main.md (French)

* New translations main.md (Italian)

* New translations main.md (Korean)

* New translations main.md (Polish)

* New translations main.md (Chinese Simplified)

* New translations main.md (Chinese Traditional)

* New translations main.md (English)

* New translations main.md (Indonesian)

* New translations note-capture-events.md (French)

* New translations note-capture-events.md (Italian)

* New translations note-capture-events.md (Korean)

* New translations note-capture-events.md (Polish)

* New translations note-capture-events.md (Chinese Simplified)

* New translations note-capture-events.md (Chinese Traditional)

* New translations note-capture-events.md (English)

* New translations note-capture-events.md (Indonesian)

* New translations 2.miauth.md (French)

* New translations 2.miauth.md (Italian)

* New translations 2.miauth.md (Korean)

* New translations 2.miauth.md (Polish)

* New translations 2.miauth.md (Chinese Simplified)

* New translations 2.miauth.md (Chinese Traditional)

* New translations 2.miauth.md (English)

* New translations 2.miauth.md (Indonesian)

* New translations 1.index.md (French)

* New translations 1.index.md (Italian)

* New translations 1.index.md (Korean)

* New translations 1.index.md (Polish)

* New translations 1.index.md (Chinese Simplified)

* New translations 1.index.md (Chinese Traditional)

* New translations 1.index.md (English)

* New translations 1.index.md (Indonesian)

* New translations create-plugin.md (French)

* New translations create-plugin.md (Italian)

* New translations create-plugin.md (Korean)

* New translations create-plugin.md (Polish)

* New translations create-plugin.md (Chinese Simplified)

* New translations create-plugin.md (Chinese Traditional)

* New translations create-plugin.md (English)

* New translations create-plugin.md (Indonesian)

* New translations plugin-api-reference.md (French)

* New translations plugin-api-reference.md (Italian)

* New translations plugin-api-reference.md (Korean)

* New translations plugin-api-reference.md (Polish)

* New translations plugin-api-reference.md (Chinese Simplified)

* New translations plugin-api-reference.md (Chinese Traditional)

* New translations plugin-api-reference.md (English)

* New translations plugin-api-reference.md (Indonesian)

* New translations publish-on-your-website.md (French)

* New translations publish-on-your-website.md (Italian)

* New translations publish-on-your-website.md (Korean)

* New translations publish-on-your-website.md (Polish)

* New translations publish-on-your-website.md (Chinese Simplified)

* New translations publish-on-your-website.md (Chinese Traditional)

* New translations publish-on-your-website.md (English)

* New translations publish-on-your-website.md (Indonesian)

* New translations 5.releases.md (French)

* New translations 5.releases.md (Italian)

* New translations 5.releases.md (Korean)

* New translations 5.releases.md (Polish)

* New translations 5.releases.md (Chinese Simplified)

* New translations 5.releases.md (Chinese Traditional)

* New translations 5.releases.md (English)

* New translations 5.releases.md (Indonesian)

* New translations endpoints.md (French)

* New translations endpoints.md (Italian)

* New translations endpoints.md (Korean)

* New translations endpoints.md (Polish)

* New translations endpoints.md (Chinese Simplified)

* New translations endpoints.md (Chinese Traditional)

* New translations endpoints.md (English)

* New translations endpoints.md (Indonesian)

* New translations 1.index.md (French)

* New translations 1.index.md (Italian)

* New translations 1.index.md (Korean)

* New translations 1.index.md (Polish)

* New translations 1.index.md (Chinese Simplified)

* New translations 1.index.md (Chinese Traditional)

* New translations 1.index.md (English)

* New translations 1.index.md (Indonesian)

* New translations 3.oauth.md (French)

* New translations 3.oauth.md (Italian)

* New translations 3.oauth.md (Korean)

* New translations 3.oauth.md (Polish)

* New translations 3.oauth.md (Chinese Simplified)

* New translations 3.oauth.md (Chinese Traditional)

* New translations 3.oauth.md (English)

* New translations 3.oauth.md (Indonesian)

* New translations aiscript.md (French)

* New translations aiscript.md (Italian)

* New translations aiscript.md (Korean)

* New translations aiscript.md (Polish)

* New translations aiscript.md (Chinese Simplified)

* New translations aiscript.md (Chinese Traditional)

* New translations aiscript.md (English)

* New translations aiscript.md (Indonesian)

* New translations 50.app.md (French)

* New translations 50.app.md (Italian)

* New translations 50.app.md (Korean)

* New translations 50.app.md (Polish)

* New translations 50.app.md (Chinese Simplified)

* New translations 50.app.md (Chinese Traditional)

* New translations 50.app.md (English)

* New translations 50.app.md (Indonesian)

* New translations 7.become-a-sponsor.md (French)

* New translations 7.become-a-sponsor.md (Italian)

* New translations 7.become-a-sponsor.md (Korean)

* New translations 7.become-a-sponsor.md (Polish)

* New translations 7.become-a-sponsor.md (Chinese Simplified)

* New translations 7.become-a-sponsor.md (Chinese Traditional)

* New translations 7.become-a-sponsor.md (English)

* New translations 7.become-a-sponsor.md (Indonesian)
This commit is contained in:
かっこかり 2024-03-26 23:10:53 +09:00 committed by GitHub
parent 0922c6093d
commit 65029555ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
640 changed files with 68294 additions and 0 deletions

View File

@ -0,0 +1,155 @@
---
ignoreDirBasedNav: true
description: 这是一份介绍Misskey的文档。
---
# 关于Misskey
Misskey是一个开源的分布式微博客平台项目。
开发工作于2014年由syuilo在日本开始进行。
它的特点是功能丰富,包括“网盘”、“回应”等,以及拥有一个高度可定制的用户界面。
## 历史
在最初开发时Misskey的主要功能是网络布告板BBS但随着用户开始发布短消息增加了时间轴功能使得消息能够按时间顺序排列并流动后来该功能变得更受欢迎并逐渐成为开发的主要重心。
最初它也并不是一个去中心化的服务但是通过在2018年实现ActivityPub协议这使Misskey实现了去中心化并受到了更多人的认可和使用一直延续至今。
:::tip
Misskey这个名称来自开发者syuilo当时正在热衷于听的艺术家May'n的歌曲《Brain Diver》的歌词。
:::
自那以后任何人都能参与开发Misskey了直到现在平台的开发工作仍然在积极进行当中。
## 什么是去中心化?
所谓<b>去中心化</b>,也称<b>分布式</b>,是指允许社区中多个分散的服务器互相进行<b>通信联邦Federation</b>以交换信息的<b>网络平台</b>。那些只有单一服务器或者有多个服务器但它们只会单独运行的网络平台则被称为中心化结构集中式例如X原Twitter、Facebook等大多数现行的网络平台都属于中心化结构。
去中心化的好处在于,用户可以根据自己对其运营者或主题的喜好,自行选择服务器加入。用户也可以搭建自己的服务器。得益于联邦架构,不管用户加入哪一个服务器,都可以访问相同的社区内容。
## 始终开源
Misskey 一直是并将永远是开源的。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。
Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。
オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。
上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。
再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。
:::tip
从技术上讲Misskey 的源代码由 Git 管理,软件源托管在 [GitHub](https://github.com/misskey-dev) 上。
:::
## 参与开发、支持项目
如果你喜欢Misskey请支持这个项目。如下所述的许多方法都可以为本项目做出贡献。不需要开发技能任何人都可以以自己的方式参与并支持Misskey。我们期待你的加入。
### 增加功能或修复错误
如果你有软件工程技能,你可以以编辑源代码的形式为该项目做出贡献。
参与贡献的指南在[这里](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)。
### 加入讨论
你也可以通过表达你对新功能或现有功能的意见,或报告漏洞来做出贡献。
这样的讨论可以在[GitHub](https://github.com/misskey-dev)或[论坛](https://forum.misskey.io/)等进行。
### 翻译文本
Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。原语言大多为日语,但志愿者们正在将其翻译成其他语言。
你也可以通过参与翻译过程为Misskey做出贡献。
Misskey使用[Crowdin](https://crowdin.com/project/misskey)来管理翻译。
### 发表你的想法
除了回报漏洞也请你分享关于Misskey的优点和乐趣的积极意见。这是对开发的鼓励也是对项目间接但积极的贡献。
### 增加 Misskist 的数量
Misskeyist 是使用 Misskey 的人。
如果你通过向你的朋友和熟人介绍MisskeyMisskeyist 的数量就会增加,发展的动力也会增加。
### 捐助我们
[请看这里](/docs/donate/)
## 常见问题
### 本项目旨在实现什么目标?
強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。
Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。
それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。
<!-- TODO: ここにロードマップへのリンク -->
### 它是由什么公司开发的吗?
不是。Misskey 是个人开发的,非商业性质的,与任何特定公司无关。
开发成员基本上都是志愿者。
在某些情况下,开发是由某些公司赞助的,但即使在那种情况下,仍然主要是由个人组成的社区进行开发。
### 谁在运营它?
Misskey 是去中心化的,所以每个服务器都有不同的运营者。因此,并不是由特定个人或企业来运营全部的 Misskey。
此外,由于开发团队也不负责运营,因此有关运营的联系事宜,请联系您的服务器管理员。
您可以在服务器信息页面上确认服务器的管理员。
如果您自己搭建服务器,那么您就会成为管理员。
### 我应该选择哪个服务器?
[サーバー一覧が公開されています。](/servers/)
サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。
他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。
なお、Misskey公式のサーバーというものはありません。当然你可以选择自己创建一个服务器。
通常,无论你选择哪个服务器,你基本上都可以与其他所有服务器的用户连接。
### 如何建立一个自己的服务器?
很高兴你对创建一个 Misskey 服务器有兴趣。
但遗憾的是,截至 2022 年,还没有 Misskey 服务器的托管服务,因此创建服务器需要一定的技术知识的储备。
有关如何创建服务器的信息,请参阅 [此处](/docs/for-admin/install/)。
### 它使用什么技术?
随着开发的进行,在技术上 Misskey 发生了很大的变化。开发之初的技术方案是 MySQL + PHP + jQuery现在变成如下的样子
- 服务器端Node.js
- 数据库PostgreSQL、Redis
- 前端 UI 框架Vue.js
- 开发语言TypeScript
我们还开发了一些来自 Misskey 的自有技术,例如 MFM 和 AiScript。
### 它是 Mastodon 的一个分支吗?
不是。Misskey 完全独立于 Mastodon 和其他项目。开发方面Misskey 其实已经发展了很长时间。然而,直到 Mastodon 出现后, Misskey 才变得去中心化。
但是,除了都实现了被称为 ActivityPub 的相同分发协议外,它们并没有特别的关联。
### 有iOS、Android应用程序吗
目前还没有官方的原生 Android/iOS 应用程序,但有一些第三方应用。
更多信息,请参阅 [此处](/docs/for-users/resources/apps/)。
ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。
なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。
### 我在哪里可以得到 Misskey 的标志和图标?
[在这里](/brand-assets/)
### 时不时可以看到的可爱猫耳女孩是谁?
:::fukidashi{chara="doya_ai" charaName="藍"}
想了解我,请访问[这个网站](https://xn--931a.moe/)
:::
:::fukidashi{chara="syuilo" charaName="しゅいろ" direction="right"}
这是 Misskey 的守护神小蓝。小蓝超可爱的!
:::

View File

@ -0,0 +1,5 @@
# ユーザー向けガイド
このセクションでは、Misskeyを初めて利用する方はもちろん、すでに利用されている方にも役立つ一般的な機能についてご紹介しています。
<MkIndex />

View File

@ -0,0 +1,14 @@
# Misskeyをはじめよう
ここでは、Misskeyでの活動を始めるチュートリアルを掲載しています。
おもに、
- 分散型プラットフォームの注意点
- サーバーとは?サーバーの選び方は?
- 登録の手順
- 最低限の基礎知識
などについて解説していますので、この通りに進めることで、とりあえずMisskeyを使い始めることができると思います。
それでは、早速始めましょう!(「次へ」を押して進んでください。)

View File

@ -0,0 +1,15 @@
---
description: Misskeyサーバーにアカウントを作成する前の基本的な注意事項です。
---
# 基本的な注意事項
Misskeyを使ったサービスを利用するにあたり、いくつか注意が必要な点があります。
- 分散型のため、一度アップロードしたデータは削除したとしても他の全てのサーバーから削除されることは保証されません。(ただし、これはインターネット全般に言えることでもあります。)
- 非公開で行った投稿でも、相手のサーバーがそれを同じように非公開として扱うかは保証されません。個人情報、機密情報を投稿する際は十分注意してください。(ただし、これはインターネット全般に言えることでもあります。)
- Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。
- アカウントの削除は負荷の高い処理であるため、長い時間がかかることがあります。アップロードしたデータが多いケースではアカウントの削除が不可能なこともあります。
- サーバーによっては、広告収入により運営費を賄っていることがあります。また、アドブロッカーは広告とは全く関係のないコンテンツや機能を誤ってブロックすることがよくあり、クライアントの動作に支障をきたし、正常にMisskeyを使用できなくなるおそれがあります。そのため、Misskeyではアドブロッカーやそれに類する機能はオフにしてご利用ください。
これらをご理解いただいたうえで、楽しくサービスをご利用ください。

View File

@ -0,0 +1,40 @@
---
description: Misskeyサーバーへのユーザー登録や、基本的な操作について解説しています。
---
# Misskeyサーバーをさがす
Misskeyはソフトウェアおよびそのプロジェクトです。
インターネットに公開されている、Misskeyを動かしているサーバーのことを**サーバー**と呼びます。
Misskeyを利用するには、どこかのサーバーにアカウントを作成し、そのサーバーを利用します。
[サーバー一覧](/servers/)から、好きなサーバーを選ぶことができます。
:::tip
どのサーバーを選んでも、他のサーバーのユーザーとやり取りすることができます。
:::g-details{summary='詳細'}
Misskeyには連合機能が備わっています。
連合機能によって、別のサーバーのユーザーであっても、同じサーバーのユーザーと同じようにフォローやリアクション、Renoteなどができるようになっています。
Misskeyが搭載している連合機能はActivityPubというオープンな共通規格に基づいていて、MastodonやPleromaといったほかのソフトウェアとも互換性があります。
:::
:::
## サーバーの選び方
### サーバーのテーマ
サーバーによっては、例えば「特定のこと、ものが好き」といったテーマが決まっている場合があります。
自分にあったテーマのサーバーを探すのもおすすめです。
:::tip
サーバーの一覧は[こちら](/servers/)からご覧いただけます。
:::

View File

@ -0,0 +1,36 @@
# サーバーに登録する
登録するサーバーが決まったら、さっそくアカウントを作成しましょう。
:::tip
ここでは、Misskey.ioを例にとって紹介していますが、他のサーバーでも登録方法はおおむね同じです。
ただし、入力事項はサーバーによって異なることがあります。詳しくは、サーバー管理者にお問い合わせください。
:::
## 登録する
まずは、トップページから「**このサーバーに登録する**」ボタンを探し、クリックします。
![このサーバーに登録ボタン](/img/docs/for-users/onboarding/join-server/1.ja.png)
次に、画面の指示に従い、規約の確認や必要事項の記入を進めてください。
主に記入すべき事項は、以下の通りです。
- 招待コード(登録が招待制の場合のみ。お持ちでない場合は登録できません。)
- ユーザー名(**後から変更はできません。一度退会すると同じユーザー名を取得することはできません。**
- メールアドレス(必要ないサーバーもあります)
- パスワード
![必要事項の記入](/img/docs/for-users/onboarding/join-server/2.ja.png)
必要事項の記入が終わると、メールアドレスを登録するサーバーの場合、確認メールが届きますので、速やかにメール内のリンクをクリックしてください。
![確認メール](/img/docs/for-users/onboarding/join-server/3.ja.png)
以上で、Misskey サーバーへの登録が完了しました!
これであなたも[ミスキスト](../resources/glossary/#ミスキスト)!楽しいコミュニケーションをお楽しみください。

View File

@ -0,0 +1,27 @@
# Misskey基础知识
アカウントを作成したあなたにとりあえず知っておいてほしいことをまとめました!
## 帖子
Misskey中的帖子被称为note。Twitterなどの一般的なSNSに比べたくさんの機能がありますので、初めての投稿を行う前に必ず確認して、上手に投稿しましょう
:::tip
詳細は、「[ノート](/docs/for-users/features/note/)」をご覧ください。
:::
## タイムライン
Misskeyは、複数のタイムラインを持っています。名前だけでは少々わかりにくいかと思いますので、それぞれがどのような働きをするのかを知っておきましょう。
:::tip
詳細は、「[タイムライン](/docs/for-users/features/timeline/)」をご覧ください。
:::
## その他
その他にも、Misskeyには、使って楽しい機能が盛りだくさんすべての機能に関する説明は[こちら](/docs/for-users/features/)に記載されていますので、ぜひご覧ください!

View File

@ -0,0 +1,9 @@
---
description: Misskeyの大きな特徴である、多彩な機能について解説しています。
---
# さまざまな機能
Misskeyの大きな特徴は、ほかのマイクロブログシステムには見られない多彩な機能にあります。ここでは、それらについて解説していきます。
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,15 @@
# 広告
Misskeyではサーバーによる広告をタイムラインなどに表示できる機能があります。
広告の右上に表示されるアイコンをクリックすることで、当該の広告の表示頻度を下げることができます。
:::tip
広告の総数が少ない場合は、表示頻度を下げた後も連続で表示される可能性があります。
:::
## 広告の設定(管理者)
サーバーのコントロールパネルから広告の追加、編集、削除を行えます。
広告には任意の画像、遷移先URL、形状、表示割合を設定できます。

View File

@ -0,0 +1,5 @@
# アンテナ
アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。
条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。

View File

@ -0,0 +1,74 @@
# チャート
Misskeyはサーバーの様々なデータソースに対するチャートを生成し表示する機能を備えています。
チャートを利用することで、サーバーの利用状況や連合の状況、各ユーザーのアクティビティなどを視覚的に把握することができます。
サーバーのチャートはサーバー情報ページから表示することができます。
以下は各チャートとその各項目の説明です。
## 連合チャート
連合しているサーバー化ついてのチャートです。
### Pub
アクティビティを配送しているサーバーの数。
言い換えると、自サーバーのユーザーをフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。
### Sub
アクティビティを受信しているサーバーの数。
言い換えると、自サーバーのユーザーがフォローしているリモートユーザーの所属サーバーのユニークなカウントを表します。
### Received
アクティビティを送ってきたサーバーの数。
### Delivered
アクティビティを配送したサーバーの数。
### Stalled
アクティビティを配送する際、エラーになったサーバーの数。
## アクティブユーザー数チャート
自サーバーのユーザーの利用状況についてのチャートです。
### Read & Write
閲覧と書き込みを行ったユーザーの数。
### Read
閲覧を行ったユーザーの数。
### Write
書き込みを行ったユーザーの数。
### < Week
閲覧を行ったユーザーのうち、アカウント作成日時が1週間未満であるユーザーの数。
### < Month
閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月未満であるユーザーの数。
### < Year
閲覧を行ったユーザーのうち、アカウント作成日時が1年未満であるユーザーの数。
### > Week
閲覧を行ったユーザーのうち、アカウント作成日時が1週間以上前であるユーザーの数。
### > Month
閲覧を行ったユーザーのうち、アカウント作成日時が1ヶ月以上前であるユーザーの数。
### > Year
閲覧を行ったユーザーのうち、アカウント作成日時が1年以上前であるユーザーの数。

View File

@ -0,0 +1,8 @@
# クリップ
クリップは、複数のノートをまとめることができる機能です。自分のノート・他者のノートは問いません。
クリップは複数作ることができ、それぞれに名前や説明を設定して管理することが可能です。また、クリップを他のユーザーに公開するかどうかも選択することができます。
クリップを作るには、クリップ管理ページから「追加」をクリックします。
クリップにノートを追加するには、対象のノートのメニューから「クリップ」をクリックし、追加先のクリップを選択します。

View File

@ -0,0 +1,8 @@
# カスタム絵文字
カスタム絵文字は、サーバーで用意された画像を絵文字のように使える機能です。
ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。
カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。
テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。
サーバーにどのようなカスタム絵文字が用意されているかは、Misskey Webの **サーバー情報** にある [**カスタム絵文字**](x-mi-web://about#emojis) にアクセスすると見ることができます。

View File

@ -0,0 +1,27 @@
# デッキ
デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。\
\
なお、メインカラムを追加しておくと、ノートやプロフィールをページで表示した際、メインカラムに内容が表示されます。
## カラムの追加
デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。
## カラムの移動
カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。
## カラムの水平分割
カラムは左右だけでなく、上下に並べることもできます。
カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。
上下分割を解除するには、カラムメニューの「右に出す」を選択します。
## カラムの設定
カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。
## デッキの設定
デッキに関する設定は、[settings/deck](x-mi-web://settings/deck)で行えます。

View File

@ -0,0 +1,29 @@
# ドライブ
ドライブは、Misskey上でファイルを管理できる機能です。
:::tip
技術的に言うと、Misskeyのシステム上、すべてのファイルが一元管理されており、それをユーザーにも公開したインターフェイスがドライブと捉えることができます。
:::
Misskey Webのドライブページから任意のファイルをアップロードできるほか、アバターに設定した画像や、ートに添付したファイルなどもすべてドライブにアップロードされます。
ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。
ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。
:::warning
現時点で、ドライブからファイルを削除すると、そのファイルが添付された **すべてのコンテンツ(ノート、ページなど)** も同時に消えます。
:::
## センシティブ (NSFW)
センシティブまたはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。
センシティブフラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。
このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。
このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。

View File

@ -0,0 +1,10 @@
# お気に入り
[ノート](./note)をお気に入りとして登録できる機能です。
<!--TODO:「お気に入りページ」をMisskey Webに飛ばすリンクで置き換え-->
お気に入り登録したノートは、お気に入りページで一覧することができます。
お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。
ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。

View File

@ -0,0 +1,4 @@
# フォロー
ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。
ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。

View File

@ -0,0 +1,9 @@
# ハッシュタグ
ハッシュタグとは、投稿に検索可能なタグをつけることができる機能の一つです。
世界ではじめてのハッシュタグ── #barcamp は、[2007年8月24日の午前4:25](https://twitter.com/chrismessina/status/223115412?lang=en)にクリス・メッシナ氏[@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina)によって考案されました。後にこの「ポンド記号`#`を用いて検索を容易にする」という案は、英語で「刻む、ハックする」を意味する「ハッシュ」と、「札」を意味する「タグ」を合わせた造語──「ハッシュタグ」として生まれ変わり、当時のTwitter社に公式採用されました。ちなみにクリス・メッシナ氏が`#`を選んだ理由は、IRCのチャンネル名が`#`で始まることからの連想だからだそうです。
![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png)
FediverseでのハッシュタグはXやInstagramなどといった中央集権的なサービスとでのものと多少仕様が異なります。Fediverseでは全文検索が難しい場合などがあり、特定の投稿を探し出すのは困難ですが、投稿にハッシュタグがついていれば、その投稿をハッシュタグをたどって容易に見つけ出すことができます。また、投稿にハッシュタグをつけるだけで様々なサイトに自動で届けてくれるハッシュタグリレーと呼ばれるサービスなどが連合宇宙には存在し、ここではハッシュタグにそこそこの重みがあったりするのです。

View File

@ -0,0 +1 @@
# メンション

View File

@ -0,0 +1,430 @@
---
description: MFMは、Misskeyの様々な場所で使用できる専用のマークアップ言語です。
---
# MFM
MFMは、Markup language For Misskeyの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。
:::tip
一部の構文はMarkdownやHTMLと互換性があります。
:::
## MFMが使用可能な場所の例
- ノート本文
- CW注釈
- ユーザーの名前
- ユーザーの自己紹介
## 構文
### メンション
アットマーク + ユーザー名で、特定のユーザーを示すことができます。
:::tip
メンションについての詳細は[こちら](./mention.md)を参照してください。
:::
```
@ai
```
<MfmPreview text="@ai"></MfmPreview>
```
@repo@p1.a9z.dev
```
<MfmPreview text="@repo@p1.a9z.dev"></MfmPreview>
### ハッシュタグ
ナンバーサイン + タグで、ハッシュタグを示すことができます。
:::tip
ハッシュタグについての詳細は[こちら](./hashtag.md)を参照してください。
:::
```
#misskey
```
<MfmPreview text="#misskey"></MfmPreview>
### URL
URLを示すことができます。
```
https://example.com
```
<MfmPreview text="https://example.com"></MfmPreview>
### リンク
文章の特定の範囲を、URLに紐づけることができます。
```
[example link](https://example.com)
```
:::tip
リンクテキストの前に`?`をつけると、リンクプレビューを非表示にすることができます。
```
?[example link](https://example.com)
```
:::
<MfmPreview text="[example link](https://example.com)"></MfmPreview>
### カスタム絵文字
コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。
:::tip
カスタム絵文字についての詳細は[こちら](./custom-emoji.md)を参照してください。
:::
```
:misskey:
```
<MfmPreview text=":misskey:"></MfmPreview>
### 太字
文字を太く表示して強調することができます。
```
**太字**
```
<MfmPreview text="**太字**"></MfmPreview>
### 目立たなくする
内容を小さく・薄く表示させることができます。
```
<small>MisskeyでFediverseの世界が広がります</small>
```
<MfmPreview text="<small>MisskeyでFediverseの世界が広がります</small>"></MfmPreview>
### 引用
内容が引用であることを示すことができます。
```
> MisskeyでFediverseの世界が広がります
```
<MfmPreview text="> MisskeyでFediverseの世界が広がります"></MfmPreview>
### 中央寄せ
内容を中央寄せで表示させることができます。
```
<center>MisskeyでFediverseの世界が広がります</center>
```
<MfmPreview text="<center>MisskeyでFediverseの世界が広がります</center>"></MfmPreview>
### よみがな(ルビ)
内容によみがなを付けることができます。
```
$[ruby Misskey ミスキー]
```
<MfmPreview text="$[ruby Misskey ミスキー]"></MfmPreview>
### コード(インライン)
プログラムなどのコードをインラインでシンタックスハイライトします。
```
`<: "Hello, world!"`
```
### コード(ブロック)
複数行のプログラムなどのコードをブロックでシンタックスハイライトします。
```
~ (#i, 100) {
<: ? ((i % 15) = 0) "FizzBuzz"
.? ((i % 3) = 0) "Fizz"
.? ((i % 5) = 0) "Buzz"
. i
}
```
### 反転
内容を上下または左右に反転させます。
```
$[flip MisskeyでFediverseの世界が広がります]
$[flip.v MisskeyでFediverseの世界が広がります]
$[flip.h,v MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[flip MisskeyでFediverseの世界が広がります]
$[flip.v MisskeyでFediverseの世界が広がります]
$[flip.h,v MisskeyでFediverseの世界が広がります]"></MfmPreview>
### フォント
内容のフォントを指定することができます。
```
$[font.serif MisskeyでFediverseの世界が広がります]
$[font.monospace MisskeyでFediverseの世界が広がります]
$[font.cursive MisskeyでFediverseの世界が広がります]
$[font.fantasy MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[font.serif MisskeyでFediverseの世界が広がります]
$[font.monospace MisskeyでFediverseの世界が広がります]
$[font.cursive MisskeyでFediverseの世界が広がります]
$[font.fantasy MisskeyでFediverseの世界が広がります]"></MfmPreview>
### ぼかし
内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。
```
$[blur MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[blur MisskeyでFediverseの世界が広がります]"></MfmPreview>
### 検索
検索ボックスを表示できます。
```
misskey 検索
```
<MfmPreview text="misskey 検索"></MfmPreview>
### 文字色・背景色
文字色と背景色を変更することができます。
3,4,6桁のカラーコードで色を表現します。
```
$[fg.color=f00 赤字]
$[bg.color=ff0 黄背景]
```
<MfmPreview text="$[fg.color=f00 赤字]
$[bg.color=ff0 黄背景]"></MfmPreview>
### 枠線
内容を枠線で囲むことができます。様々なスタイルを指定することができます。
```
$[border.style=solid,width=4 Default]
$[border.style=hidden No border]
$[border.style=dotted,width=2 Dotted]
$[border.style=dashed,width=2 Dashed]
$[border.style=double,width=4 Double]
$[border.style=groove,width=4 Embossed A]
$[border.style=ridge,width=4 Embossed B]
$[border.style=inset,width=4 Inset A]
$[border.style=outset,width=4 Inset B]
$[border.color=d00 Border color]
$[border.width=5 Border width]
$[border.radius=6,width=2 Border radius]
$[border.radius=5,width=2,color=888 $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]
$[border.radius=5,width=2,color=888,noclip $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]
```
<MfmPreview text="$[border.style=solid,width=4 Default]\
$[border.style=hidden No border]\
$[border.style=dotted,width=2 Dotted]\
$[border.style=dashed,width=2 Dashed]\
$[border.style=double,width=4 Double]\
$[border.style=groove,width=4 Embossed A]\
$[border.style=ridge,width=4 Embossed B]\
$[border.style=inset,width=4 Inset A]\
$[border.style=outset,width=4 Inset B]\
$[border.color=d00 Border color]\
$[border.width=5 Border width]\
$[border.radius=6,width=2 Border radius]\
$[border.radius=5,width=2,color=888 $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]\
$[border.radius=5,width=2,color=888,noclip $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]"></MfmPreview>
### 角度変更
指定した角度で回転させます。
```
$[rotate.deg=30 misskey]
```
<MfmPreview text="$[rotate.deg=30 misskey]"></MfmPreview>
### 位置変更
位置をずらすことができます。
```
😏$[position.x=0.8,y=0.5 🍮]😀
```
<MfmPreview text="😏$[position.x=0.8,y=0.5 🍮]😀"></MfmPreview>
### 拡大
文字を引き延ばして表示します。
```
$[scale.x=4,y=2 🍮]
```
<MfmPreview text="$[scale.x=4,y=2 🍮]"></MfmPreview>
```
$[x2 x2]
$[x3 x3]
$[x4 x4]
```
<MfmPreview text="$[x2 x2]
$[x3 x3]
$[x4 x4]"></MfmPreview>
### アニメーション(びよんびよん)
```
$[jelly 🍮] $[jelly.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[jelly 🍮] $[jelly.speed=5s 🍮]]"></MfmPreview>
### アニメーション(じゃーん)
```
$[tada 🍮] $[tada.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[tada 🍮] $[tada.speed=5s 🍮]]"></MfmPreview>
### アニメーション(ジャンプ)
```
$[jump 🍮] $[jump.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[jump 🍮] $[jump.speed=5s 🍮]]"></MfmPreview>
### アニメーション(バウンド)
```
$[bounce 🍮] $[bounce.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[bounce 🍮] $[bounce.speed=5s 🍮]]"></MfmPreview>
### アニメーション(回転)
```
$[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮]
$[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮]
$[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮]
$[spin.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮]
$[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮]
$[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮]
$[spin.speed=5s 🍮]]"></MfmPreview>
### アニメーション(ぶるぶる)
```
$[shake 🍮] $[shake.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[shake 🍮] $[shake.speed=5s 🍮]]"></MfmPreview>
### アニメーション(ブレ)
```
$[twitch 🍮] $[twitch.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[twitch 🍮] $[twitch.speed=5s 🍮]]"></MfmPreview>
### レインボー
```
$[rainbow 🍮] $[rainbow.speed=5s 🍮]
$[rainbow 色なし文字]
$[rainbow $[fg.color=f0f 色付き文字]]
```
<MfmPreview text="$[rainbow 🍮] $[rainbow.speed=5s 🍮]
$[rainbow 色なし文字]
$[rainbow $[fg.color=f0f 色付き文字]]"></MfmPreview>
### キラキラ
```
$[sparkle 🍮]
```
<MfmPreview text="$[x2 $[sparkle 🍮]]"></MfmPreview>
### プレーン
内側の構文を全て無効にします。
```
<plain>**bold** @mention #hashtag `code` $[x2 🍮]</plain>
```
<MfmPreview text="<plain>**bold** @mention #hashtag `code` $[x2 🍮]</plain>"></MfmPreview>
## 開発者向け情報
MFMのパーサーや描画の実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。
- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装
- [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js用コンポーネント
- [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlinパーサー実装
- [mfm_parser](https://pub.dev/packages/mfm_parser) - Dartパーサー実装
- [mfm](https://pub.dev/packages/mfm) - Flutter用描画ウィジェット

View File

@ -0,0 +1,66 @@
# ミュートとブロック
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。
また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。
ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
:::tip
ミュートとブロックは併用できます。
:::
:::warning
利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
:::
Misskey Webでは、設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
## ミュート
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
- そのユーザーからの通知
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
- など
Misskey Webでユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
:::tip
ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
:::
## ブロック
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
- フォローする
- ユーザーリストに追加する
- 返信する、Renoteする
- リアクションする、アンケートに投票する
- メッセージを送信する
- など
また、
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
Misskey Webでユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
:::warning
ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
:::
:::warning
相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
:::

View File

@ -0,0 +1,74 @@
# ページ
Misskey上でートとは別にページを作成できます。v13では静的ページに特化しています。
:::warning
v13よりページによる動的ページ作成の代わりにMisskey Playが使用できます。
:::
## ページ設定
ページに関する項目を設定します。次の項目を入力できます。
- タイトル
- ページの要約
- ページURL
- 中央寄せ
- フォント
- ピン留めされているときにタイトルを非表示
- アイキャッチ画像
### タイトル
このページのタイトルを入力します。一覧に表示されます。
### ページの要約
簡単な説明を入力します。一覧に表示されます。
### ページURL
`https://サーバー名/@ユーザー/pages/●●●``●●●` を任意に設定できます。
### 中央寄せ
有効にすると、中央に寄せて表示します。
### フォント
**セリフ** と **サンセリフ** を選択します。
### ピン留めされているときにタイトルを非表示
ピン留めされているときにタイトルを非表示にします。
### アイキャッチ画像
**アイキャッチ画像を設定** より画像を設定できます。一覧表示などで表示する事が可能です。
## コンテンツ
ページ本体を編集します。次のブロックを一つまたは複数組み合わせてページを生成できます。
- セクション
- テキスト
- 画像
- ノート埋め込み
### セクション
タイトルを設定する事で見出しとして表示します。更に中のブロックを設定できます。
### テキスト
テキスト本文を入力します。MFMやカスタム絵文字を使用できます。
### 画像
画像を表示します。ドライブより画像を設定します。
### ノート埋め込み
ノート ID を入れる事で、そのートを表示します。他のサーバーを埋め込みたい場合は検索でそのURLを入れ、表示させた時のIDを貼り付けて下さい。

View File

@ -0,0 +1,5 @@
# プラグイン
Misskey Webにはプラグイン機能があり、ユーザーがMisskey Webの機能を拡張することができます。
プラグインの作成方法については[こちらのドキュメント](../../for-developers/plugin/create-plugin)を参照してください。

View File

@ -0,0 +1,51 @@
# アンケート
アンケートは、他の人からの意見を簡単に聞くことができる機能です。
## アンケートをノートに添付する
アンケートは、[ノート](/docs/for-users/features/note)に添付する形で投稿することができます。ノートにアンケートを添付するには、投稿フォームの下部にある「アンケート」ボタンを選択します。
## 選択肢を増やす
アンケートには、選択肢を10個まで作ることができます。選択肢の入力欄は、「追加」ボタンを押すことで追加することができます。
追加しすぎてしまった入力欄は、入力欄の横の☓ボタンを押すことで削除することができます。
:::warning
いずれかの入力欄が空白だった場合、そのアンケートが添付されたノートは投稿できません。
:::
## 複数回答を可能にする
「複数回答可」スイッチをオンにすると、アンケートに回答する人が複数の選択肢に投票できるようになります。
## アンケートの期限を設定する
アンケートには、終了する期限を、日時指定か経過指定のいずれかで設定することができます。
設定するには、「期限」の欄から「日時指定」もしくは「経過指定」をクリックします。
一度設定した期限を取り消す場合には、「期限」の欄から「無期限」を選択します。
## アンケートに投票する
アンケートが添付されたノートがタイムラインに流れてきたときは、アンケートに投票してみましょう。
アンケートに投票するには、各選択肢をクリックします。アンケートを投稿したユーザーが複数回答可に設定していない場合は、その時点でのアンケートの結果が表示されます。
アンケートを投稿したユーザーが複数回答可に設定していた場合、他の選択肢にも投票することができます。この場合、結果は自動では表示されません。
複数回答の設定に関わらず、自動でアンケートの結果が表示されなかったり、投票前に結果を見たい時は、選択肢の下にある「結果を見る」をクリックしてアンケートの結果を表示することができます。
未投票のアンケートの結果を見たあと、もう一度隠すときは「投票する」をクリックします。
:::tip
未投票アンケートには、結果を表示した状態でも投票できます。
:::
投票をすると、自分の投票した選択肢に✔がつきます。

View File

@ -0,0 +1,23 @@
# リアクション
他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。
Misskey Webでリアクションするには、ートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。
リアクションには[カスタム絵文字](./custom-emoji.md)も使用できます。
## リアクションピッカーのカスタマイズ
Misskey Webでは、ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。
設定の「リアクション」で設定します。
## リモート投稿へのリアクションについて
リアクションはMisskeyオリジナルの機能であるため、リモートサーバーがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。
## リモートからのリアクションについて
リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。
## 自分のリアクション一覧を見る
Misskey Webでは、自分のプロフィールページの「リアクション」タブを開くことで、自分の行ったリアクション一覧を見ることができます。
設定から、このリアクション一覧を公開するようにすることもできます。

View File

@ -0,0 +1,102 @@
# 共有フォーム
Misskey Webの`/share`を開くと、共有用の投稿フォームを開くことができます。この共有フォームを利用すると、外部のWebページから、ページの内容をユーザーにMisskeyで共有してもらいたいときに便利です。
URLにクエリパラメータとして共有内容をはじめとするいくつかのオプションを指定できます。
## クエリパラメータ
:::tip
すべてのパラメータは**オプション**であり、必須ではありません。
:::
| 名前 | 説明 |
| ------- | ---------------------------------------------------------------------------- |
| `title` | タイトル。本文の先頭に[ … ]と挿入されます。 |
| `text` | 本文。 |
| `url` | URL。本文の末尾に挿入されます。 |
### リプライ情報
以下のいずれかを指定すると、指定のノートに対するリプライにすることができます。
| 名前 | 説明 |
| ---------- | ----------------------------- |
| `replyId` | リプライ先のートID。 |
| `replyUri` | リプライ先のURL。リモートのートオブジェクトを指定 |
### Renote情報
以下のいずれかを指定すると、指定のートに対するRenote(引用)にすることができます。
| 名前 | 説明 |
| ----------- | ------------------------------- |
| `renoteId` | Renote先のートID。 |
| `renoteUri` | Renote先のURL。リモートのートオブジェクトを指定 |
### 公開範囲
以下のオプションで公開範囲の指定を行えます。
| 名前 | 説明 |
| ---------------- | -------------------------------------------------------------------- |
| `visibility` | `public`, `home`, `followers`, `specified` のいずれか |
| `localOnly` | 0(false) or 1(true) |
| `visibleUserIds` | 対象ユーザーID(カンマ区切り) |
| `visibleAccts` | 対象ユーザー[acct](../resources/glossary/#acct)(カンマ区切り) |
:::warning
`visibility`に`specified`を指定した場合は、`visibleUserIds`または`visibleAccts`の指定も必要です。
:::
### 添付ファイル
以下のオプションで添付ファイルの指定を行えます。
| 名前 | 説明 |
| --------- | -------------------------------------- |
| `fileIds` | 添付するファイルのID(カンマ区切り) |
## Misskey Hubの共有フォーム中継サービスについて
<a name="hub-share-disclaimer" id="hub-share-disclaimer"></a>
新Misskey Hubでは、Misskeyのシェアボタンの設置にかかる煩雑な手間を減らすために、共有フォームの中継サービスを提供しています。\
\
こちらのサービスは、無料でどなたでもお使いいただけます。
今までの共有フォームのリンクの各サーバーのドメイン部分を `misskey-hub.net` に変更するだけで、様々なMisskeyサーバーへの共有リンクへと進化させることができます
:::tip
[共有ボタンジェネレーター](/tools/share-link-generator/) も併せてお使いください。
:::
:::warning
共有フォーム中継サービス以下、「本サービス」というはWebサイト管理者の便宜のためにMisskey Project以下、「当方」というが無償・無保証で提供する機能です。本サービスを利用したこと、または何らかの原因によりこれをご利用できなかったことにより生じたいかなる損害について、当方は一切の責任を負いません。
:::
### 基本のパラメータ
基本的に上記で紹介されているパラメーターをそのままお使いいただけますが、ユーザーIDやファイルIDなど、 **各サーバーに依存するパラメーターは使用できません。** それらが指定されていた場合、Misskey Hub上で削除されます。
### 独自機能
#### おすすめサーバー機能
URLパラメータ `manualInstance` にMisskeyサーバーのドメインを入力することで、「シェア元Webサイトからのおすすめ」として、別枠でそのサーバーへのリンクを設置することができます。ご自身のサーバーに誘導する際などにお使いいただけます。
:::warning
「おすすめサーバー機能」はWebサイト管理者の便宜のために設置してある機能であり、当方が「シェア元Webサイトからのおすすめ」欄にあるサーバーをおすすめしているものではございません。
「シェア元Webサイトからのおすすめ」から遷移したサーバーを利用・登録したことに起因するいかなる損害・不利益について、当方では責任を負いかねます。
:::

View File

@ -0,0 +1,8 @@
# サイレンス
サイレンスは、アカウントに設定される状態のひとつです。
アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。
ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。
アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。

View File

@ -0,0 +1,110 @@
# テーマ
テーマを設定して、Misskeyクライアントの見た目を変更できます。
## テーマの設定
設定 > テーマ
## テーマを作成する
テーマコードはJSON5で記述されたテーマオブジェクトです。
テーマは以下のようなオブジェクトです。
```js
{
id: '17587283-dd92-4a2c-a22c-be0637c9e22a',
name: 'Danboard',
author: 'syuilo',
base: 'light',
props: {
accent: 'rgb(218, 141, 49)',
bg: 'rgb(218, 212, 190)',
fg: 'rgb(115, 108, 92)',
panel: 'rgb(236, 232, 220)',
renote: 'rgb(100, 152, 106)',
link: 'rgb(100, 152, 106)',
mention: '@accent',
hashtag: 'rgb(100, 152, 106)',
header: 'rgba(239, 227, 213, 0.75)',
navBg: 'rgb(216, 206, 182)',
inputBorder: 'rgba(0, 0, 0, 0.1)',
},
}
```
- `id` ... テーマの一意なID。UUIDをおすすめします。
- `name` ... テーマ名
- `author` ... テーマの作者
- `desc` ... テーマの説明(オプション)
- `base` ... 明るいテーマか、暗いテーマか
- `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。
- テーマはここで設定されたベーステーマを継承します。
- `props` ... テーマのスタイル定義。これから説明します。
### テーマのスタイル定義
`props`下にはテーマのスタイルを定義します。
キーがCSSの変数名になり、バリューで中身を指定します。
なお、この`props`オブジェクトはベーステーマから継承されます。
ベーステーマは、このテーマの`base`が`light`なら[\_light.json5][_light.json5]で、`dark`なら[\_dark.json5][_dark.json5]です。
つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。
[_light.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_light.json5
[_dark.json5]: https://github.com/misskey-dev/misskey/blob/develop/packages/frontend/src/themes/_dark.json5
#### バリューで使える構文
- 16進数で表された色
- 例: `#00ff00`
- `rgb(r, g, b)`形式で表された色
- 例: `rgb(0, 255, 0)`
- `rgb(r, g, b, a)`形式で表された透明度を含む色
- 例: `rgba(0, 255, 0, 0.5)`
- 他のキーの値の参照
- `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。
- 例: `@panel`
- 定数(後述)の参照
- `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。
- 例: `$main`
- 関数(後述)
- `:{関数名}<{引数}<{色}`
#### 定数
「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。
キー名を`$`で始めると、そのキーはCSS変数として出力されません。
#### 関数
「ボタンの上にカーソルを合わせたときだけ色を明るくしたい」のように、既存の色から少し変更した色を使いたい場合に、関数を使うと便利です。
`:{関数名}<{引数}<{色や他のキーの参照}`の形で使うことができます。
```js
props: {
accent: '#86b300',
accentDarken: ':darken<10<#86b300',
accentLighten: ':lighten<10<@accent'
}
```
##### 使用できる関数
- `lighten` ... 渡された色の輝度(0 \~ 100)に対して引数(0 \~ 100)を加算した色を返します。
- `darken` ... 渡された色の輝度(0 \~ 100)に対して引数(0 \~ 100)を減算した色を返します。
- `alpha` ... 渡された色の透明度を引数(0.0 \~ 1.0)に設定した色を返します。
- 0.0のとき完全に透明、1.0で完全に不透明になります。
- `hue` ... 渡された色の色相(-360 \~ 360)に対して引数(-360 \~ 360)の値だけ回転させた色を返します。
- `saturate` ... 渡された色の彩度(0 \~ 100)に対して引数(0 \~ 100)を加算した色を返します。
## テーマを配布する
v2023.11.0以降では、あなたのウェブサイトから、ワンクリックでテーマを直接インストールできるようになっています。
テーマのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../../for-developers/publish-on-your-website/)をご覧ください。

View File

@ -0,0 +1,19 @@
# スレッドミュート
:::tip
バージョン 12.95.0 以降の機能です。
:::
スレッドミュートは、指定したノートのスレッドをミュートします。スレッドとは、起点のノートから繋がった全てのリプライのことです。
スレッドをミュートすると、そのスレッドへの新たなリプライおよびリプライに含まれるあなた宛てのメンションが、通知されなくなるほか「あなた宛て」にも載らなくなります。
Misskey Webでスレッドをミュートするには、対象のスレッドに属する任意のートもしくは起点のートのメニューを開き、「スレッドをミュート」を選択します。
:::warning
スレッド内のどのノートからミュート操作を行ったかに関わらず、そのスレッド全体がミュートされます。
:::

View File

@ -0,0 +1,39 @@
# タイムライン
タイムラインは、[ノート](./note)が時系列で表示される機能です。
タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。
なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。
## ホーム
自分のフォローしているユーザーの投稿が流れます。HTLと略されます。
## ローカル
全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。
## ソーシャル
自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。
## グローバル
全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。
## 比較
| ソース | | | タイムライン | | |
| ------------------------------- | ----- | --- | ------ | ----- | ----- |
| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル |
| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ |
| | ホーム | ✔ | | ✔ | |
| | フォロワー | ✔ | | ✔ | |
| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ |
| | ホーム | ✔ | | ✔ | |
| | フォロワー | ✔ | | ✔ | |
| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ |
| | ホーム | | | | |
| | フォロワー | | | | |
| リモート (未フォロー) | 公開 | | | | ✔ |
| | ホーム | | | | |
| | フォロワー | | | | |

View File

@ -0,0 +1,158 @@
# Webhook
:::tip
バージョン 12.109.0 以降の機能です。
:::
:::warning
実験的な機能であるため、動作が不安定だったり今後仕様が変更される可能性があります。
:::
MisskeyにはWebhookが用意されています。Webhookを利用すると、Misskey上の様々なイベントをリアルタイムに受け取ることが可能です。
設定>Webhook でWebhookの管理を行えます。
Webhookが登録されると、指定したイベントが発生した際に、指定したURLにHTTPリクエストが送信されます。リクエストのメソッドはPOSTで、ボディはJSONです。
さらに、リクエストヘッダーには`X-Misskey-Hook-Secret`という名前で、登録時に設定したシークレットが含まれます。このシークレットが正しいか検証することで、リクエストが正規のものか判定することができます。
リクエストペイロードは以下のプロパティが入ります。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
hookId: {
type: 'string',
description: 'Webhook ID',
},
userId: {
type: 'string',
description: 'Webhook作成者のユーザーID',
},
eventId: {
type: 'string',
description: 'イベントのID',
},
createdAt: {
type: 'integer',
description: 'イベントが発生した日時(UNIX time、ミリ秒)',
},
type: {
type: 'string',
description: 'イベントの種類',
},
body: {
type: 'object',
description: 'イベントのペイロード',
},
}
}"/>
送信先サーバーが5xxエラーを返すか、応答しなかった場合は時間を開けてリクエストが再送されます。
Webhookは管理画面から個別にアクティブ状態を設定でき、一時的にリクエストの送信を停止させることができます。
## イベント
イベントごとに説明とペイロードを示します。
### follow
自分が誰かをフォローした際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'フォローしたユーザー',
},
}
}"/>
### followed
自分が誰かからフォローされた際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'フォローを行ったユーザー',
},
}
}"/>
### unfollow
自分が誰かをフォロー解除した際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'フォロー解除したユーザー',
},
}
}"/>
### note
自分がノートを投稿した際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: '作成されたノート',
},
}
}"/>
### reply
自分のノートに返信された際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: '返信',
},
}
}"/>
### renote
自分のートがRenoteされた際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'Renote',
},
}
}"/>
### mention
自分にメンションされた際に発生します。
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'メンションを含むノート',
},
}
}"/>

View File

@ -0,0 +1,139 @@
# ウィジェット
ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。
ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。
ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。
## 利用可能なウィジェット一覧
- プロフィール
- サーバー情報
- 付箋
- タイムライン
- カレンダー
- RSSリーダー
- RSSティッカー
- トレンド
- 時計
- アクティビティ
- フォト
- デジタル時計
- UNIX時計
- 連合
- サーバークラウド
- 投稿フォーム
- スライドショー
- サーバーメトリクス
- オンラインユーザー
- ジョブキュー
- ボタン
- AiScriptコンソール
- AiScript App
- 藍
- ユーザーリスト
- クリッカー
### プロフィール
名前・ユーザー名・アバター画像・バナー画像を表示します。複数アカウントを使用している時に使用しているユーザー名が見やすくなります。
### サーバー情報
サーバー名・ドメイン・アイコン画像・バナー画像を表示します。
### 付箋
テキストを保存しておけます。
### タイムライン
ライムラインを表示します。ホーム・ローカル・ソーシャル・グローバルを切り替え表示できます。
### カレンダー
今日の年月日・曜日、今日・今月・今年をパーセント表示します。デフォルトUIでは最初から表示されています。
### RSSリーダー
RSS フィードタイトルを一覧表示します。
### RSSティッカー
RSS フィードを順次スクロール表示します。
### トレンド
最近よく使用されているハッシュタグを表示します。
### 時計
アナログ時計で現在時間を表示します。
### アクティビティ
稼働状況をドット表示します。
### フォト
最近のドライブ中身を表示します。
### デジタル時計
デジタル時計で現在時刻を表示します。
### UNIX時計
UNIX時間で現在時刻を表示します。
### 連合
主に通信している他のサーバーを表示します。
### サーバークラウド
他のサーバーを球状に表示します。
### 投稿フォーム
ノートを投稿するッフォーム を固定表示します。
### スライドショー
ドライブ内の特定フォルダ内を順次表示します。
### サーバーメトリクス
サーバのCPU・メモリ・ネット送受・ストレージ容量を表示します。サーバ環境によっては表示できない場合があります。
### オンラインユーザー
現在オンタイン状態になっているユーザー数表示します。
### ジョブキュー
他サーバーとの送受しているノートなどのキュー状態を表示します。
### ボタン
ボタンを表示します。動作は AIScript で記載していきます。
### AiScriptコンソール
AiScript を実行できるコンソールを表示します。
### AiScript App
AIScript ソースを用いてアプリを表示します。Misskey Play と同じ UI を使用できます。v13 より追加されています。
### 藍
藍を表示します。カーソルに合わせて視線を変えたりします。
### ユーザーリスト
リストを表示します。もっと! - リスト で設定できます。
### クリッカー
クッキーを表示します。表示されたクッキーをクリック・タップして下さい。

View File

@ -0,0 +1,24 @@
# ワードミュート
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
## ソフトワードミュート
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。\
\
クリックすると元の通りに表示されます。
## ハードワードミュート
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
つまり、ハードワードミュートには、以下のような特徴があります。
- 条件設定後、新しい投稿のみがミュートの対象になります。
- 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
- 「○○が何かを言いました」でタイムラインが埋まることがありません。
- ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。

View File

@ -0,0 +1,86 @@
---
description: 問題が発生したときは、まずこちらをご確認ください。
---
# トラブルシューティング
:::tip
[よくある質問](./faq.md)も合わせてお役立てください。
:::
問題が発生したときは、まずこちらをご確認ください。
該当する項目が無い、もしくは手順を試しても解決しない場合は、サーバーの管理者に連絡するか[不具合を報告](../../about-misskey/#議論に参加する)してください。
## クライアントが起動しない
ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。
ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。
これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。
## ページが読み込めない
クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。
これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。
まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。
## クライアントの動作が遅い
インターネットサービスプロバイダーの障害やメンテナンス予定の確認、ネットワークの通信速度の状態やネットワーク設定の確認、そしてサーバー側で何らかの障害やメンテナンスが発生しているかどうかを確認した上で、以下の設定を試すまたは確認してください:
1.Misskey Webの設定
メニューから設定を開き、クライアント設定の全般を開いて以下の設定を試してみてください。
- アピアランスの「UIのアニメーションを減らす」を有効にする
- アピアランスの「モーダルにぼかし効果を使用」を無効にする
- アピアランスの「システムデフォルトのフォントを使う」を有効にする
- アピアランスの「OSネイティブの絵文字を使用」を有効にする
以下の設定は、一部のMisskeyの機能が動かなくなることを了承した上で、試してみてください。
- 動作の「Pagesのスクリプトを無効にする」を無効にする
- アピアランスの「動きのあるMFMを無効にする」を有効にする
2.Webブラウザの設定
- お使いのWebブラウザの設定でハードウェアアクセラレーションを有効にする
- お使いのWebブラウザのアドオンや拡張機能の設定を確認するか、それらの機能をオフにする
- お使いのWebブラウザのその他の設定を確認する
3.その他
- お使いのPCやスマートフォンのシステム設定を確認する
## Misskey WebのUIの一部表示がおかしい(背景が透明になっている等)
アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。
クライアントの設定の「キャッシュをクリア」すると直ります。
:::warning
「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。
:::
## 通知やアンテナ等の点滅が消えない
点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。
すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。
## Renoteができない
公開範囲がフォロワー限定のートおよびDMはRenoteすることはできません。
## Misskey WebのUI上で特定の要素が表示されない
Webブラウザで広告ブロッカーなどのアドオンや拡張機能を使用していると、そのような不具合が発生することがあります。それらの設定を確認するか、オフにしてご利用ください。
## Misskey WebのUI上で未翻訳の部分がある
ほとんどの場合、Misskey WebのUIの翻訳が間に合っていないことが原因ですので、不具合ではありません。翻訳が終わるまで申し訳ありませんが、しばらくお待ちください。
もし、あなたがMisskeyの翻訳についてご興味があるなら[翻訳に参加](../../about-misskey/#テキストを翻訳する)していただくことは、もちろん可能です。

View File

@ -0,0 +1,22 @@
---
description: Misskeyを使うためのアプリを紹介します。
---
# アプリ
Misskeyを使うためのアプリクライアントを紹介します。
ブラウザからMisskeyサーバーにログインすると、タイムラインが表示されます。このとき表示されているのがMisskey唯一の公式クライアント、**Misskey Web**です。ブラウザで動くアプリですが、PWAにも対応しているので、モバイルOSのネイティブアプリのように動作させることもできます。詳しくは[こちら](TODO)をご覧ください。なお、Misskeyプロジェクトではネイティブアプリを開発していません。
Misskey Webに慣れてきたら、有志が開発する非公式アプリを試してみるのもいいでしょう。ここでは、広く使われているアプリを紹介しますアルファベット順
- **Kaiteki** (Web, Android, Windows, Linux): 幅広いプラットフォームで動作する。Mastodon, Pleroma, Twitterにも対応。[公式サイト](https://kaiteki.app)。[ソースコード](https://github.com/Kaiteki-Fedi/Kaiteki)。
- **Milktea** (Android): タイムラインや特定の検索結果にタブから素早くアクセスできる。他のユーザーにニックネームを与えることができる。[Google Play](https://play.google.com/store/apps/details?id=jp.panta.misskeyandroidclient)。[ソースコード](https://github.com/pantasystem/Milktea)。
- **Miria** (iOS, Mac, Android): タブにカスタム絵文字を設定できる機能や、MFMの入力補完等のMisskeyに特化した独自機能を持つ。[公式サイト](https://shiosyakeyakini.info/miria_web/index.html)。[App Store](https://apps.apple.com/jp/app/miria/id6449201469)。[Google Play](https://play.google.com/store/apps/details?id=info.shiosyakeyakini.miria)。[ソースコード](https://github.com/shiosyakeyakini-info/miria)
- **MissRirica** (iOS, Android): Misskey用iOS/Androidクライアント。ほぼMisskey Web(v13)のUI、Push通知が届く。[App Store](https://apps.apple.com/app/missririca/id1659214999)。[Google Play](https://play.google.com/store/apps/details?id=space.riinswork.missririca)。[ソースコード](https://github.com/fruitriin/missRirica-client)
- **Misscat** (iOS): スマホに適した直感的な操作性を提供することを目標に開発されている。[公式サイト](https://yuiga.dev/misscat/)。[App Store](https://apps.apple.com/app/id1505059993)。[ソースコード](https://github.com/YuigaWada/MissCat)。
- **SocialHub** (iOS): Misskey, Mastodon, Twitter, Slack, Tumblrにも対応した有料アプリ。[公式サイト](https://uakihir0.github.io/socialhub/)。[App Store](https://apps.apple.com/us/app/socialhub-socialmedia-client/id1474451582)。
- **ZonePane(ぞーぺん)** (Android): タイムラインやリスト、チャンネルをタブ化できる。既読管理が優秀。TwitterアプリTwitPaneのMisskey版でMastodonにも対応。 [Google Play](https://play.google.com/store/apps/details?id=com.zonepane)。
- **TootRain** (Mac): タイムラインやリストの投稿をリアルタイムに、コメント風に画面上に表示するMacアプリです。 [サイト](https://b123400.net/tootrain/ja)、[ソースコード](https://github.com/b123400/TootRain)。
とはいえ、Misskeyは活発に機能が更新されているため、最新の機能への対応が遅れることもあります。特にこだわりがなければMisskey Webの利用をおすすめします。

View File

@ -0,0 +1,78 @@
---
description: Misskeyを利用する際のよくある質問について掲載しています。
---
# よくある質問
ここではMisskeyを利用する際のよくある質問について掲載しています。<br>
Misskeyプロジェクト自体についてのよくある質問は[こちら](../../about-misskey#よくある質問)をご覧ください。
## Android/iOSのアプリはありますか
MisskeyプロジェクトではそういったモバイルOS向けのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。詳しくは[こちら](./apps)をご覧ください。<br>
ただ、サードパーティ製アプリはMisskeyの最新機能への対応がどうしても遅れてしまうため、特にこだわりがなければMisskey公式のWebクライアント、Misskey Webの利用をおすすめします。なお、Misskey WebはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。詳しくは[こちら](todo)をご覧ください。
## Mastodon向けのアプリでログインできますか
MisskeyはMastodonのAPIと互換性がないため、一部を除いてサードパーティー製のMastodon向けのアプリやWebクライアントなどではMisskeyを利用することはできません。<br>
Misskey公式のWebクライアント、Misskey Webをご利用ください。
## misskey.ioはMisskeyプロジェクトの公式サーバーですか
misskey.ioはMisskey公式サーバーではなく、またMisskeyプロジェクトには含まれません。misskey.ioは特定のテーマを持たず汎用的で、かつ気軽に登録できる、Misskeyで最も規模の大きいサーバーです。
## 株式会社MisskeyHQとの関係は
株式会社MisskeyHQは、misskey.ioの運営を目的とした会社です。そのため、Misskey開発プロジェクトとの直接的な関係はありません。
ただし、Misskeyプロジェクトリーダーであるsyuiloも役員として参加しており、協力してMisskeyを発展させていく関係です。
## 「Misskey」の名前の由来は何ですか
メイン開発者のsyuiloがその名前を考えていたときに偶然聴いていた、May'nの楽曲『Brain Diver』の歌詞から採られています。
## 他のMisskey・PleromaサーバーやMastodonサーバーなどのユーザーをフォローするには
メニューから検索を選び、ユーザーアカウントを以下の形式で入力します。ユーザーアカウントは、ユーザー名とユーザーが属するサーバーまたはサーバーのホスト名を含めたものになります。Misskeyに限らずMastodonやPleromaなどの多くの分散型ソフトウェアでは、以下の様なユーザーアカウントの形式が一般的です。<br>
ユーザーアカウントの形式: `@ユーザー名@Misskey・PleromaサーバーやMastodonサーバーのホスト名`<br>
ユーザーアカウントの例: `@syuilo@misskey.io`<br>
ユーザーアカウントの形式は全ての分散型ソフトウェアで共通ではありませんが、この形式によって、様々な分散型ソフトウェアが実装された他のサーバーやサーバーのユーザーをフォローすることができます。
## Renoteを削除するには
Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。<br>
Renoteについて詳しくは[こちら](../features/note/#renote)をご覧ください。
## ート内のURLのプレビューを表示させたくない
MFM(Markup language For Misskey)というMisskey独自のマークアップ言語には、URLのプレビューを無効にする構文があります。詳しくはMFMチートシートをご覧ください。MFMチートシートは、あなたが属するサーバーで次のアドレスを入力すると見ることができます。`https://あなたのサーバーのホスト名/mfm-cheat-sheet`
## カスタム絵文字を追加、編集、削除したい
あなたが属するサーバーの管理者のみが、カスタム絵文字を追加、編集、削除できます。それらを希望する場合は、サーバー管理者に直接連絡してください。
## Botを開発したい
Misskey APIを利用したBotの開発が可能です。詳しくは[こちら](../../for-developers/api/)をご覧ください。
## ノートの翻訳機能はどのサービスを使用していますか?
機械翻訳サービスの[DeepL翻訳](https://www.deepl.com/)を使用しています。
## サーバーを作成しましたが、電気通信事業の届出は必要ですか?
### 短い答え
**ビジネス目的**で運営するのであれば、**はい**。そうでなければ、**いいえ**。
### 長い答え
「事業者」の定義は、[総務省のドキュメント](https://www.soumu.go.jp/main_content/000477428.pdf)によると「サービスの提供により、その対価として料⾦を徴収することにより収益を得ようとする者」とされています。したがって、ビジネスとして収益を得る目的でサーバーを運営しない限り届出は必要ありません。そのため、寄付や広告などで収益があったとしても、あくまでもサーバーの運営費に充てるための収益なのであれば届出が必要な事業者には該当しません。(総務省に確認済み)<br>
詳しくは総務省の[電気通信事業参入マニュアル](https://www.soumu.go.jp/main_content/000477428.pdf)などの資料をご覧いただくか、総務省までお問い合わせください。
## 名称に「Misskey」を含むサービスを公開しても良いですか
「Misskey」はMisskeyプロジェクトによる登録商標(日本)ですが、名称に「Misskey」を含む(例: Misskey Tools等)サービスを公開しても問題ありません。
また、その場合でも使用料の徴収などを行う予定もありません。

View File

@ -0,0 +1,128 @@
---
description: Misskeyに関する用語集です。
---
# 用語集
Misskeyに関する用語集です。
## Acct
特定のユーザーを示す`@username@host`形式の文字列。メンションをする際などに使われます。
## ActivityPub
(読み: あくてぃびてぃぱぶ)<br>
Fediverseと呼ばれる、非中央集権型で連合したソーシャルネットワークを形成するために用いられる、オープン標準のプロトコル(仕様)。このプロトコルに則ってサーバー同士が接続され、コンテンツや通知などの情報を相互のサーバーでやり取りします。Fediverseのネットワークを形成するために欠かせません。
## AiScript
(読み: あいすくりぷと)<br>
Misskeyで使用できる、JavaScript上で動作するプログラミング言語です。詳しくは[こちら。](https://github.com/aiscript-dev/aiscript/blob/master/README.md)
## API
(読み: えーぴーあい)<br>
Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳しくは[こちら。](../../for-developers/api)
## Bot
(読み: ぼっと)<br>
プログラムによって動作しているアカウントです。
## CW
(読み: こんてんつわーにんぐ)<br>
Contents Warningの略。ートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。詳しくは[こちら。](../features/note/#cw)
## Fediverse
(読み: ふぇでぃばーす)<br>
「Federated(Federation)」と「Universe」を組み合わせた造語。Misskeyを含む、様々な分散型ソフトウェアを実装したサーバーで構成された、非中央集権的で連合したソーシャルネットワーク。Misskey以外の分散型ソフトウェアとしては、MastodonやPleromaやPixelfedなどがあります。
## GTL
グローバルタイムライン(Global TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline)
## HTL
ホームタイムライン(Home TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline)
## LTL
ローカルタイムライン(Local TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline)
## MFM
(読み: えむえふえむ)<br>
Markup language For Misskeyの略で、Misskey上で使用できるマークアップ言語です。詳しくは[こちら。](../features/mfm)
## Misskey Web
(読み: みすきーうぇぶ)<br>
Misskey公式のWebクライアント(インターフェイス)。MisskeyサーバーにPC・スマートフォンなどのWebブラウザからアクセスすると、自動的に表示されます。
## NSFW
(読み: のっとせーふふぉーわーく)<br>
Not Safe For Workの略。画像を「センシティブ」扱いにし、操作なしには表示しないようにすることができる機能です。
## Renote
(読み: りのーと)<br>
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳しくは[こちら。](../features/note/#renote)
## STL
ソーシャルタイムライン(Social TimeLine)の略。タイムラインについて、詳しくは[こちら。](../features/timeline)
## 藍
(読み: あい)<br>
Misskeyの看板娘(公式キャラクター)です。詳しくは[こちら。](https://xn--931a.moe/)
## サーバー
todo
## カスタム絵文字
各Misskeyサーバーの管理者やユーザーによって独自に作られる絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれます。詳しくは[こちら。](../features/custom-emoji)
## コントロールパネル
Misskeyサーバーの設定画面のことを指します。
## 凍結
(読み: とうけつ)<br>
アカウントが使用不可に設定されている状態を指します。
## ドライブ
Misskeyのサーバーでユーザーがアップロードした画像や音楽などのファイルを管理する機能です。詳しくは[こちら。](../features/drive)
## ノート
Misskeyのサーバー上でユーザーが投稿する文章のこと。画像や音楽などのファイル、アンケートなど、Misskey独自の様々なコンテンツを含めることができます。詳しくは[こちら。](../features/note)
## ミスキスト
Misskeyのサーバーにアカウントを持つユーザー。またはその中でもヘビーユーザーを指す言葉です。
## モデレーター
スパムの凍結およびサイレンスや不適切な投稿の削除など、サーバーの運営に関する権限を持つユーザー。多くの場合、サーバー管理者がサーバー内でモデレーターを募集して採用します。
## リモート
他サーバーやサーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。
## 連合
(読み: れんごう)<br>
複数のサーバーやサーバー同士が相互に接続され、コンテンツや通知などの情報を相互のサーバーやサーバーでやり取りする集合体を意味します。
## ローカル
自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。

View File

@ -0,0 +1,16 @@
# Misskey Hubについて
Misskey Hubは、Misskeyに関するナレッジなどのドキュメント、開発ブログ、プラグインストアなどを提供するMisskeyのオフィシャルサイトです。
「Misskeyの全てがここにある」を目指しています。
Misskey Hubも[オープンソースで公開されています。](https://github.com/misskey-dev/misskey-hub)
:::tip
Misskey HubはNuxtを使ってビルドされた静的サイトです。
:::
## Misskey Hubに貢献する
ドキュメントの追加や、翻訳など歓迎です。

View File

@ -0,0 +1,9 @@
---
description: サーバー管理者向けの機能の説明です。
---
# サーバーの機能
Misskeyではサーバー運営に役立つ様々な機能が提供されています。
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,28 @@
# お知らせ
お知らせ(announcement)はMisskeyで利用可能なサーバー機能のひとつです。
お知らせ機能を使用すると、ユーザーにサーバー全体のお知らせを掲示することができるほか、ユーザー個別にサーバーからのメッセージを送ることができます。
:::warning
アクティブなお知らせの数が多いと、特に新規ユーザーの確認作業が増え、UXが低下する可能性があります。その場合、以下のオプションを検討できます。
- 「既存ユーザーのみ」オプションを有効にしてお知らせを作成する
- 「非通知」オプションを有効にしてお知らせを作成する
- 終了したお知らせはアーカイブする
:::
## 表示形式
お知らせの表示形式を以下の種類から選択することができます。
- **通常** ... お知らせ一覧ページにお知らせが掲載されます。
- **バナー** ... お知らせ一覧ページへの掲載に加えて、クライアントの画面上部にバナーとして表示されます。
- **ダイアログ** ... お知らせ一覧ページへの掲載に加えて、クライアント起動時にモーダル ダイアログとして表示されます。
- ダイアログ形式のお知らせが同時に2つ以上ある場合、UXに悪影響を及ぼす可能性が非常に高いため、使用は慎重に行うことを推奨します。
## お知らせの作成
TODO

View File

@ -0,0 +1,19 @@
# Fan-out Timeline Technology (FTT)
FTTはMisskeyで利用可能なサーバー機能のひとつです。
有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。
コントロールパネル → 全般 から設定を行えます。
## データベースへのフォールバック
- 有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。
- 無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。
## FTTが適用可能なタイムライン
- ホームライムライン
- ローカルタイムライン
- ソーシャルタイムライン
- ユーザーリストタイムライン

View File

@ -0,0 +1,105 @@
# ロール
ロールはユーザーに割り当てることのできる属性で、ロールごとにバッジを表示させたりポリシー設定でユーザーの権限を調整したりできます。
ユーザーのロール割り当て(アサイン)は手動で行うことも、条件を指定して自動で行うようにすることもできます。
ロールは一人のユーザーに対して複数アサインすることができます。
## ベースロール
全てのユーザーにデフォルトで適用されるポリシーの設定はベースロールの設定で行うことができます。
ベースロールの設定はコントロールパネルの「ロール→ベースロール」で行えます。
## アサインの種類
アサイン方法はマニュアルまたはコンディショナルから選択できます。
- **マニュアル** ... 手動でユーザーをアサインしたりアサイン解除します。(マニュアル ロール)
- アサインする期間を設定することも可能です。
- **コンディショナル** ... 条件を設定し、それに合致するユーザーが自動で含まれるようになります。(コンディショナル ロール)
:::warning
コンディショナル ロールは、マニュアル ロールと比較して以下の制限があります。
- 手動でのアサイン/アサイン解除は行えません。
- 指定したコンディショナル ロールに含まれるユーザー一覧を取得することはできません。
:::
## 権限
ロールの基本的な権限は以下から選択できます。
- **一般ユーザー** ... 特別な権限はありません。
- **モデレーター** ... 基本的なモデレーションに関する操作を行えます。
- **管理者** ... サーバーの全ての設定を変更できます。
より詳細な権限はポリシーの設定で行います。
## ポリシー
ロールのポリシーを調整して、権限や機能の制限を変更できます。
ポリシーはベースロールに設定された値を継承するように設定することもできます。
### 優先度
複数のロールが割り当てられていて、同じポリシーがそれぞれ異なる値で定義されている場合に、他の定義よりどれくらい優先するかを設定できます。
優先度を高く設定するほど他の定義より優先されます。
優先度はポリシーごとの設定であり、ロールごとの設定ではありません。また、ベースロールでは設定できません。
**優先度が同じ場合、デフォルトで最も大きい、または最も権限が広い値が選択されます。**
:::tip
例えば、ユーザーにロールAとロールBがアサインされていて、ロールAのドライブ容量ポリシーが 500MB、ロールBのドライブ容量ポリシーが 300MB に定義されている場合、
- 優先度が同じ、もしくはロールAのドライブ容量ポリシーの優先度の方が高い場合 500MB の値が採用されます。
- ロールBのドライブ容量ポリシーの優先度の方が高い場合 300MB の値が採用されます。
また、ユーザーにロールCとロールDがアサインされていて、ロールCのパブリック投稿可否ポリシーが「いいえ」、ロールDのパブリック投稿可否ポリシーが「はい」に定義されている場合、
- 優先度が同じ、もしくはロールDのパブリック投稿可否ポリシーの優先度の方が高い場合「はい」の値が採用されます。
- ロールCのパブリック投稿可否ポリシーの優先度の方が高い場合「いいえ」の値が採用されます。
:::
### ベースロールの値を使用
この設定をオンにすると、ポリシーの値をベースロールから継承します。
## ロールの作成
コントロールパネルの「ロール」から新しいロールを作成することができます。
## ロール情報の確認、編集、および削除
コントロールパネルの「ロール」で行うことができます。
## ユーザーへのロールのアサイン、アサイン解除
ユーザーの「モデレーション→ロール」で行うことができます。
また、ユーザーのメニューから直接アサインすることもできます。
アサインする際にアサインされる期間を設定することが可能です。
:::tip
ロールのアサイン/アサイン解除が反映されるまで時間がかかることがあります。
:::
:::warning
コンディショナル ロールには手動でのアサインはできません。
:::
## ユーザーのポリシーの確認
ユーザーの「モデレーション→概要→ポリシー」で行うことができます。

View File

@ -0,0 +1,33 @@
---
description: Misskeyサーバーの作成方法についての案内です。
---
# Misskeyサーバーの作成
Misskeyサーバーの構築に関心をお寄せいただきありがとうございます。サーバーの作成方法はいくつかあるので、下記から選んでガイドをお読みください。
:::danger
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
:::
:::warning
自分のサーバーに対して Cloudflare を使用する場合、 Auto Minify 設定は使用しないようにしてください。
Misskeyのソースコードは既にMinifyされているため意味がないばかりでなく、Cloudflare が最新の JavaScript を解釈せず、中のソースコードを破壊するため、Misskey が正常に動作しません。
詳しくは [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791) をご覧ください。
:::
## Xserver VPSでインストール
[Xserver VPS](https://vps.xserver.ne.jp/)では標準でMisskeyのアプリイメージが提供されているため、簡単にMisskeyサーバーを作成することが可能です。
詳細については、[「Misskeyアプリイメージを利用する」](https://vps.xserver.ne.jp/support/manual/man_server_app_use_misskey.php)をご覧ください。
## インストール方法一覧
<MkIndex />

View File

@ -0,0 +1,281 @@
# Misskey install shell script v3.0.0
Misskeyを簡単にインストールするためのシェルスクリプトができました
いくつかの質問に答えるだけで、UbuntuサーバーへMisskey(v12)を簡単にインストールできます!
また、アップデートスクリプトもあります。
[v12の場合はこちら](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.md)\
[**English version**](./README.en.md)
## ライセンス
[MIT License](./LICENSE)
## 準備するもの
1. ドメイン
2. Ubuntuがインストールされたサーバー
3. Cloudflareアカウント推奨
:::danger
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
:::
Let's Encryptの認証を試行できる回数が少ないので、サーバーのネットワークやDNSの設定を十分確認してからインストールを開始してください。
## Cloudflareの設定
Cloudflareを使う場合、Cloudflareのドメインの設定を完了してからインストールを開始するようにしてください。\
\
ネームサーバーの適用には最大で3日程度かかる場合があります。
また、nginxとCloudflareを設定する場合、Cloudflareの設定画面にて、
- DNSを設定してください。
- SSL/TLS設定にて、暗号化モードを「フル」に設定してください。
## 操作
### 1. SSH
サーバーにSSH接続します。\
\
(サーバーのデスクトップを開いている方はシェルを開きましょう。)
### 2. 環境を最新にする
すべてのパッケージを最新にし、再起動します。
```
sudo apt update; sudo apt full-upgrade -y; sudo reboot
```
### 3. インストールをはじめる
SSHを接続しなおして、Misskeyのインストールを始めましょう。
ただ、インストール前に[Tips](#tips)を読むことを強くお勧めします。
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh
```
example.comは自分のドメインに置き換えてください。
### 4. アップデートする
アップデートのためのスクリプトもあります。
アップデートスクリプトは、環境のアップデートは行いません。CHANGELOG日本語および[GitHubのリリース一覧英語](https://github.com/joinmisskey/bash-install/releases)を参考に、適宜マイグレーション操作を行なってください。
まずはダウンロードします。
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh
```
アップデートしたいときにスクリプトを実行してください。
```
sudo bash update.sh
```
- systemd環境では、`-r`オプションでシステムのアップデートと再起動を行うことができます。
- docker環境では、引数に更新後のリポジトリ名:タグ名を指定することができます。
## 動作を確認した環境
### Oracle Cloud Infrastructure
このスクリプトは、Oracle Cloud InfrastructureのAlways Freeサービスで提供されている2種類のシェイプのいずれにおいても動作します。
- VM.Standard.E2.1.Micro (AMD)
- VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater]
iptablesを使うようにしてください。
## Issues & PRs Welcome
上記の環境で動作しない場合、バグの可能性があります。インストールの際に指定された条件を記載の上、GitHubのIssue機能にてご報告いただければ幸いです。
上記以外の環境についてのサポートは難しいですが、状況を詳しくお教えいただければ解決できる可能性があります。
機能の提案についても歓迎いたします。
# Tips
選択肢の選び方や仕様についてなど。
## Systemd or Docker?
v1から、インストールメソッドにsystemdとDockerとを選べるようにしました。
Dockerと言っても、**MisskeyだけをDockerで実行**し、RedisやPostgresなどはホストで直接実行します。\
\
[docker-composeですべての機能を動かす方法については、mamemonongaさんが作成したこちらの記事がおすすめです。](https://gist.github.com/mamemomonga/5549bb69cad8e5618e5527593d4890e0)
Docker Hubイメージを使う設定であれば、Misskeyのビルドが不要になるため、**一番お勧めです**。\
\
ただし、マイグレーションは必要なので、アップデート時にMisskeyを使えない時間がゼロになるわけではありません。\
\
また、Misskeyのビルド環境を準備しない(git pullしない)ので、フォークを動かしたくなった時に設定が面倒になります。
ローカルでDockerをビルドする方式は、パフォーマンス面で非推奨です。
systemdは、Docker Hubにイメージを上げるまでもないものの、フォークを使いたい場合にお勧めです。
お勧めする順番は次の通りです。
1. Docker Hub
2. systemd
3. Dockerビルド
## nginxを使うかどうか
サーバー1台でMisskeyを構築する場合は、nginxの使用をお勧めします。
ロードバランサーを設置する場合にはnginxをインストールせず、[Misskeyのnginx設定](../resources/nginx/)を参考にロードバランサーを設定するのがよいと思います。
## Add more swaps!
スワップを設定している場合、メモリが合計で3GB以上でなければスクリプトが動作しないようになっています。
## 途中で失敗してまたスクリプトを実行する場合
万が一途中で失敗してもう一度スクリプトを動作させる場合、次のことに注意してください。
- RedisやPostgresのインストールが終わっている場合、「install locally」はNoにしてください。\
\
host・port設定はそのままEnterを押します。
ユーザー名やパスワードは、前回実行した際に指定したものを入力します。
## .envファイルについて
インストールスクリプトは、2つの.envファイルを作成します。\
\
アップデートの際に使用します。
### /root/.misskey.env
misskeyを実行するユーザーを覚えておくために必要です。
### /home/(misskeyユーザー)/.misskey.env
systemdの場合に生成されます。\
\
主にディレクトリを覚えておくのに使用します。
### /home/(misskeyユーザー)/.misskey-docker.env
Dockerの場合に生成されます。\
\
実行されているコンテナとイメージの番号を保存しています。\
\
コンテナの番号はアップデートの際に更新されます。古いイメージは削除されます。
## 自分で管理する
インストール後、構成を変更する際に役立つかもしれないメモです。
"example.com"を自分のドメインに置き換えて読んでください。
### Misskeyディレクトリ
Misskeyのソースは`/home/ユーザー/ディレクトリ`としてcloneされます。\
\
ユーザー、ディレクトリの初期値はともにmisskeyです。
Misskeyディレクトリへは、以下のように移動するとよいでしょう。
```
sudo -iu ユーザー
cd ディレクトリ
```
もとのユーザーに戻るにはexitを実行します。
```
exit
```
### systemd
systemdのプロセス名はexample.comです。\
\
たとえば再起動するには次のようにします。
```
sudo systemctl restart example.com
```
journalctlでログを確認できます。
```
journalctl -t example.com
```
設定ファイルは`/etc/systemd/system/example.com.service`として保存されています。
### Docker
DockerはMisskeyユーザーでrootless実行されています。
sudo でMisskeyユーザーに入るときは、`XDG_RUNTIME_DIR`と`DOCKER_HOST`を変更する必要があります。
```
sudo -iu ユーザー
export XDG_RUNTIME_DIR=/run/user/$UID
export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
# プロセス一覧を表示
docker ps
# ビルド (リポジトリ: local/misskey:latest)
docker build -t local/misskey:latest ./misskey
# docker run
docker run -d -p 3000:3000 --add-host=docker_host:10.0.0.1 -v /home/misskey/misskey/files:/misskey/files -v "/home/misskey/misskey/.config/default.yml":/misskey/.config/default.yml:ro --restart unless-stopped -t "local/misskey:latest"
# ログを表示
docker logs --tail 50 -f コンテナID
```
ワンライナーなら次のようにします。
```
sudo -u ユーザー XDG_RUNTIME_DIR=/run/user/$(id -u ユーザー) DOCKER_HOST=unix:///run/user/$(id -u ユーザー)/docker.sock docker ps
```
### nginx
nginxの設定は`/etc/nginx/conf.d/example.com.conf`として保存されています。
### Redis
requirepassとbindを`/etc/redis/misskey.conf`で設定しています。
## Q. アップデート後に502でアクセスできない
Dockerでは、起動後にマイグレーションをするため、すぐにアクセスできません。\
\
マイグレーションが終わっているかどうか確認してみてください。
systemdの場合では、pnpm installに失敗している可能性があります。
Misskeyディレクトリで次の内容を実行し、もう一度アップデートを実行してみてください。
```
pnpm run clean-all
```
journalctlでログを確認すると、たいていre2が云々という記述が見当たります。
## Q. 同じサーバーにもう1つMisskeyを建てたい
スクリプトは同じサーバーに追加でMisskeyをインストールすることは想定していません。\
\
幾つかの設定が上書きされるか、途中でエラーになってしまうでしょう。

View File

@ -0,0 +1,87 @@
---
description: 本教程说明了使用Docker安装Misskey的方法。
---
# Docker Composeを使ったMisskey構築
このガイドはDocker Composeを使ったMisskeyセットアップ方法を説明します。
:::danger
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
:::
:::tip{label='前提条件'}
- DockerおよびDocker Composeがインストールされていること。
:::
## リポジトリの取得
```sh
git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master
```
## 設定
下記コマンドで、各種設定ファイルのサンプルをコピーします。
```sh
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./docker-compose_example.yml ./docker-compose.yml
```
`default.yml`と`docker.env`をファイル内の説明に従って編集してください。\
\
また、必要に応じて、`docker-compose.yml`を編集します。(ポートを変更したい場合など)
## ビルドと初期化
次のコマンドでMisskeyのビルドとデータベースの初期化を行います。
これにはしばらく時間がかかります。
```shell
sudo docker compose build
sudo docker compose run --rm web pnpm run init
```
## 起動
お疲れ様でした。以下のコマンドでMisskeyを起動できます。
```sh
sudo docker compose up -d
```
GLHF✨
## Misskeyのアップデート方法
:::warning
アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。
:::
```sh
git stash
git checkout master
git pull
git submodule update --init
git stash pop
sudo docker compose build
sudo docker compose stop && sudo docker compose up -d
```
アップデート内容、およびデータベースの規模によっては時間がかかることがあります。
## cliコマンドを実行する方法
```sh
sudo docker compose run --rm web node packages/backend/built/tools/foo bar
```

View File

@ -0,0 +1,59 @@
# Kubernetes/TrueNASを使ったMisskey構築
このガイドでは、Kubernetes と HelmChartを使用したMisskeyセットアップ方法について説明します。
:::danger
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
:::
## TrueCharts と TrueNAS Scale
MisskeyのHelmChartsはTrueNAS Scaleで使用するためのTrueChartsで公開されていますが、HelmChartsとしてインストールすることもできます。
[TrueCharts](https://truecharts.org/charts/description_list) のサイトには利用可能なすべてのChartsやインストール方法などのドキュメントがあります。
また、不明な点があればTrueChartsの[Discord](https://discord.gg/Ax9ZgzKx9t)サーバーで質問をすることもできます。
現在、Misskeyは_incubator_ trainで進行中です。
:::前提条件
- TrueNAS Scale
または
- KubernetesクラスターとHelm
:::
## TrueNAS Scale
[TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/)の手順に従ってください。
_incubator_ trainを追加し、Misskeyをインストールします。
設定の URL の欄は必ず変更してください。
TrueChartsはデフォルトでTraefikを使用してサービスをHTTPSで外部に公開しますが、手動ですることにより他のソフトウェアを使用することもできます。
## Helmを使用して手動で構築
TrueNAS Scaleを使用していない場合はHelmを使用して、Misskeyをインストールすることができます。
values.yamlの `misskey:``url:` を必ず書き換えてください。
他の個所は、必要に応じて書き換えてください。
このChartでは現在Misskeyコンテナ内でTLSを有効にすることに対応していないので、サーバーへのアクセスを保護したい場合はリバースプロキシを使用することが推奨されています。
```
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install misskey TrueCharts/misskey
```
## Misskey のアップグレード
Misskey をアップグレードするには、TrueNAS Scale に内蔵されているアップグレード機能を使用するか、kubernetes を手動で実行している場合は [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) または [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/) を使用することができます。
問題が発生する可能性も考え、アップグレード前にデータをバックアップすることを強くお勧めします。

View File

@ -0,0 +1,173 @@
---
description: このガイドではMisskeyのインストール・セットアップ方法について解説します。
---
# Misskeyを手動で構築する
このガイドではMisskeyのインストール・セットアップ方法について解説します。
:::danger
一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください!
:::
:::tip{label='前提条件'}
#### 以下のソフトウェアがインストール・設定されていること
- **[Node.js](https://nodejs.org/en/)** (20.4.x以上)
- **[PostgreSQL](https://www.postgresql.org/)** (15以上)
- **[Redis](https://redis.io/)**
- **[FFmpeg](https://www.ffmpeg.org/)**
Debian/Ubuntuをお使いであれば、`build-essential`パッケージをインストールしておくと良いです。
#### corepackが有効化されていること
```sh
sudo corepack enable
```
:::
## ユーザーの作成
Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。
Debianの例:
```sh
adduser --disabled-password --disabled-login misskey
```
## Misskeyのインストール
```sh
sudo -iu misskey
git clone --recursive https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master
git submodule update --init
NODE_ENV=production pnpm install --frozen-lockfile
```
## 設定
設定サンプルの`.config/example.yml`をコピーし、`default.yml`にリネームします。
```sh
cp .config/example.yml .config/default.yml
```
`default.yml` をファイル内の指示に従って編集します。
## ビルドと初期化
次のコマンドでMisskeyのビルドとデータベースの初期化を行います。
これにはしばらく時間がかかります。
```sh
NODE_ENV=production pnpm run build
pnpm run init
```
## 起動
お疲れ様でした。以下のコマンドでMisskeyを起動できます。
```sh
NODE_ENV=production pnpm run start
```
GLHF✨
::::g-details{summary="systemdを用いた管理"}
systemdサービスのファイルを作成
`/etc/systemd/system/misskey.service`
エディタで開き、以下のコードを貼り付けて保存:
```ini
[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=journal
StandardError=journal
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
:::warning
CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。
:::
systemdを再読み込みしmisskeyサービスを有効化
```sh
sudo systemctl daemon-reload
sudo systemctl enable misskey
```
misskeyサービスの起動
```sh
sudo systemctl start misskey
```
:::tip
`systemctl status misskey`と入力すると、サービスの状態を調べることができます。
:::
::::
## Misskeyのアップデート方法
:::warning
アップデートの際は必ず[リリースノート](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md)を確認し、変更点や追加で必要になる作業の有無(ほとんどの場合ありません)を予め把握するようにしてください。
:::
masterをpullし直し、インストール、ビルド、データベースのマイグレーションを行います:
```sh
git checkout master
git pull
git submodule update --init
NODE_ENV=production pnpm install --frozen-lockfile
NODE_ENV=production pnpm run build
pnpm run migrate
```
アップデート内容、およびデータベースの規模によっては時間がかかることがあります。
アップデートが終わり次第、Misskeyプロセスを再起動してください。
```sh
sudo systemctl restart misskey
```
:::tip
ビルドや起動時にエラーが発生した場合は、以下のコマンドをお試しください:
- `pnpm run clean`または`pnpm run clean-all`
- `pnpm rebuild`
:::

View File

@ -0,0 +1,636 @@
# Ubuntu版Misskeyインストール方法詳説
## その他のMisskeyインストール方法
- [基本版 Misskey構築の手引き (manual)](./manual/)
- [その他のインストール方法一覧](/docs/for-admin/install/guides/#インストール方法一覧)
## シェルスクリプトのお知らせ
コピペばかりならシェルスクリプトでいいじゃん、と言うことで**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\
[**シェルスクリプトの詳細と使用方法はこちらから!**](./bash/)
:::tip
シェルスクリプトでの開発環境へのインストールは想定されていません。
:::
:::tip
ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。
:::
不具合があれば[ @aqz@p1.a9z.dev へのメンション](https://p1.a9z.dev/@aqz)にてお知らせいただければと思います。
## この記事について
この記事では、[Misskey構築の手引き (manual)](./manual/)で紹介されている通り、systemdでMisskeyを動作させています。
[docker-compose](./docker/)なら、手作業でももうちょっと簡単に実行できるはずです。
:::danger
一度使用を始めたサーバーのドメイン・ホスト名では、データベースを作り直さないでください!
:::
## はじめに
この記事では、[Misskey構築の手引き (manual)](./manual/)を基に、一般的なUbuntuサーバーへMisskeyをインストールし公開する方法の一挙手一投足を解説する。
Bashのコマンド入力、いくつかの設定ファイルの編集、そしてブラウザの操作だけで設定が完了するようにしている。インストールするソフトウェアについて簡単に説明しているが、気にする必要はない。
この記事では、具体性を重視し、特定の環境に特化した記述をしている。
OSの違い、Misskey本体や依存するソフトウェアのバージョンアップで変わってしまった部分等があるかもしれないが、ご容赦いただきたく思う。
わからない単語については、[『「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典』](https://wa3.i-3-i.info/) で調べて分かった気になってほしい。
## 環境と条件
- OSは**Ubuntu 22.04 LTS**を利用する。
- ハードウェア要件としては、CPUは最近のものなら最小限で動く。アーキテクチャはamd64及びarm64を想定している。
- メモリは4GB程度あると良い。
- 従来Viteの導入により1.5GB程度でもビルド可能と説明していたが、最近またフロントエンドのビルドで要件が厳しくなってきた。)
- 独自のドメインを購入し、CloudFlareを使用する。
- ドメインは[Cloudflare Registrar](https://www.cloudflare.com/ja-jp/products/registrar/)などで予め用意しておくこと。
- ここではドメインをexample.tldとして解説を進めるので、自分が買ったドメインに適宜置き換えて読むこと。開発環境の場合はlocalhostと読み替えます設定ファイルの項で別途説明
:::danger
一度使用を始めたサーバーのドメイン・ホスト名は、決して変更しないでください!
:::
## nanoの使い方
今回はテキストエディターにnanoを使う。次のように起動する。
```sh
nano /path/to/file
```
一般的な矢印ボタンやHome/Endなどを利用してカーソルを移動できる。
終了はCtrl+Xで、変更を保存するか聞かれた場合Y(Yes)を入力しEnterすると保存できる。
下部にコマンド一覧が表示されるので、^をCtrl、M-をAltと読み替えて参考にしよう。
## ユーザーの作成
Misskeyはrootで実行しない方がよいため、専用のユーザーを作成する。
```sh
sudo adduser --disabled-password --disabled-login misskey
```
:::tip
開発環境の場合はユーザーを分ける必要はありません
:::
## 基本的なソフトウェアのインストールと設定
基本的なソフトウェアのインストールを行う。
### Node.js
Node.jsは、サーバーサイドJavaScript環境であり、Misskeyの基本的な実行環境である。
```sh
sudo rm /usr/share/keyrings/nodesource.gpg;
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/nodesource.gpg;
NODE_MAJOR=20; echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list;
sudo apt update;
sudo apt install -y nodejs;
# Node.jsがインストールされたので、バージョンを確認する。
node -v
# corepack enable
sudo corepack enable
```
v20.x.xなどと表示されればOK。v8.x.xのように低いバージョンが表示された場合は、正しくインストールが行えていないため、サーバーを再起動してもう一度インストールし直すなどしてみよう。
### PostgreSQL
PostgreSQLは、オブジェクト関係データベース管理システムであり、Misskeyの種々のデータを保存するために必要不可欠なソフトだ。
#### インストール
シェルスクリプトを実行し、最新バージョンv15をインストールしよう。
```sh
sudo apt install -y postgresql-common
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -i -v 15;
# systemctlでデーモンの状態を確認。
systemctl status postgresql
```
activeならOK。
#### ユーザーとデータベースの作成
psqlを起動。
```sh
sudo -u postgres psql
```
Misskeyで使うユーザーを作成する。\
ユーザー名をmisskey、パスワードをhogeとする場合は次のようになる。\
LinuxのユーザーとPostgreSQLのユーザーは別物なので、混同しないよう注意すること。
```sql
CREATE ROLE misskey LOGIN PASSWORD 'hoge';
```
データベースを作成。データベース名をmk1としている。
```sql
CREATE DATABASE mk1 OWNER misskey;
¥q
```
### Redis
Redisは、NoSQLのインメモリデータベースソフトであり、データベースや連合との通信を管理するなどのために必要だ。\
redis.ioのドキュメントに従い、snapでインストールする。
https\://redis.io/docs/getting-started/installation/install-redis-on-linux/
```sh
sudo snap install redis
```
systemctlでデーモンの状態を確認。
```sh
systemctl status redis-server
```
activeならOK。
### nginx
nginxは、主としてリバースプロキシに用いられるWebサーバーソフトである。Misskeyには必須ではないが、キャッシュ等をするとパフォーマンスが向上したり、httpからhttpsへの転送などをするために、インストールしておこう。
:::tip
開発環境の場合はnginxのセットアップは不要です
:::
nginx.orgのドキュメント http\://nginx.org/en/linux_packages.html#Ubuntu に従ってインストールする。
```sh
sudo apt install -y curl ca-certificates gnupg2 lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
```
このとき出力に 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 とあるか確認する。
```sh
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | sudo tee /etc/apt/preferences.d/99nginx
sudo apt update
sudo apt install -y nginx
```
systemctlでデーモンの状態を確認。
```sh
systemctl status nginx
```
activeならOK。そうでなければ、次のコマンドを実行。
```sh
sudo systemctl start nginx
sudo systemctl enable nginx
```
http\://localhost にアクセスし、\*Welcome to nginx!\*と表示されればOK。\
curlで確認するのもよいだろう。
```sh
curl http://localhost
```
### その他
Gitバージョン管理ソフトおよびbuild-essentialMisskeyのビルド時に必要をインストールする。
```sh
sudo apt update
sudo apt install -y git build-essential
```
## 追加の設定とインストール
サーバーをインターネットに公開する準備をする。
:::tip
開発環境の場合はファイヤーウォールやCloudFlare、Certbotの設定は不要です
:::
### ファイヤーウォール
今回は、ファイヤーウォールとしてufwを使用する。
次では、接続許可をホワイトリスト形式とし、22番SSHポートを接続回数制限を設けながら開放、80番HTTPポート及び443番HTTPSポートを開放とした。
```sh
sudo ufw enable
sudo ufw default deny
sudo ufw limit 22
sudo ufw allow 80
sudo ufw allow 443
```
ufwのステータスを確認しておく。
```sh
sudo ufw status
```
systemctlで永続化する。
```sh
sudo systemctl enable ufw
```
:::tip
ufwは、netfilter(iptables)を人間が操作しやすいようにするアプリだ。インストールスクリプトは、OCI環境ではnetfilterを直接操作する。
:::
### CloudFlare
CloudFlareは、自分のドメインに対してDNSサーバー・リバースプロキシ・CDNをいっぺんに提供してくれるたいへん便利なサービスである。\
CloudFlareを経由せずにサーバーを公開することも可能だが、たいへん便利なので導入することをお勧めする。
[**→ CDNの設定**](../resources/cdn/)
[CloudFlareにサインアップ](https://dash.cloudflare.com/sign-up) し、購入したドメインを案内に従って登録する。
DNSの登録画面でサーバーのIPアドレスを入力しておくとよい。
ドメインを購入した所によっては適用に3日程度かかる場合がある。
### Certbot (Lets Encrypt) の設定
HTTPS・WSS通信に使用する証明書をCloudFlareを使う方式でLets Encryptから取得する。
certbotとCloudFlareプラグインをインストール
```sh
sudo apt install -y certbot python3-certbot-dns-cloudflare
```
CloudflareのAPIキーを取得する。以下の手順で取得されたい。
1. https\://dash.cloudflare.com/profile/api-tokens にアクセス
2. Global API KeyのViewを選択
3. パスワードを入力しhCaptchaを解除、Viewを選択
CloudFlareの情報を記載した設定ファイル/etc/cloudflare/cloudflare.iniを作成する。
```sh
mkdir /etc/cloudflare
nano /etc/cloudflare/cloudflare.ini
```
dns_cloudflare_email下の例ではbar\@fuga.fooにはCloudFlareで登録しているメールアドレスを設定する。
```sh
dns_cloudflare_email = bar@fuga.foo
dns_cloudflare_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxx
```
これを保存し、パーミッションを600に設定。
```sh
sudo chmod 600 /etc/cloudflare/cloudflare.ini
```
準備ができたのでコマンドを実行する。**途中の2箇所のexample.tldは自分のものに置き換えること**。
```sh
sudo certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare/cloudflare.ini --dns-cloudflare-propagation-seconds 60 --server https://acme-v02.api.letsencrypt.org/directory -d example.tld -d *.example.tld
```
\*Congratulations!\*と表示されたらOK。生成された.pemファイルのパスは今後使うので記録しておくこと。
自動更新の設定はインストールと同時に行われているため不要。
## Misskeyのインストール
これで前準備はあらかた終わったので、Misskeyを準備していく。
misskeyユーザーに変更。
```sh
sudo su - misskey
```
Gitでファイル類を展開。
```sh
git clone -b master https://github.com/misskey-dev/misskey.git --recurse-submodules
cd misskey
git checkout master
```
必要なnpmパッケージをインストール。
```sh
NODE_ENV=production pnpm install --frozen-lockfile
```
## Misskeyを設定する
### default.yml
設定ファイル.config/default.ymlを作成。
```sh
nano .config/default.yml
```
次の内容を貼り付け、適宜置き換える。設定値の変更が必要な箇所は●で、これまでの流れの中で設定した値を用いる箇所は〇で示した。
この設定ファイルはYAML形式で書かれており、行頭のスペースの数などを間違えるとMisskeyが動かないので、特に注意すること。
設定できる値と記述方法は[.config/example.yml](https://github.com/syuilo/misskey/blob/develop/.config/example.yml)に書かれている。
:::tip
開発環境の場合、urlは`url: http://localhost:3000`と指定します。
:::
```yml
# ● Misskeyを公開するURL
url: https://example.tld/
# ポートを3000とする。
port: 3000
# ● PostgreSQLの設定。
db:
host: localhost
port: 5432
db : mk1 # PostgreSQLのデータベース名
user: misskey # PostgreSQLのユーザー名
pass: hoge # ● PostgreSQLのパスワード
#   Redisの設定。
redis:
host: localhost
port: 6379
#   IDタイプの設定。
id: 'aidx'
#   syslog
syslog:
host: localhost
port: 514
```
指定できたら保存する。
### nginxの設定
nginxの設定を行う。
ルート権限で行う。
```sh
exit
```
/etc/nginx/conf.d/misskey.confを作成する。
```sh
sudo nano /etc/nginx/conf.d/misskey.conf
```
[Misskey Hub](/docs/for-admin/install/resources/nginx/)の設定例をnanoへコピーペーストし、次の部分を自分のものに書き換える。
- 18行目と30行目のドメイン名
- 34-35行目の証明書へのパスをCertbotで取得したものに (基本的にexample.tldを置き換えるだけでOK)
- 56行目 (If it's behind another reverse proxy or CDN, remove the following.) から4行を削除
変更を保存する。
設定ファイルがきちんと機能するか確認。
```sh
sudo nginx -t
```
OKならば、nginxデーモンを再起動。
```sh
sudo systemctl restart nginx
```
ステータスを確認。
```sh
sudo systemctl status nginx
```
activeであればOK。
## Misskeyのビルド
misskeyユーザーにログインし直す。
```sh
sudo su - misskey
```
ビルドをする。yes we can…
```sh
cd misskey
NODE_ENV=production pnpm run build
```
:::tip
開発環境の場合、`NODE_ENV=production`は不要です。以降のコマンドでも同様に削除してください。
:::
### サーバーでビルドできない場合
RAMの不足が考えられる。
Misskeyのビルドやデータベースのマイグレーション初期化を含むには、RAMが2GB以上必要になっている。\
RAMが足りない場合、以下のような解決策が考えられる。
- サーバーにスワップを追加する
- ローカルでビルドしたものbuiltディレクトリをsftpで転送する
## データベースの初期化
```sh
pnpm run init
```
## Misskeyを起動する
```sh
NODE_ENV=production pnpm run start
```
**Now listening on port 3000 on** [**http://example.tld**](http://example.tld) と表示されたら、設定したURLにアクセスする。
Misskeyのウェルカムページが表示されるはずだ。
アカウントの作成、ノートの作成やファイルのアップロードといった一通りの操作が正しく行えるか確認しよう。
### アクセスできない場合
#### CloudFlareのDNSを確認する
CloudFlareのDNS設定が正しいIPアドレスになっているかもう一度確認しよう。
#### ルーターの設定を確認する
自宅サーバーの場合、ルーターがサーバーと外部との80ポート・443ポートの通信を許可する設定になっているかどうか確認しよう。
クラウドの場合でも、ネットワーク設定でポート開放が必要な場合が多い。
## Misskeyのデーモンを作成
:::tip
開発環境の場合、デーモンの作成は不要です。
:::
いったんCtrl+Cでプロセスをキルし、Misskeyをデーモンで起動する設定をしよう。
ルート権限で行う。
```sh
exit
```
/etc/systemd/system/misskey.serviceを作成する。
```sh
sudo nano /etc/systemd/system/misskey.service
```
次の内容を貼り付け、保存する。
```ini
[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=journal
StandardError=journal
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
systemdを設定し、misskeyデーモンを開始。
```sh
sudo systemctl daemon-reload
sudo systemctl enable misskey
sudo systemctl start misskey
```
systemctlでデーモンの状態を確認。起動に少し時間がかかるため、15秒程度待ってからのほうが良い。
```sh
sudo systemctl status misskey
```
activeならOK。
**これでMisskeyのインストールはほぼ完了だ。**
Misskeyサーバーに自分のアカウントを登録・ログインし、設定を続けよう。
## Misskeyの設定を続ける
- [**Misskeyサーバーで最初に設定するべきサーバー設定とその他設定の説明**](https://hide.ac/articles/Y504SIabp)
- [**Squidプロキシを設定してMisskeyを守る**](https://hide.ac/articles/MC7WsPDqw)
- [**Misskeyのデータベースをバックアップしよう【OCIオブジェクトストレージ編】**](https://hide.ac/articles/E2Ea3cauk)
## Misskeyのアップデート
[Misskeyのアップデート方法](./manual/#misskeyのアップデート方法)
作業中はMisskeyを使うことができません。
```sh
sudo systemctl stop misskey
su - misskey
git pull;
NODE_ENV=production pnpm install --frozen-lockfile
pnpm run clean;
NODE_ENV=production pnpm run build;
pnpm run migrate;
exit
```
### Case 1: apt upgradeをする場合
```sh
sudo apt update -y
sudo apt full-upgrade -y
sudo reboot
```
再起動後はMisskeyは自動で起動します。
### Case 2: そのまま起動
```sh
sudo systemctl start misskey
```

View File

@ -0,0 +1,23 @@
# CDNの設定
Misskeyサーバーを公開するときは、[Cloudflare](https://www.cloudflare.com/)などのCDNを使用することを強くおすすめします。
CDNを使用することで、以下のようなメリットがあります。
- 静的なコンテンツをキャッシュしてもらうことができ、サーバーの負荷が低減する
- サーバーのIPアドレスが露出しにくくなることで、DoS攻撃などを緩和できる
## キャッシュ
Misskey Webは、完全に静的であり、動作にサーバーを必要としません。したがってMisskey Web全体をCDNでキャッシュすることができます。
Misskey APIはキャッシュすることはできません。
CDNで以下の設定を行なってください。
- `/api/*`以外のリクエストをすべてキャッシュする
:::tip
Misskeyをアップデートした際にキャッシュのクリアは不要です。
:::

View File

@ -0,0 +1,88 @@
# Nginxの設定
1. `/etc/nginx/conf.d/misskey.conf`もしくは`/etc/nginx/sites-available/misskey.conf`を作成し、下の設定例をコピーします。\
ファイル名はmisskeyでなくても構いません。
2. 次のように編集します。
1. example.tldを自分が用意したドメインに置き換えます。\
`ssl_certificate`と`ssl_certificate_key`はLet's Encryptで取得した証明書のパスになるようにします。
2. CloudflareなどのCDNを使う場合は、「If it's behind another reverse proxy or CDN, remove the following.」から4行を削除します。
3. `/etc/nginx/sites-available/misskey.conf`を作成した場合は、`/etc/nginx/sites-enabled/misskey.conf`としてシンボリックリンクを作成します。\
`sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf`
4. `sudo nginx -t` で設定ファイルが正常に読み込まれるか確認します。
5. `sudo systemctl restart nginx` でnginxを再起動します。
## 設定例
```nginx
# For WebSocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;
server {
listen 80;
listen [::]:80;
server_name example.tld;
# For SSL domain validation
root /var/www/html;
location /.well-known/acme-challenge/ { allow all; }
location /.well-known/pki-validation/ { allow all; }
location / { return 301 https://$server_name$request_uri; }
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.tld;
ssl_session_timeout 1d;
ssl_session_cache shared:ssl_session_cache:10m;
ssl_session_tickets off;
# To use Let's Encrypt certificate
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
# To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate)
#ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
# SSL protocol settings
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
# Change to your upload limit
client_max_body_size 80m;
# Proxy to Node
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_redirect off;
# If it's behind another reverse proxy or CDN, remove the following.
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# For WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# Cache settings
proxy_cache cache1;
proxy_cache_lock on;
proxy_cache_use_stale updating;
proxy_force_ranges on;
add_header X-Cache $upstream_cache_status;
}
}
```

View File

@ -0,0 +1,32 @@
# GitHub Actionsを使用してDocker Hubへpushする方法
[/.github/workflows/docker.yml](https://github.com/misskey-dev/misskey/blob/develop/.github/workflows/docker.yml) に\
GitHub ActionによりDocker Hubへpushするワークフローが記述されています。
オリジナルリポジトリでは、リリースされたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。\
\
※ Docker Hub に`<ブランチ名>`のようなタグがあるかもしれませんが、こちらは自動push対象ではありません。
Fork先でこのワークフローを実行すると失敗します。
以下では、Fork先で自分のDocker Hubリポジトリにpushするようにする方法を記述します。
## 自分のDocker Hubリポジトリにpushするように設定する方法
1. Docker Hubでリポジトリを作成します。
2. ワークフローファイルの [images](https://github.com/misskey-dev/misskey/blob/53f3b779bf16abcda4f6e026c51384f3b8fbcc62/.github/workflows/docker.yml#L20) を作成したリポジトリに置き換えます。
3. GitHubにて [暗号化されたシークレット](https://docs.github.com/ja/actions/reference/encrypted-secrets#creating-encrypted-secrets-for-a-repository) を作成します。\
\
作成が必要なのは `DOCKER_USERNAME``DOCKER_PASSWORD` で、それぞれDocker Hubのユーザーとパスワードになります。
## pushする方法
上記設定によりリリース時に自動的にDocker Hubにpushされるようになります。\
\
具体的には、GitHubのリリース機能でリリースしたタイミングで `latest`, `<リリース名>` それぞれのタグでDocker Hubにpushされます。
また、GitHub上から手動でpushすることも出来ます。\
\
それを行うには、Actions => Publish Docker image => Run workflow からbranchを選択してワークフローを実行します。\
\
ただし、この場合作成されるタグは`<ブランチ名>`になります。

View File

@ -0,0 +1,69 @@
# Misskeyサーバーのスケールアウト
サーバーの利用者が増えるにしたがって、サーバーマシンのスペックを強化したり台数を増やして負荷に対応する必要が生じます。この記事ではMisskeyサーバーのスケールアウトに関するTipsを紹介します。
## PostgreSQLのレプリケーション
PostgreSQLのレプリケーションを行うと、データベースの負荷を複数のサーバーマシンに分散させることができます
レプリケーションについての詳細はPostgreSQLのドキュメントを参照してください。
MisskeyではPostgreSQLのレプリケーションに対応しており、configファイルで以下のように設定します。(一部抜粋)
```yml
# レプリケーションを使用する場合は true にします
dbReplications: true
# リードレプリカのリストをここで設定します(いくつでも設定可能)
dbSlaves:
-
host: foo
port: 5432
db: misskey
user: xxxxx
pass: xxxxx
-
host: bar
port: 5432
db: misskey
user: xxxxx
pass: xxxxx
```
このように設定すると、Misskeyがデータベースに対してreadクエリを発行するとき設定した`dbSlaves`の中からランダムにreadレプリカ選択してクエリを送信するようになり、データベースの負荷が分散されます。
## 役割に応じたRedisの分割
Misskeyは以下のように様々な用途でRedisを使用します。
- ジョブキューの管理
- レートリミットの管理
- キャッシュ
- 通知などの情報の保存
- グローバルなイベントのPub/Sub
Misskeyでは、これらの用途ごとに異なるRedisサーバーを使用するように設定することができ、負荷を複数のサーバーマシンに分散させることができます。
configファイルで以下のように設定します。(一部抜粋)
```yml
redisForPubsub:
host: foo
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
redisForJobQueue:
host: bar
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
```
現在設定可能なのはメインのRedisに加えて上記のように「グローバルなイベントのPub/Sub」と「ジョブキューの管理」用のRedisです。
## リモートのチャートの無効化
個々のリモートユーザーのアクティビティなどのチャートや個々のリモートサーバーのチャートが必要無い場合、それらの生成を無効にするとパフォーマンスが向上します。
コントロールパネルから、「リモートユーザーのチャートを生成」および「リモートサーバーのチャートを生成」をオフにすることで無効にできます。

View File

@ -0,0 +1,267 @@
# マニュアルインストール時のトラブルシューティング
<small>2018年10月07日 / 2021年12月20日 最終更新 / 文責 aqz/tamaina</small>
MisskeyInstallBattle参加者が増えましたが、それに伴い時期を追うごとに重軽傷者が増加しています。\
この記事ではそのような負傷者を減らすため、過去に事故が起きてしまった個所の傾向と対策をわかりやすく解説します。
**まず最初に、[構築の手引き](../guides/manual/)を熟読してください。**
また、拙著の[Ubuntu向けsystemd版解説](https://hide.ac/articles/iFwm5HDvH)、[Oracle Cloud版詳細解説](https://hide.ac/articles/csERs-7SU)も参考までにお読みいただけると幸いです。
# Ubuntu向けシェルスクリプトのお知らせ
Ubuntu向け解説はコピペばかりでつまらない時間がかかるとにかく面倒
……あれ、コピペだけでできるなら、つまり完全自動化できるのでは?
というわけで、**シェルスクリプトでほぼ全部やってくれるやつを作ってみました!**\
[**詳細と使用方法はこちらから!** https://github.com/joinmisskey/bash-install#readme](https://github.com/joinmisskey/bash-install#readme)
ドメインの購入とCloudflareのセットアップ、サーバーの確保についてはご自身でご準備ください。
シェルスクリプトに不具合があれば[製作者(aqz)](https://p1.a9z.dev/@aqz)にお知らせいただければと思います。
# インストールとビルド
[構築の手引き](../guides/manual/)をよく読みましょう。
## ImageMagick関連
_**ImageMagickは不要です**_
## ビルドが失敗する
Misskeyのビルドには、経験則上、最低でも2GBのメモリが必要となっています。\
サーバーをスケールアップする手もありますが、お使いのPCでビルドしてサーバーにデプロイするという手もあります。
## なんだかうまくいかない
- [構築の手引き](../guides/manual/)をよく読みましょう。
- node.jsのバージョンが古いかも
- 新しめのバージョンにしましょう。
- インストールやビルドの際にErrorとかWARNとかが出てくることがありますが、問題ない場合もあります。とりあえず`npm start`して動作確認しちゃいましょう。
- node-gypがインストールされていないかも
- `apt install build-essential`を試す。
- Windowsは[この記事](https://qiita.com/AkihiroTakamura/items/25ba516f8ec624e66ee7)も参考にしてみる。
- これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。
## バージョンアップ後に不具合が発生した
- [構築の手引き](../guides/manual/)およびリリースノートをよく読みましょう。
- Misskeyのバージョンアップ時にはしっかり`pnpm install`や`pnpm run migrate`してください。それでも直らない場合、`pnpm run clean-all && pnpm install`を試し、`pnpm run build && pnpm run migrate && pnpm start`してみてください。
- これでもだめそうだったら、最初から[構築の手引き](../guides/manual/)の手順に従ってやり直してみてください。
***
# 設定
[構築の手引き](../guides/manual/)をよく読みましょう。
`.config/default.yml`で設定を行います。
[`.config/example.yml`](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)をコピーし、コメントに従って記述します。
YAML形式では、`#`から行末まではコメントとして扱われます。)
## URLとポート番号
URLとポート番号のしくみは、少し分かりにくいと思います。
### URL, ポートとTLS証明書の設定Port and TLS settingspart A: example.ymlの解説
リビジョン番号[85a0f69](https://github.com/misskey-dev/misskey/blob/85a0f696bcea779b02749dae596fff94a1df2467/.config/example.yml)時点での[.config/example.yml](https://github.com/misskey-dev/misskey/blob/develop/.config/example.yml)に、「Port and TLS settings」として説明図付きで順に書かれていますので、それに沿って設定をしていきましょう。
本文の解説を日本語訳しながらやっていきます。
#### URLの設定
```yml
# Final accessible URL seen by a user.
# 最終的にユーザーがアクセスするURL
url: https://example.tld/
```
**`url: `には、サーバーにブラウザでアクセスしたときアドレスバーに表示される**(したい)**URLを書きます。**
#### ポートと証明書の設定
```yml
# ┌───────────────────────┐
#───┘ Port and TLS settings └───────────────────────────────────
#### ポートと証明書の設定 ####################################
#
# Misskey supports two deployment options for public.
# Misskeyは2つのサーバー開設方法をサポートしています。
#
# Option 1: With Reverse Proxy
# 方法その1 リバースプロキシを挟む
#
# +----- https://example.tld/ ------------+
# +------+ |+-------------+ +----------------+|
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
# +------+ |+-------------+ +----------------+|
# +---------------------------------------+
#
# You need to setup reverse proxy. (eg. Nginx)
# この方法では、リバースプロキシ(例: Nginxをセットアップする必要があります。
# You do not define 'https' section.
# 'https'セクション(後述)は設定せず、コメントアウトしたままにします。
# Option 2: Standalone
# 方法その2 スタンドアロン
# (リバースプロキシを挟まず、nodeのプロセスで直接ユーザーからのアクセスを受ける)
#
# +- https://example.tld/ -+
# +------+ | +---------------+ |
# | User | ---> | | Misskey (443) | |
# +------+ | +---------------+ |
# +------------------------+
#
# You need to run Misskey as root.
# この方法では、Misskeyをルート(の権限をもたせた状態)で実行する必要があります。
# You need to set Certificate in 'https' section.
# 'https'セクション(後述)で証明書の設定を行う必要があります。
```
##### 方法1 リバースプロキシを挟むとき
```yml
# To use option 1, uncomment below line.
# オプション1で設定する場合、以下の行をコメントアウトします → しました
port: 3000 # A port that your Misskey server should listen.
```
以上の3行は、リバースプロキシを挟むときの話です。
この例では、Misskeyはポート3000で通信します。
リバースプロキシでは、ローカル側の宛先にこのポート番号を指定します。
##### 方法2 リバースプロキシを挟まないとき
```yml
# To use option 2, uncomment below lines.
# オプション2で設定する場合は、以下の6行をコメントアウトします → しました
port: 443
https:
# path for certification
key: /etc/letsencrypt/live/example.tld/privkey.pem
cert: /etc/letsencrypt/live/example.tld/fullchain.pem
```
以上の8行は、リバースプロキシを挟まないときの話です。
ポート443(https)で直接ユーザーと通信しますポート443を利用するのでMisskeyのプロセスにはルート権限が必要です
TLS証明書を別途取得し、取得した証明書のディレクトリを`https:`で設定します。
ここ書かれているのは、Let's Encryptで`example.tld`に対する証明書を発行したときの例です。
***
### URL, ポートとTLS証明書の設定Port and TLS settingspart B: 全体像
example.ymlの解説文を省くと、default.ymlにおけるポートとTLS証明書の設定は以下のようになります。
#### 方法1 リバースプロキシを挟むとき
```yml
url: https://example.tld/
port: 3000
# https:
# # path for certification
# key: /etc/letsencrypt/live/example.tld/privkey.pem
# cert: /etc/letsencrypt/live/example.tld/fullchain.pem
```
#### 方法2 リバースプロキシを挟まず直接通信するとき
```yml
url: https://example.tld/
# port: 3000
https:
# path for certification
key: /etc/letsencrypt/live/example.tld/privkey.pem
cert: /etc/letsencrypt/live/example.tld/fullchain.pem
```
***
# `npm start`やアクセス時によく遭遇するエラー
`npm start`でサーバーを立てられたものの、その後不具合に遭遇してしまう場合もあります。
まず、[構築の手引き](../guides/manual/)をよく読みましょう。
## YAMLのエラーが出る
`default.yml`の構文にミスがある可能性があります。
行頭に余分なスペースはありませんか?
## redisに接続できない
redis-serverは起動していますか
何らかの接続数の上限に達していませんか?
11.20.2より前のバージョンのMisskeyはredisのパスワードを解くことができません。以下の2点を確認してください。
- redisにパスワードを設定しない。
- `default.yml`の`redis:`の`pass:`の行をコメントアウトする。
## 上部に「開発ビルドです」と書かれた赤いバーが表示される
サーバーを公開する場合は必ずproductionビルドを使いましょう。
製品ビルドにするには、環境変数が`NODE_ENV=production`になるように設定し`npm run build && npm start`します。
## 新規登録できない
APIに接続できないようです。
`default.yml`の冒頭の`url:`が正しく設定されているか確認しましょう。
Node.jsのバージョンや、インストールの設定ももう一度よく確認しましょう。
また、正しく`default.yml`が書かれていますか?
## タイムラインの表示に問題が発生する、リアルタイムでTLが更新されない
タイムラインの読み込みに失敗する場合、mongoDBやPostgreSQLのバージョンが古い可能性があります。
PostgreSQLはなるべくv13にしてください。
redisの接続も確認した方がよいでしょう。 [→ redisに接続できない を参照](#redisに接続できない)
## 永遠に「再接続中」と右下に表示される、リアルタイムでTLが更新されない
プロキシを利用している場合、それがWebSocket通信を阻害している可能性が考えられます。
## オブジェクトストレージ使用時、不具合が出る
オブジェクトストレージの権限の設定が厳しくなっている可能性があります。「ファイル(オブジェクト)が誰でも取得可能」なように権限を設定してみてください。
また、`default.yml`をもう一度確認してみてください。
### S3 example (with CDN, custom domain)
S3 example (with CDN, custom domain)は、AWSのデフォルトのドメインではなく独自ドメインでストレージを公開したい場合の設定です。
endpointと公開ドメインが同じサービスの場合はS3 exampleのように`baseUrl`は明記しなくてよく、さらにregionの概念がないサービスの場合はregionの行は必要ありません。
### S3互換サービスでの設定
Misskeyではオブジェクトストレージの接続に[aws-sdk](https://www.npmjs.com/package/aws-sdk)を利用しています。
Amazon S3に互換性のあるオブジェクトストレージであれば利用できる可能性があります。
各サービス/ソフトウェアのドキュメントをよく読み、設定してみてください。
### ローディングが終わらない
Cloudflare を使用している場合は、Rocket LoaderやAuto Minifyが有効になっていないか確認してください。有効になっている場合は無効にすることで解決する場合があります。
***
# まったく解決しなかった場合
以下の順序を試してみてください。
1. Misskeyのドキュメントをよく読む。
2. Googleで検索してみる。
3. [MisskeyリポジトリのIssues](https://github.com/misskey-dev/misskey/issues)を検索してみる同じエラーに遭遇している場合や、Misskeyのバグの可能性もあります
4. [Misskey Forum](https://forum.misskey.io/)を検索してみる。
5. 検索してどうしても見つからなかったら、専門家に質問してみてください。
1. Forumや[MisskeyのDiscordサーバー](https://discord.gg/P4yYqYBjEp)もしくは[「鯖缶工場」](https://discord.gg/mJJGAHv)で聞いてみる
2. 開発者([aqz](https://p1.a9z.dev/@aqz)やしゅいろ)にリプライやダイレクト投稿を送信して聞いてみる

View File

@ -0,0 +1,16 @@
# LTL/STL/GTLの無効化
Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、サーバーコントロールパネルで設定します。
LTLやSTLは、そのサーバー全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。
しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。
サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。
もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。
:::warning
無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
:::
なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。

View File

@ -0,0 +1,70 @@
# AiScript
AiScriptは、Misskeyの以下の箇所で使用できるスクリプト言語です。
- [プラグイン](./plugin/)
- [ウィジェット](/docs/for-users/features/widgets/)
- ボタン
- AiScriptコンソール
- AiScript App
- Misskey Play
- スクラッチパッド
:::tip
AiScriptの実装はMisskeyとは別リポジトリで、[オープンソースで公開されています](https://github.com/aiscript-dev/aiscript)。
:::
## 使い方
AiScript標準の構文や組み込み関数などが使用できます。
:::tip
ドキュメントは[こちら](https://github.com/aiscript-dev/aiscript/tree/master/docs)\
Misskey本体のバージョンにより、使用できるAiScriptのバージョンが異なる場合があります。バージョンの確認には`<: Core:v`をScratchpadなどで実行してください
:::
これらに加え、Misskey専用の組み込み定数・関数がグループに分けて提供されています。
### Misskey AiScript API
接頭辞: `Mk:`\
Misskey内の全てのAiScript環境で使用できる定関数群です。
詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Mk:`とついた部分を参照して下さい。
### プラグインAPI
接頭辞: `Plugin:`\
[プラグイン](./plugin/)でのみ使用できる定関数群です。
詳しくは[プラグインAPIリファレンス](./plugin/plugin-api-reference/)の`Plugin:`とついた部分を参照して下さい。
### UI API
接頭辞: `Ui:`\
[ウィジェット](/docs/for-users/features/widgets/)AiScript App、Misskey Play、Scratchpadで使用できます。
ドキュメントは未整備TODOですが、インターネット上に有志の方が執筆された解説記事があります。
### 標準入出力
AiScript標準で定義されている`readline`関数と`print`関数(および`<:`構文の内部実装はMisskey側で独自に提供されています
#### readline(message)
`message`: `str`\
返り値: `str`\
Misskey内の全てのAiScript環境で使用できます。\
\
文字列の入力を求めるポップアップを表示します。
#### print(message)
`message`: `any`\
返り値: `null`\
[ウィジェット](/docs/for-users/features/widgets/)AiScriptコンソール、Scratchpadで使用できます。\
\
コンソールに文字列を出力します。\
\
`<:`構文も同様の働きをします。

View File

@ -0,0 +1,16 @@
---
description: MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。
---
# Misskey API
MisskeyはAPIを公開しています。APIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発することができます。
ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。
:::tip
Misskey公式SDKやサードパーティライブラリを使うことによって、このドキュメントで説明するいくつかの手順を簡略化できるなど、より便利にAPIを利用することができます。\\
:::
<MkIndex />

View File

@ -0,0 +1,9 @@
# エンドポイント一覧
:::tip
現在、エンドポイント一覧は準備中です。提供が開始されるまでの間は、各Misskeyサーバーで [`/api-doc` ページ](x-mi-web://api-doc)にアクセスするか、[Misskeyのソースコード](https://github.com/misskey-dev/misskey/tree/develop/packages/backend/src/server/api/endpoints)を参照してください。
また、少し情報が古いですが[従来のMisskey Hub](https://legacy.misskey-hub.net/docs/api/endpoints.html)もご利用いただけます。
:::

View File

@ -0,0 +1,36 @@
---
description: Misskey APIに関連するライブラリの一覧
---
# ライブラリの一覧
## JavaScript
- [misskey.js](https://github.com/misskey-dev/misskey.js)
## Java
- [misskey4j](https://github.com/uakihir0/misskey4j)
## Python
- [Misskey.py](https://github.com/YuzuRyo61/Misskey.py)
- [MiPA](https://github.com/yupix/MiPA)
- [MiPAC](https://github.com/yupix/MiPAC)
## .Net
- [Misq](https://github.com/syuilo/Misq)
## Dart / Flutter
- [misskey](https://github.com/misskey-dart/misskey)
- [misskey_dart](https://github.com/shiosyakeyakini-info/misskey_dart)
## Go
- [go-misskey](https://github.com/yitsushi/go-misskey)
## Rust
- [misskey-rs](https://github.com/coord-e/misskey-rs)

View File

@ -0,0 +1,13 @@
---
description: アプリケーションが要求する権限の一覧
---
# 権限の一覧
:::tip
このページは[misskey-js](https://github.com/misskey-dev/misskey/tree/develop/packages/misskey-js)から自動生成しているため、ドキュメントや翻訳が不完全な場合があります。
:::
<ApiPermissions></ApiPermissions>

View File

@ -0,0 +1,221 @@
---
description: ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。
---
# ストリーミングAPI
:::tip
最初に[Misskey API](../index.md)のドキュメントを読むことをお勧めします。
:::
ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、リアクションされた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。
## ストリームに接続する
ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**で接続する必要があります。
以下の形式のURLにwebsocket接続します:
```
wss://{host}/streaming?i={token}
```
ここで、
- `{host}`の部分は、接続したいサーバーのホストに置き換えます。
- `{token}`の部分は、ユーザーのアクセストークンに置き換えます。
:::tip
アクセストークンは省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。
:::
ストリームに接続すると、後述投稿の購読を行ったりすることができますが、まだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。
そのようなイベントを受信するには、ストリーム上で後述する**チャンネル**に接続する必要があります。
**ストリーム上のやり取りはすべてJSONで行われます。**
## チャンネル
MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。
ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。
:::tip
ひとつのストリーム接続上で、同時に複数のチャンネルに接続することができます。
:::
以下では、チャンネルの使用方法を説明します。どのようなチャンネルがあるかは、[チャンネル一覧](./channel/index.md)を参照してください。
### チャンネルに接続する
チャンネルに接続するには、次のようなデータをJSONでストリームに送信します:
```js
{
type: 'connect',
body: {
channel: 'xxxxxxxx',
id: 'foobar',
params: {
...
}
}
}
```
ここで、
- `channel`には接続したいチャンネル名を設定します。[チャンネル一覧](./channel/index.md)を参照してください。
- `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。
- `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。
:::tip
IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
:::
### チャンネルからのメッセージを受け取る
例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。
チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます:
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
ここで、
- `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。
- `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。
- `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。
### チャンネルに向けてメッセージを送信する
チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。
チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します:
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
ここで、
- `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。
- `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。
- `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。
### チャンネルから切断する
チャンネルから切断するには、次のようなデータをJSONでストリームに送信します:
```js
{
type: 'disconnect',
body: {
id: 'foobar'
}
}
```
ここで、
- `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。
## 投稿のキャプチャ
Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。
例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。
しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。
この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。
以下では、投稿のキャプチャ機能の使用方法を説明します。どのようなキャプチャイベントがあるかは、[キャプチャイベント一覧](./note-capture-events.md)を参照してください。
### 投稿をキャプチャする
投稿をキャプチャするには、ストリームに次のようなメッセージを送信します:
```js
{
type: 'subNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
ここで、
- `id`にキャプチャしたい投稿の`id`を設定します。
このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。
例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます:
```js
{
type: 'noteUpdated',
body: {
id: 'xxxxxxxxxxxxxxxx',
type: 'reacted',
body: {
reaction: 'like',
userId: 'yyyyyyyyyyyyyyyy'
}
}
}
```
ここで、
- `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。
- `body`内の`type`に、イベントの種類が設定されます。
- `body`内の`body`に、イベントの詳細が設定されます。
### 投稿のキャプチャを解除する
その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。
次のメッセージを送信します:
```js
{
type: 'unsubNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
ここで、
- `id`にキャプチャを解除したい投稿の`id`を設定します。
このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。

View File

@ -0,0 +1,3 @@
# チャンネル一覧
<MkIndex />

View File

@ -0,0 +1,25 @@
---
description: グローバルタイムラインのノートが流れるチャンネルです。
---
# `globalTimeline`
グローバルタイムラインのノートが流れるチャンネルです。
## パラメータ
なし
## イベント
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
グローバルタイムラインに新しいノートが追加されたときに発生します。
## 操作
なし

View File

@ -0,0 +1,25 @@
---
description: ホームタイムラインのノートが流れるチャンネルです。
---
# `homeTimeline`
ホームタイムラインのノートが流れるチャンネルです。
## パラメータ
なし
## イベント
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
ホームタイムラインに新しいノートが追加されたときに発生します。
## 操作
なし

View File

@ -0,0 +1,25 @@
---
description: ソーシャルタイムラインのノートが流れるチャンネルです。
---
# `hybridTimeline`
ソーシャルタイムラインのノートが流れるチャンネルです。
## パラメータ
なし
## イベント
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
ソーシャルタイムラインに新しいノートが追加されたときに発生します。
## 操作
なし

View File

@ -0,0 +1,3 @@
# チャンネル一覧
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,25 @@
---
description: ローカルタイムラインのノートが流れるチャンネルです。
---
# `localTimeline`
ローカルタイムラインのノートが流れるチャンネルです。
## パラメータ
なし
## イベント
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
ローカルタイムラインに新しいノートが追加されたときに発生します。
## 操作
なし

View File

@ -0,0 +1,113 @@
---
description: 基本的な情報が流れるチャンネルです。
---
# `main`
这是一个提供基本信息的频道。
## 参数
## 事件
### `notification`
<MkSchemaViewer :schema="{
$ref: 'misskey://Notification'
}"/>
收到通知时触发。
### `mention`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
当有人提到你时触发。
### `reply`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
收到回复时触发。
### `renote`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Renoteされたときに発生します。
### `follow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
自分が他のユーザーをフォローしたときに発生します。
### `followed`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
他のユーザーが自分をフォローしたときに発生します。
### `unfollow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
自分が他のユーザーをフォロー解除したときに発生します。
### `messagingMessage`
<MkSchemaViewer :schema="{
$ref: 'misskey://MessagingMessage'
}"/>
メッセージを受け取ったときに発生します。
### `readAllNotifications`
全ての通知が既読になったときに発生します。
### `unreadNotification`
新しい通知があるときに発生します。
### `unreadMention`
新しいメンションがあるときに発生します。
### `readAllUnreadMentions`
全てのメンションが既読になったときに発生します。
### `unreadSpecifiedNote`
新しいダイレクト投稿があるときに発生します。
### `readAllUnreadSpecifiedNotes`
全てのダイレクト投稿が既読になったときに発生します。
### `unreadMessagingMessage`
新しいメッセージがあるときに発生します。
### `readAllMessagingMessages`
全てのメッセージが既読になったときに発生します。
## 操作
なし

View File

@ -0,0 +1,51 @@
# 投稿キャプチャイベント
## `reacted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
reaction: {
type: 'string',
description: 'リアクションの種類',
},
userId: {
type: 'string',
description: 'リアクションを行ったユーザーのID',
},
}
}"/>
対象のノートにリアクションがされた場合に発生します。
## `pollVoted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
choice: {
type: 'number',
description: '選択肢ID',
},
userId: {
type: 'string',
description: '投票を行ったユーザーのID',
},
}
}"/>
対象のノートに添付されたアンケートに投票がされた場合に発生します。
## `deleted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
deletedAt: {
type: 'string',
description: '削除日時',
},
}
}"/>
対象のノートが削除された場合に発生します。

View File

@ -0,0 +1,88 @@
# アクセストークンの取得
APIを使い始めるには、APIを利用するアカウントに紐づいた**アクセストークン**を取得する必要があります。
このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。
基本的に、APIはリクエストにはアクセストークンが必要となります。
アクセストークンは、ユーザーに紐づいた認証情報で、APIを利用するユーザーを識別するとともに、アクセストークンごとにどういった操作の権限を持っているかが管理されます。
:::tip
ユーザーとそのユーザーに紐づいたアクセストークンは一対多の関係であり、あるユーザーに対して複数のアクセストークンが発行され得ます。
:::
あなた自分自身のアクセストークンは簡単に取得できるほか、あなたのアプリケーションを使用することになる不特定のユーザーのアクセストークンを取得することもできます。
- 前者の場合: **「自分自身のアクセストークンを手動発行する」** に進む
- 後者の場合: **「アプリケーション利用者にアクセストークンの発行をリクエストする」** に進む
## 自分自身のアクセストークンを手動発行する
Misskey Webの「設定 > API」で、自分のアクセストークンを発行できます。
:::danger
アクセストークンは他人に知られないようにしてください。
:::
## アプリケーション利用者にアクセストークンの発行をリクエストする
アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の方法の一つを使います。
:MkIndex
## APIの利用
アクセストークンが取得できたら、各種エンドポイントにリクエストすることでAPIの利用が行えます。
:::tip
- HTTP APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式ですdrive/files/createを除く
- 要求ヘッダーに`Content-Type: application/json`を指定します。
- アクセストークンは、`i`というパラメータ名でリクエストボディJSONに含めます。
- ベースURLは`https://{サーバーのドメイン}/api`です。
:::
### Authorization headerを使う方式
以下のようにヘッダーの`Authorization`フィールドを指定します。
```js
fetch("https://misskey.io/api/notes/create", {
method: 'POST',
body: JSON.stringify({
text: "Hello Misskey API World with My Application!"
}),
headers: {
Authorization: `Bearer ${accessToken}`,
'Content-Type': 'application/json',
},
credentials: 'omit',
});
```
### iを使う方式
アクセストークン付きのボディの例metaの場合:
```json
{
"i": "HogEFugA1341",
"detail": false
}
```
<!--TODO:「APIリファレンス」をリンクに差し替え-->
APIの詳細は、APIリファレンスを参照してください。
:::warning
MisskeyはRESTを採用していません。
:::
また、MisskeyはHTTP APIだけでなく、ストリーミングAPIも提供しています。ストリーミングAPIの詳細は[こちらのドキュメント](../streaming/)を参照してください。

View File

@ -0,0 +1,76 @@
---
description: v12.27.0以降で使用できる、Misskey独自の簡素な認証方法について説明しています。
---
# MiAuth方式でのアクセストークン取得方式
アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。
:::tip
以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。
- [よりおおく使われているOAuth方式でのアクセストークン取得方法もあります。](./oauth.md)
- [アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app.md)
:::
## Step 1
UUIDを生成する。以後これを**セッションID**と呼びます。
:::danger
このセッションIDは毎回生成し、使いまわさないようにしてください。
:::
## Step 2
アプリケーション認証フォームをユーザーのブラウザで表示させる。認証フォームは、以下の形式のURLで開くことができます:
```
https://{host}/miauth/{session}
```
ここで、
- `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。
- `{session}`の部分は、セッションIDに置き換えます。
また、URLにクエリパラメータとしていくつかのオプションを設定できます:
| 名前 | 説明 |
| ------------ | ------------------------------------------------------------------------------ |
| `name` | アプリケーション名。 |
| `icon` | アプリケーションのアイコン画像URL。 |
| `callback` | 認証が終わった後にリダイレクトするURL。<br>リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます。 |
| `permission` | アプリケーションが要求する権限。<br>要求する権限を`,`で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。 |
:::tip{label='例'}
```
https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permission=write:notes,write:following,read:drive
```
:::
## Step 3
ユーザーがアプリケーションアクセスを許可した後、次の形式のURLにPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。
```
https://{host}/api/miauth/{session}/check
```
ここで、
- `{host}`の部分は、ユーザーのサーバーのホストに置き換えます。
- `{session}`の部分は、セッションIDに置き換えます。
レスポンスに含まれるプロパティは以下の通りです:
| 名前 | 説明 |
| ------- | -------------- |
| `token` | ユーザーのアクセストークン。 |
| `user` | ユーザーの情報。 |

View File

@ -0,0 +1,179 @@
---
description: v2023.9.0以降で使用できる、OAuth2.0方式での認証方法について説明しています。
---
# OAuth方式でのアクセストークン取得方式
アプリケーションを利用するユーザー(以下単に「ユーザー」と呼びます)のアクセストークンを取得するには、以下の手順で発行をリクエストします。
:::tip
以下に説明する方法は、[OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749.html)と呼ばれるものです。普通のOAuthはアプリを作成しますが、[IndieAuth](https://indieauth.spec.indieweb.org/)の拡張でアプリ作成なしで使えるようになっています。
OAuth方式は使えるライブラリが多いので、出来ればライブラリを使うのをおすすめします。
現在、この方式を使うためにはウェブページが必要になります。どうしてもウェブページを用意できない場合、もしくはMisskey 2023.9.0以前のバージョンをサポートしたい場合、以下の方式を使ってください。
- [Misskey専用のMiAuth方式でのアクセストークン取得方法](./miauth.md)
- [アプリ作成方式でのアクセストークン取得方法(旧来型)。](./app.md)
:::
## Step 1
アプリ紹介のためのウェブページを作ります。ページがHTTPSアドレスでアクセスできるようにしてください。ページのとこかに以下のようなHTMLコードを書きます。
```html
<!-- 必須項目hrefのアドレスが認証コードの転送先になります。 -->
<link rel='redirect_uri' href='/redirect'>
<!-- ユーザーに見せるアプリの名前になります。なかったらこのページのアドレスが名前になります。 -->
<div class='h-app'>
<a href="/" class="u-url p-name">My Misskey App</a>
</div>
```
あとで`redirect_uri`のアドレスに認証コードが転送されます。
## Step 2
PKCE `code_verifier`と`code_challenge`文字列, 及び`state`文字列を生成します。
- `code_verifier`の場合は最低43字、最高128字でアルファベット大・小文字及び`-._~`の中の文字に限られます。
- `code_challenge`文字列は`code_verifier`文字列をSHA256アルゴリズムでハッシュしてbase64urlでエンコードした結果を使います。
- `state`文字列には特別な制限はありません。ランダムな文字列を使います。
:::danger
この文字列は毎回生成し、使いまわさないようにしてください。
:::
:::tip
[pkce-challenge](https://www.npmjs.com/package/pkce-challenge)とかのライブラリを使ったり、OAuthライブラリのPKCE機能を使うのがおすすめです。
:::
:::tip{label='例'}
```js
import crypto from "node:crypto";
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~";
const codeVerifier = new Array(128)
.fill(0)
.map(() => chars[Math.floor(chars.length * Math.random())])
.join("");
console.log('code_verifier', codeVerifier);
const codeChallenge = crypto
.createHash("sha256")
.update(codeVerifier, "ascii")
.digest("base64url");
console.log('code_challenge', codeChallenge);
const state = crypto.randomUUID();
console.log('state', state);
```
:::
## Step 3
相手サーバーのOAuth情報を取得します。データはJSON形式になっています。
```
https://{host}/.well-known/oauth-authorization-server
```
`{host}`の部分は、ユーザーのサーバーのホストに置き換えます。通常ホストはユーザーが入力します。
ここでは`authorization_endpoint`と`token_endpoint`を使います。
:::tip
次のステップで使われる`scope`の情報も`scopes_supported`で確認できます。
:::
## Step 4
アプリケーション認証フォームをユーザーのブラウザで表示させます。認証フォームは、以下の形式のURLで開くことができます:
```
{authorization_endpoint}?client_id={client_id}&response_type=code&redirect_uri={redirect_uri}&scope={scope}&code_challenge={code_challenge}&code_challenge_method=S256&state={state}
```
ここで、
- `{authorization_endpoint}`の部分は、前の情報取得で得たアドレスに置き換えます。
- `{client_id}`の部分は、アプリの紹介ページのアドレスに置き換えます。
- `{code_challenge}`の部分は、前に生成した`code_challenge`文字列に置き換えます
- `code_challenge_method`の部分は常に`S256`にします。
- `{redirect_uri}`の部分は、紹介ページで使っている配達先のアドレスに置き換えます。
- `{scope}`の部分は、アプリケーションが要求する権限に置き換えます。要求する権限を` `で区切って列挙します。権限の一覧は[こちら](../permission.md)で確認できます。
- `{state}`の部分は、前に生成した`state`文字列に置き換えます。
:::tip{label='例'}
```
https://misskey.local/oauth/authorize?client_id=http%3A%2F%2Fexample.com&code_challenge=C6hwMO2bmIzg3nqppTE9b79fvuOjlrKmH2xNiZSMHzw&code_challenge_method=S256&response_type=code&redirect_uri=http%3A%2F%2Fexample.com%2Fredirect&scope=write%3Anotes&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab
```
:::
## Step 5
ユーザーがアプリケーションアクセスを許可したら、`redirect_uri`のアドレスに認証コードがURLパラメータの形式で転送されます。
| 名前 | 説明 |
| ------- | ----------------------- |
| `code` | ユーザーの認証コード。 |
| `state` | 認証リクエストに使われた`state`文字列。 |
:::tip{label='例'}
```
https://example.com/redirect?code=...&state=87c11f05-86eb-4eb2-9057-f6a98fc5e9ab
```
:::
`state`文字列がちゃんと一致しているのか確認して、次のステップに進みます。
## Step 6
転送された認証コードを使ってアクセストークンをPOSTでリクエストします。リクエスト先は`token_endpoint`になります。データ形式は`application/json`と`application/x-www-form-urlencoded`を使えます。各パラメータは以下のようになります。
| 名前 | 説明 |
| --------------- | ------------------------------ |
| `grant_type` | 常に`authorization_code`にします。 |
| `client_id` | 認証リクエストに使われた`client_id`文字列。 |
| `redirect_uri` | 認証リクエストに使われた`redirect_uri`文字列。 |
| `scope` | 認証リクエストに使われた`scope`文字列。 |
| `code` | 取得した認証コード。  |
| `code_verifier` | 前に生成した`code_verifier`文字列。 |
:::tip{label='例'}
```js
const res = await fetch(endpoint, {
method: "POST",
body: JSON.stringify({
grant_type: "authorization_code",
client_id: "https://example.com",
redirect_uri: "https://example.com/redirect",
scope: "write:notes",
code: "...",
code_verifier: "hjjbCYDmDpSLjirkO-PrfWKsRhDdJr-PAEGRClRwzUKlmFIIIrZNmSvUIraeIa~WqbqQnfbJV-Hc_IfuQkesBYUpukUi~lInDfU_AZjoZqbU.ioQTRzaFfZFfGnT-OAA",
}),
headers: {
"Content-Type": "application/json"
}
});
```
:::
レスポンスはJSONオブジェクト形式で、そこから`access_token`を取得して使います。

View File

@ -0,0 +1,78 @@
---
description: MiAuth導入以前v12.27.0未満)でのアクセストークン取得方法について説明しています。
---
# アプリ作成方式でのアクセストークン取得方法(旧来型)
[MiAuth](./miauth.md)導入12.27.0)や[OAuth](./oauth.md)導入2023.9.0)より前の、旧来のアクセストークン取得方法について説明します。\
12.27.0未満のバージョンのサーバーではこの旧来の方式を使用する必要があります。
## 1. アプリケーションの作成
[`app/create`エンドポイント](endpoints/app/create.html)に情報を送信し、`appSecret`を取得します。
```json
{
// アプリの名前
"name": "test",
// アプリの説明
"description": "my test application",
// アプリのパーミッション
"permission": ["write:notes"]
}
```
この時、`callbackUrl`でお好きなURLを含めると、次のアクセス許可操作が終了したときに`token`をクエリ文字列に含めながらそこにコールバックするようになります。
## 2. ユーザーに認証させる
[`auth/session/generate`エンドポイント](endpoints/auth/session/generate)に`appSecret`をPOSTします。
```json
{
"appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf"
}
```
`token`(ここでは仮に`798b9f6e-248d-43a7-a919-fabc664027f1`)と`url`を返してくるので、まずはこのurlにウェブブラウザでアクセスし「アクセスを許可」を選択。
## 3. accessTokenを問い合わせる
2が終わったことが確認できたら、[`auth/session/userkey`エンドポイント](endpoints/auth/session/userkey)に`appSecret`と先ほどの`token`をPOSTします。
```json
{
"appSecret": "fAb12cD34Ef56gH78Ij16kL32Mn64oPf",
"token": "798b9f6e-248d-43a7-a919-fabc664027f1"
}
```
ここで取得できる文字列は`accessToken`と呼ばれます。`accessToken`は一度限りしか取得できません。
## 4. iを生成
`i`は、Node.jsであれば以下のようなコードで生成でき、設定画面で取得するものとは違って64桁の16進数となります。
```javascript
const crypto = require("crypto")
const i = crypto.createHash("sha256")
.update(accessToken + appSecret, "utf8")
.digest("hex")
console.log(i)
```
## 5. 実際にテストする
```javascript
fetch("https://misskey.io/api/notes/create", {
method: 'POST',
body: JSON.stringify({
i: "/* ここにiを入力 */",
text: "Hello Misskey API World with My Application!"
}),
headers: {
'Content-Type': 'application/json',
},
credentials: 'omit',
});
```

View File

@ -0,0 +1,14 @@
# Botの作成
[Misskey API](/docs/for-developers/api/)を利用してBotの開発が可能です。
また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。
- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装
Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。
## 関連リソース
- [Misskey API](/docs/for-developers/api/)
<MkIndex />

View File

@ -0,0 +1,77 @@
# プラグインの作成
Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。
このドキュメントではプラグインの作成方法について説明します。
## AiScript
プラグインはAiScriptを使って記述されるスクリプトです。
## メタデータ
プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。
```AiScript
/// @ 0.12.4
### {
name: "プラグイン名"
version: "4.2.1"
author: "作者名"
description: "説明文"
}
```
メタデータは次のプロパティを含むオブジェクトです。
### name
プラグイン名
### author
プラグイン作者
### version
プラグインバージョン。数値を指定してください。
### description
プラグインの説明
### permissions
プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。
### config
プラグインの設定情報を表すオブジェクト。
キーに設定名、値に以下のプロパティを含めます。
#### type
設定値の種類を表す文字列。以下から選択します。
string number boolean
#### label
ユーザーに表示する設定名
#### description
設定の説明
#### default
設定のデフォルト値
## API
Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。
どのようなAPIがあるかは[プラグインAPIリファレンス](./plugin-api-reference/)を参照してください。
## プラグインを配布する
v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。
プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくは[こちら](../publish-on-your-website.md)をご覧ください。

View File

@ -0,0 +1,61 @@
# プラグインAPIリファレンス
## `Mk:dialog(title text type)`
ダイアログを表示します。typeには以下の値が設定できます。\
`info` `success` `warn` `error` `question`\
省略すると `info` になります。
## `Mk:confirm(title text type)`
確認ダイアログを表示します。typeには以下の値が設定できます。\
`info` `success` `warn` `error` `question`\
省略すると `question` になります。\
ユーザーが"OK"を選択した場合は `true` を、"キャンセル"を選択した場合は `false` が返ります。
## `Mk:api(endpoint params)`
Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。
## `Mk:save(key value)`
任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。
## `Mk:load(key)`
Mk:saveで永続化した指定の名前の値を読み取ります。
## `Plugin:register_post_form_action(title fn)`
投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。\
コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。
## `Plugin:register_note_action(title fn)`
ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\
コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。
## `Plugin:register_user_action(title fn)`
ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。\
コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。
## `Plugin:register_note_view_interruptor(fn)`
UIに表示されるート情報を書き換えます。\
コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\
コールバック関数の返り値でノートが書き換えられます。
## `Plugin:register_note_post_interruptor(fn)`
ノート投稿時にノート情報を書き換えます。\
コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。\
コールバック関数の返り値でノートが書き換えられます。
## `Plugin:open_url(url)`
第一引数に渡されたURLをブラウザの新しいタブで開きます。
## `Plugin:config`
プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。

View File

@ -0,0 +1,43 @@
# プラグイン・テーマを配布する
Misskey v2023.11.0以降では、様々な追加リソースをあなたのウェブサイトから直接インストールできるようになりました。特に、プラグインやテーマなどをたくさん制作している方や、プラグイン配布サイトを作りたい方にとっては便利な機能です。
## 外部からのインストールに対応しているリソース
- [プラグイン](./plugin/create-plugin/) ... `plugin`
- [テーマ](../for-users/features/theme/) ... `theme`
## しくみ
インストール時に、Misskey Webで受け取るリソースに予期せぬ改ざんが起こらないようにするため、配布サイト側とMisskey双方でハッシュ値を計算し、Misskeyで照合を行います。
ハッシュ値が照合できない場合はリソースをインストールすることができないようになっています。
## 実装方法
### 配布ページ側
「インストール」ボタンに、以下のようなURLを持つリンクを作成する
```
https://{HOST}/install-extentions?url={API_URL}&hash={HASH}
```
- `{HOST}`: ユーザーのサーバーのホストに置き換えます。ホストはユーザーが入力できるようにすることが一般的です。
- `{API_URL}`: リソース配布用API後述のURLに置き換えます。相対パスは不可
- `{HASH}`: 配布するリソースのSHA-512ハッシュに置き換えます。**リソース内での改行コードはLFに統一してください。**
### リソース配布用API側
上記 `{API_URL}` で指定したエンドポイントから、以下のようなJSONオブジェクトを返してください。
```json
{
"type": "theme",
"data": "{\n\tid: '4dca6e53-9c1b-41bb-a1ac-c62c3b710536',\n\tbase: 'light',\n\tname: 'Misskey Design',\n\tprops: {\n\t\tX2: ':darken<2<@panel',\n\t\tX3: 'rgba(0, 0, 0, 0.05)',\n\t\tX4: 'rgba(0, 0, 0, 0.1)',\n\t\tX5: 'rgba(0, 0, 0, 0.05)',\n\t\tX6: 'rgba(0, 0, 0, 0.25)',\n\t\tX7: 'rgba(0, 0, 0, 0.05)',\n\t\tX8: ':lighten<5<@accent',\n\t\tX9: ':darken<5<@accent',\n\t\tbg: '#f9f9f9',\n\t\tfg: '#5f5f5f',\n\t\tX10: ':alpha<0.4<@accent',\n\t\tX11: 'rgba(0, 0, 0, 0.1)',\n\t\tX12: 'rgba(0, 0, 0, 0.1)',\n\t\tX13: 'rgba(0, 0, 0, 0.15)',\n\t\tX14: ':alpha<0.5<@navBg',\n\t\tX15: ':alpha<0<@panel',\n\t\tX16: ':alpha<0.7<@panel',\n\t\tX17: ':alpha<0.8<@bg',\n\t\tcwBg: '#b1b9c1',\n\t\tcwFg: '#fff',\n\t\tlink: '#44a4c1',\n\t\twarn: '#ecb637',\n\t\tbadge: '#31b1ce',\n\t\terror: '#ec4137',\n\t\tfocus: ':alpha<0.3<@accent',\n\t\tnavBg: '@panel',\n\t\tnavFg: '@fg',\n\t\tpanel: ':lighten<3<@bg',\n\t\tpopup: ':lighten<3<@panel',\n\t\taccent: '#FF6B63',\n\t\theader: ':alpha<0.7<@panel',\n\t\tinfoBg: '#e5f5ff',\n\t\tinfoFg: '#72818a',\n\t\trenote: '#229e82',\n\t\tshadow: 'rgba(0, 0, 0, 0.1)',\n\t\tdivider: 'rgba(0, 0, 0, 0.1)',\n\t\thashtag: '#ff9156',\n\t\tmention: '@accent',\n\t\tmodalBg: 'rgba(0, 0, 0, 0.3)',\n\t\tsuccess: '#86b300',\n\t\tbuttonBg: 'rgba(0, 0, 0, 0.05)',\n\t\tswitchBg: 'rgba(0, 0, 0, 0.15)',\n\t\tacrylicBg: ':alpha<0.5<@bg',\n\t\tcwHoverBg: '#bbc4ce',\n\t\tindicator: '@accent',\n\t\tmentionMe: '@mention',\n\t\tmessageBg: '@bg',\n\t\tnavActive: '@accent',\n\t\taccentedBg: ':alpha<0.15<@accent',\n\t\tcodeNumber: '#0fbbbb',\n\t\tcodeString: '#b98710',\n\t\tfgOnAccent: '#fff',\n\t\tinfoWarnBg: '#fff0db',\n\t\tinfoWarnFg: '#8f6e31',\n\t\tnavHoverFg: ':darken<17<@fg',\n\t\tswitchOnBg: '@accent',\n\t\tswitchOnFg: '@fgOnAccent',\n\t\tcodeBoolean: '#62b70c',\n\t\tdateLabelFg: '@fg',\n\t\tdeckDivider: ':darken<3<@bg',\n\t\tinputBorder: 'rgba(0, 0, 0, 0.1)',\n\t\tpanelBorder: '\" solid 1px var(--divider)',\n\t\tswitchOffBg: 'rgba(0, 0, 0, 0.1)',\n\t\tswitchOffFg: '@panel',\n\t\taccentDarken: ':darken<10<@accent',\n\t\tacrylicPanel: ':alpha<0.5<@panel',\n\t\tnavIndicator: '@indicator',\n\t\twindowHeader: ':alpha<0.85<@panel',\n\t\taccentLighten: ':lighten<10<@accent',\n\t\tbuttonHoverBg: 'rgba(0, 0, 0, 0.1)',\n\t\tdriveFolderBg: ':alpha<0.3<@accent',\n\t\tfgHighlighted: ':darken<3<@fg',\n\t\tfgTransparent: ':alpha<0.5<@fg',\n\t\tpanelHeaderBg: ':lighten<3<@panel',\n\t\tpanelHeaderFg: '@fg',\n\t\tbuttonGradateA: '#FC4774',\n\t\tbuttonGradateB: '#F9E001',\n\t\thtmlThemeColor: '@bg',\n\t\tpanelHighlight: ':darken<3<@panel',\n\t\tlistItemHoverBg: 'rgba(0, 0, 0, 0.03)',\n\t\tscrollbarHandle: 'rgba(0, 0, 0, 0.2)',\n\t\tinputBorderHover: 'rgba(0, 0, 0, 0.2)',\n\t\twallpaperOverlay: 'rgba(255, 255, 255, 0.5)',\n\t\tfgTransparentWeak: ':alpha<0.75<@fg',\n\t\tpanelHeaderDivider: 'rgba(0, 0, 0, 0)',\n\t\tscrollbarHandleHover: 'rgba(0, 0, 0, 0.4)',\n\t},\n\tauthor: '@kakkokari_gtyih@misskey.io',\n}"
}
```
- `type`: 上記「外部からのインストールに対応しているリソース」のコードを参照して入力してください。
- `data`: リソースのソースコードを**文字列で**入力
- この際、改行コードは**LF**としてください

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
# プロジェクトへの寄付
:::tip
法人としてプロジェクトへの支援(スポンサー)をご検討の方は[こちらをご覧ください。](/docs/become-a-sponsor/)
:::
Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(サーバーによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません)
寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。以下の方法で受け付けています。
- 継続支援
- [Fanbox](https://syuilo.fanbox.cc/)
- [Patreon](https://www.patreon.com/syuilo)
- 単発支援
- Kyash: @syuilo
- [PayPal](https://paypal.me/syuilo)
- 仮想通貨: `0xF1121108E21C92aAC7814137DD67e0d48eAC7Fdc`
- [Amazonの欲しいものリスト](https://www.amazon.jp/hz/wishlist/ls/4JG4P6XKX9KD?ref_=wl_share)
:::tip
高額の寄付(例えば5万円以上)をされる場合は、PayPal等ですと手数料が高額になってしまいますので、Kyashをご検討いただくか、ご連絡いただければ銀行口座をお伝えいたします。
:::
:::tip
額に応じて以下の返礼を用意しています。
- 1,000円以上: お使いのmisskey.ioアカウントにmiバッジ付与
- 3,000円以上: ↑ + Misskeyのクレジットへのお名前の記載
- 10,000円以上: ↑ + Misskeyのクレジットへのお名前+任意のアイコンの掲載
:::
:::warning
**バッジ付与やクレジットへの記載は自動で行われないため、ご希望の方は寄付されたことが分かる情報を添えて@syuilo\@misskey.ioまでお申し付けください。**
(メンション気づかない場合があるので返信がなければ複数回メンションお願いします。また、misskey.io以外のサーバーからはメンション届かない場合があります)
:::
また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。
開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。

View File

@ -0,0 +1,7 @@
# スポンサーについて
Misskey Projectはスポンサーを募集しています。
スポンサーになると、MisskeyやMisskey Hubへの会社ロゴ掲載や、技術サポートを受けることができます。
[詳細はこちらからお問い合わせください。](/contact/)

View File

@ -0,0 +1,142 @@
---
ignoreDirBasedNav: true
description: Documentation about Misskey.
---
# About Misskey
Misskey is an open-source and distributed platform for microblogging.
## History
While Misskey started centered around Bulletin Boards as its main feature, the growth in popularity due to the addition of a timeline that let users post short messages and view them in chronological order lead to a gradual shift in the main focus of development towards this kind of functionality.
Misskey was not always a decentralized service, but became decentralized through the adoption of ActivityPub in 2018. Since then, it has become a service that is acknowledged and used by many.
:::tip
The name "Misskey" comes from a song called "Brain Diver" by a band that syuilo used to listen to at the time called May'n.
:::
With anyone being able to join its development, Misskey is still continually being actively developed.
## What does "Decentralized" mean?
A <b>distributed</b> service, also called a <b>decentralized</b> service, refers to a service that divides its community into many servers (instances) that all mutually <b>communicate (federate)</b> with each other to share their contents, forming a <b>network (Fediverse)</b>.
Services that only have one instance or multiple instances that are independent of each other are called centralized. Most services fall under the category of centralized, some examples being Twitter (X) and Facebook.
The advantages of decentralized services include being able to freely choose the instance whose administration and theme suit you best. It's also possible for you to make your own server. Thanks to the federated nature, you will be able to access the same communities, no matter which server you choose.
## Always Open-Source
Misskey has always been, and will always be, open source.Open source simply means <b>that the source code of the software (a program) is publicly available</b>.This also includes being able to adjust or redistribute the source code in its definition.
The entirety of Misskey's source code is published under an open-source license called [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), which means anyone can freely inspect, use, adjust, change or redistribute as they see fit.
Open source has many merits, including allowing anyone being able to make changes as they like, to make sure the code does not include any harmful components and being able to easily participate in its development.
For realizing the distributed nature of Misskey, this concept of open source is indispensable.
Using the same example as before, most profit-oriented services like Twitter, Facebook etc. are not open source.
:::tip
Technically speaking, Misskey's source code is managed via Git, and the repository is hosted on [GitHub](https://github.com/misskey-dev).
:::
## Joining development and supporting the project
If you like Misskey, please support the project.Supporting the project can be done in many ways, with some of them introduced below\.Some of these do not require programming skills, so anyone can feel free to support Misskey their own way.We are always looking forward to hearing from you.Supporting the project can be done in many ways, with some of them introduced below\.Some of these do not require programming skills, so anyone can feel free to support Misskey their own way.We are always looking forward to hearing from you.
### Adding features or fixing bugs
If you possess software engineering skills, you can contribute to the project through editing the source code.
### Participating in discussions
Such discussions can be held at [GitHub](https://github.com/misskey-dev) or the [Forums](https://forum.misskey.io/) and so on.
### Translating text
Misskey is available in many languages (also called i18n, which is an abbreviation for Internationalization).While the original language is generally japanese, volunteers are translating Misskey into other languages.Misskey uses a service called [Crowdin to manage its translations.](https://crowdin.com/project/misskey)](https\://crowdin.com/project/misskey)
### Sharing your impressions
Besides reporting bugs, please also feel free to share positive impressions such as which parts of Misskey you personally like, or things about Misskey that you find fun.As things like these serve as motivation for the developers, it also counts as indirect support for the project.As things like these serve as motivation for the developers, it also counts as indirect support for the project.
### Increasing the number of Misskists
"Misskist" refers to the people using Misskey.
By spreading the word about Misskey through introducing it to your acquaintances, the number of Misskists may increase, which serves as motivation for the developers.
### Making donations
[Please click here](/docs/for-users/resources/donate/)
## Frequently Asked Questions
### What is this project aiming to achieve?
Unlike other platforms, Misskey is not grounded in a specific idea (for example, anti-centralization) or vision and being developed with that in mind, so it's a bit "aimless" in this respect.
<!-- TODO: ここにロードマップへのリンク -->
### Is Misskey being developed by a company?
No. Misskey is developed by individuals and not commercialized through connection with any particular company.
Development members are generally volunteers.
Additionally, while there are some corporate sponsors, development is still centered around the community.
### Who is managing Misskey?
Due to the decentralized nature of Misskey, each individual server has their own administration.Therefore, not all of Misskey is managed by one individual person or company.To put it bluntly, while this is a bit vague, Misskey is aiming to be a widely-used all-purpose platform. On the other hand though, this creates a flexibility due to not being bound by a specific direction to go towards. Development members are generally volunteers. Additionally, while there are some corporate sponsors, development is still centered around the community. This means that, as the development team does not control individual servers, for management-related questions you should contact your server's administration instead.
### Which server should I choose?
[A list of servers is available here.](/servers/)
Depending on the server, its community or central theme (for example, liking a show) may vary, so if there is a server that suits your interests, joining it would likely be a good choice.
Besides that, server size, userbase, country or spoken language, reliance or trust in the administration team and many other things can also serve as criteria.
There is however no single server that serves as the official server of Misskey.There is however no single server that serves as the official server of Misskey.You also have the choice of creating a new server of your own.
Generally speaking, no matter which server you join, you will still be able to connect with users from all other servers.
### How can I create my own server?
Thank you for having an interest in creating a Misskey server.
### What kind of technology does Misskey use?
As Misskey's development progressed, the technologies used have changed significantly. In the beginning, it used a combination of MySQL + PHP + jQuery, but currently uses the following:
- Server-side: Node.js
- Database: PostgreSQL, Redis
- UI Framework: Vue.js
- Programming language: TypeScript
In addition to this, from Misskey derived technology such as MFM or AiScript are also being used.
### Is this a fork of Mastodon?
No.Misskey is a project completely different from Mastodon or other alike projects.
It has been in development for a long time already.However, it only became a decentralized network after the appearance of Mastodon. Besides both projects implementing the ActivityPub protocol, there is no relation between the two.
### Are there any apps for iOS / Android available?
We do not officially develop native apps for those operating systems, but there are several third-party apps available. Please see [here](/docs/for-users/resources/apps/) for more information.
However, third-party applications will inevitably lag behind the official Web client in functionality, so unless you really want to use a native application, we recommend the official Web client instead.
As the Misskey Web client supports PWA, you can use it as if it was a native application.
### Where can I download Misskey's logo or icon?
[Click here](/brand-assets/)
### Who are those cute cat-eared girls that you see sometimes?
:::fukidashi{chara="doya_ai" charaName="Ai"}
For more information about me, please visit [this website](https://xn--931a.moe/)!
:::
:::fukidashi{chara="syuilo" charaName="syuilo" direction="right"}
It's Misskey's guardian deity, Ai.(They called Ai cute, yay!)
:::

View File

@ -0,0 +1,5 @@
# User Guide
This section provides an overview of general features that are useful for both new and existing Misskey users.
<MkIndex />

View File

@ -0,0 +1,14 @@
# Getting Started with Misskey
Here you will find a tutorial to get you started in Misskey.
Mainly,
- Points to note about decentralized platforms
- What is a server?How do I choose a server?Mainly,
- Registration Process
- Minimal basic knowledge
By following these instructions, you will be able to start using Misskey in no time.
Let's get started!(Press "Next" to proceed.)

View File

@ -0,0 +1,15 @@
---
description: Those are some basic notes before creating an account on a Misskey server.
---
# Important notes
There are some points to be aware of when using services which use Misskey.
- Due to its decentralized nature, once uploaded, data is not guaranteed to be deleted from all other servers, even if deleted.(However, this is also true for the Internet in general)
- Even if a post is created as private, there is no guarantee that the other servers will treat it as private as well.So, please use caution when posting personal or confidential information.(However, this is also true for the Internet in general)
- Misskeyに搭載されている「ドライブ」機能は一般的なクラウドストレージではありません。この機能は、アップロードしたファイルを管理したり再利用したりするためのものです。 **アップロードされたデータは、ートに添付したことがあるかどうかにかかわらず、URLを知っている人ならだれでもアクセスできます。** 機密情報を含むデータのやりとりには専用のサービスをご利用ください。
- Account deletion is an intensive process and may take a long time.In cases where there is a large amount of uploaded data, it may not be possible to delete the account.
- Some servers may cover operating costs through advertising revenue.Additionally, ad blockers often mistakenly block content or features that are completely unrelated to advertising, which can interfere with client operation and prevent you from using Misskey properly.Therefore, please use Misskey with adblockers and similar features turned off.
Please understand these points and enjoy using our services.

View File

@ -0,0 +1,39 @@
---
description: This section explains user registration on a Misskey server and basic operations.
---
# Find a Misskey Server
Misskey is a software and a project.
You can choose any server from the [server list](/servers/).
:::tip
:::g-details{summary='Details'}
Misskey has federated functionality.
::::g-details{summary='Details'}
This federated functionality allows users on different servers to follow, react, and renote in the same way as users on the same server, even if they are on different servers.
The federated functionality that Misskey incorporates is based on an open common standard called ActivityPub and is compatible with other software such as Mastodon and Pleroma.
:::
:::
:::
## How to choose a server
### Server Theme
Some servers may have a specific theme, for example, "I like certain a thing or things".
:::tip
A list of servers can be found [here](/servers/).
:::

View File

@ -0,0 +1,37 @@
# Register on a server
Once you have decided which server to register with, it's time to create an account.
:::tip
Here, Misskey.io is used as an example, but registration method is generally the same for other servers.
However, the information you enter may vary depending on the server.Please contact your server administrator for more information.
:::
:::
## Register
First, find and click the "**Register on this server**" button on the landing page.
![Register to this server button](/img/docs/for-users/onboarding/join-server/1.ja.png)
The main items to be filled out are as follows
The main items to be filled out are as follows
- Invitation code (only if registration is by invitation only.If you do not have one, you will not be able to register.)
- Username (**Cannot be changed later.Once you delete your account, you will not be able to get the same username again.**)
- Email address (some servers don't require it)
- Password
![Fill out the required information](/img/docs/for-users/onboarding/join-server/2.ja.png)
Once you have filled out the required information, you will receive an confirmation email for servers that ask for a email address, so please click on the link in the email as soon as possible.
![Confirmation email](/img/docs/for-users/onboarding/join-server/3.ja.png)
With this, registration to a Misskey server is complete!
Now you are also a [Misskist](../resources/glossary/#ミスキスト)!Please enjoy the fun communication.

View File

@ -0,0 +1,27 @@
# Misskey Basics
Here is a summary of what you, the account creator, need to know for now.
## Notes
Posts on Misskey are called "notes."There are many features compared to Twitter and other popular social networking sites, so be sure to check them out before making your first post.
:::tip
For more information, see "[Notes](/docs/for-users/features/note/)."
:::
## Timelines
Misskey has multiple timelines.The names alone may be a little confusing, so it is important to know how each works.
:::tip
For more information, see "[Timeline](/docs/for-users/features/timeline/)."
:::
## Other
Misskey also has many other features that make it fun to use!The descriptions for all features are listed [here](/docs/for-users/features/), so please take a look!

View File

@ -0,0 +1,9 @@
---
description: We will explain many functions that are the main feature of Misskey.
---
# Various functions
Misskey's main characteristics are several features that other microblogging systems don't have.We will explain them here.
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,13 @@
# Ads
Misskey has a feature that displays ads etc.
:::tip
If the total number of ads is low, ads may reappear even though their frequency has been reduced.
:::
## Setting Up Ads (Administrators Only)
You can add, edit, delete ads on your server control panel.

View File

@ -0,0 +1,5 @@
# Antennas
Antennas are a function of Misskey that collects notes that match the set conditions.
When an antenna is created with set conditions and a note is posted that matches the conditions, the note is added to the antenna's timeline in real time.

View File

@ -0,0 +1,71 @@
# Charts
Misskey has a feature that displays and generates charts from various server data sources.
The server chart can be displayed on the Server Information page.
Below is a description of each chart and each of its elements.
## Federation Charts
Charts about federated servers.
### Pub
Unique number of self-server that has sent activities to remote servers.
### Sub
Unique number of remote servers that have sent activity to the self-server.
### Received
The number of users receiving activities.
### Delivered
The number of servers providing activity.
### Stalled
Unique number of failures when the self-server attempted to deliver activities to remote servers.
## Active users charts
Self-server user usage charts.
### Read & Write
Unique number of users who have browsed and written.
### Read
Unique number of users who have browsed.
### Write
Unique number of users who have written.
### < Week
The number of users who have browsed and whose account creation date and time is less than one week.
### < Month
The number of users who have browsed and whose account creation date and time is less than one month.
### < Year
The number of users who have read and whose account creation date and time is less than one year.
### Week
The number of users who have read and whose account creation date and time is one week ago.
### Month
The number of users who have read and whose account creation date and time is one month ago.
### Year
The number of users who have read and whose account creation date and time is one year ago.

View File

@ -0,0 +1,7 @@
# Clips
Clips are a feature of Misskey that summarize notes.Clips are a feature of Misskey that summarize notes.They don't care if the notes are mine or someone else's. You can make more than one clips, and you can name them and give an explanation, and you can manage them.You can also choose between public and private clips.You can also choose between public and private clips.
To create clips, select "Add" on the Clip Management page.
To add notes to clips, select Clips on the appropriate note page and select the target clip.

View File

@ -0,0 +1,5 @@
# Custom Emoji
Custom Emoji is a feature that allows you to use images uploaded to the instance as emoji. They can be used in places such as notes, reactions, chat, self-introductions, and names. To use a custom emoji in those places, press the emoji picker button (if present) or type `:` to display emoji suggestions. If a string of the form `:foo:` is found in the text, the `foo` part is interpreted as a custom emoji name and replaced by the corresponding custom emoji when displayed.
To see which custom emoji are available on the server, go to "Custom Emoji" in the [**Server Info**](x-mi-web://about#emojis) section of Misskey Web.

View File

@ -0,0 +1,24 @@
# Deck
Deck is one of the available UIs.It features the ability to create highly customizable and dense UIs by displaying multiple views side by side called "columns."\
In addition, when notes or profiles are displayed on the page, if a main column is added then their contents will be displayed inside it.
## Adding columns
Columns can be added by right-clicking on the deck background and selecting "Add Column."
## Moving columns
Columns can have move by swapping with other columns via drag and drop, as well as through the column menu, shown from right-clicking the column header.
## Splitting columns
Columns can be arranged not only horizontally but also vertically. Open the column menu and select "Stack to the left" to move the current column below the left column. To undo the split, select "Dock on the right."
## Column settings
Column settings can be edited by selecting "Edit" from the column menu.Columns can be renamed and their widths can be changed.
## Deck settings
Deck settings can be changed at [settings/deck](x-mi-web://settings/deck).

View File

@ -0,0 +1,27 @@
# Drive
Drive is a feature to manage the files you have uploaded to Misskey.
:::tip
Technically speaking, all files are centrally managed on Misskey's system, and the interface that exposes them to users can be thought of as a drive.
:::
In addition to being able to upload any file from Misskey Web's Drive page, images set as avatars and files attached to notes will all be uploaded to Drive.
Not only can files uploaded to Drive be downloaded at any time, but they can also be reused by selecting "Attach Files from Drive" when creating notes.
In addition, folders can be created within Drive to organize multiple files together.
:::warning
Currently, when you delete a file from Drive, **all the content (notes, pages, etc.)** it was attached to also disappears.
:::
## Sensitive (NSFW)
Sensitive or NSFW (Not safe for work) is a flag that can be set on files in Drive. Files that are flagged as sensitive will not be displayed without interaction from the viewer. This flag is used, for instance, to mark images that are considered inappropriate for viewing at work or in public places, and to prevent them from being displayed suddenly.
This flag can be manually turned on or off, as well as set at the discretion of moderators.

View File

@ -0,0 +1,9 @@
# Bookmarks
This function allows you to save [notes](./note) as bookmarks.
<!--TODO:「お気に入りページ」をMisskey Webに飛ばすリンクで置き換え-->
You can view your saved notes on the Bookmarks page. The note's author is not notified when you bookmark a note, and only you can see your bookmarks.
To bookmark a note, select "Bookmark" in the Notes menu.To remove a bookmark, select "Remove bookmark."

View File

@ -0,0 +1,3 @@
# Follow
When you follow a user, you will see their posts on your timeline.However, this does not include replies to other users. To follow a user, click the "Follow" button on the user's page.Click once more to unfollow.

View File

@ -0,0 +1,9 @@
# Hashtags
Hashtag is a feature that allows you to add searchable tags to your posts.
The world's first hashtag, #barcamp, was created by Chris Messina [@chrismessina@mastodon.xyz](https://mastodon.xyz/@chrismessina) on [August 24, 2007 at 4:25 AM](https://twitter.com/chrismessina/status/223115412?lang=en).Later, this idea of using the pound sign `#` to make searches easier was reborn as "hashtag," a word coined by combining the English word "hash," meaning "to chop up or shred," and "tag," meaning "label," and was officially adopted by Twitter at the time.Incidentally, Chris Messina chose `#` because it was reminiscent of IRC channel names starting with `#`.
![Screenshot of Chris Messina's first hashtag tweet that says "how do you feel about using # (pound) for groups. As in #barcamp \[msg\]?"](/img/docs/for-users/features/hashtag/1.ja.png)
The way to use hashtags in the Fediverse is slightly different from how it is used in centralized services such as X and Instagram.In the Fediverse, full-text search is sometimes difficult, making it hard to find a specific post, but if a post contains a hashtag, you can easily locate it by following the hashtag.Additionally, there are services on the Fediverse called hashtag relays that automatically send posts to various sites just by adding hashtags to them, so hashtags are quite important.

View File

@ -0,0 +1 @@
# Mentions

View File

@ -0,0 +1,430 @@
---
description: MFM is a proprietary markup language that can be used in various locations in Misskey.
---
# MFM
MFM, short for Markup language For Misskey, is a proprietary markup language that can be used in various locations in Misskey.
:::tip
Some of its syntax is compatible with Markdown and HTML.
:::
## Examples of places where MFM can be used
- The text of a note
- Content warning annotation
- Names of users
- User bios
## Syntax
### Mentions
`@` + username can be used to display a specific user.
:::tip
For more information about mentions, see [here](./mention.md).
:::
```
@ai
```
<MfmPreview text="@ai"></MfmPreview>
```
@repo@p1.a9z.dev
```
<MfmPreview text="@repo@p1.a9z.dev"></MfmPreview>
### Hashtags
`#` + tag can be used to display a hashtag.
:::tip
For more information about hashtags, see [here](./hashtag.md).
:::
```
#misskey
```
<MfmPreview text="#misskey"></MfmPreview>
### URL
URLs can be displayed.
```
https://example.com
```
<MfmPreview text="https://example.com"></MfmPreview>
### Links
Specific parts of text can be displayed as a URL.
```
[example link](https://example.com)
```
:::tip
You can hide the link preview by prefixing the link text with `? `.
```
?[example link](https://example.com)
```
:::
<MfmPreview text="[example link](https://example.com)"></MfmPreview>
### Custom Emoji
Custom emoji can be displayed by surrounding the emoji name with colons.
:::tip
For more information about custom emoji, see [here](./custom-emoji.md).
:::
```
:misskey:
```
<MfmPreview text=":misskey:"></MfmPreview>
### Bold
Bolds text for emphasis.
```
**太字**
```
<MfmPreview text="**太字**"></MfmPreview>
### Shrink
Displays content smaller and thinner.
```
<small>MisskeyでFediverseの世界が広がります</small>
```
<MfmPreview text="<small>MisskeyでFediverseの世界が広がります</small>"></MfmPreview>
### Quote
Displays content as a quote.
```
> MisskeyでFediverseの世界が広がります
```
<MfmPreview text="> MisskeyでFediverseの世界が広がります"></MfmPreview>
### Center align
Displays content centered.
```
<center>MisskeyでFediverseの世界が広がります</center>
```
<MfmPreview text="<center>MisskeyでFediverseの世界が広がります</center>"></MfmPreview>
### Yomigana (Ruby characters)
Yomigana can be attached to text.
```
$[ruby Misskey ミスキー]
```
<MfmPreview text="$[ruby Misskey ミスキー]"></MfmPreview>
### Code (Inline)
Displays syntax highlighting for code from programs inline.
```
`<: "Hello, world!"`
```
### Code (Block)
Displays multi-line syntax highlighting for code from programs in a block.
```
~ (#i, 100) {
<: ? ((i % 15) = 0) "FizzBuzz"
.? ((i % 3) = 0) "Fizz"
.? ((i % 5) = 0) "Buzz"
. i
}
```
### Flip
Flips content horizontally or vertically.
```
$[flip MisskeyでFediverseの世界が広がります]
$[flip.v MisskeyでFediverseの世界が広がります]
$[flip.h,v MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[flip MisskeyでFediverseの世界が広がります]
$[flip.v MisskeyでFediverseの世界が広がります]
$[flip.h,v MisskeyでFediverseの世界が広がります]"></MfmPreview>
### Font
Sets the font to display content in.
```
$[font.serif MisskeyでFediverseの世界が広がります]
$[font.monospace MisskeyでFediverseの世界が広がります]
$[font.cursive MisskeyでFediverseの世界が広がります]
$[font.fantasy MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[font.serif MisskeyでFediverseの世界が広がります]
$[font.monospace MisskeyでFediverseの世界が広がります]
$[font.cursive MisskeyでFediverseの世界が広がります]
$[font.fantasy MisskeyでFediverseの世界が広がります]"></MfmPreview>
### Blur
Content can be blurred.When hovering the mouse over the content, it will be displayed clearly.
```
$[blur MisskeyでFediverseの世界が広がります]
```
<MfmPreview text="$[blur MisskeyでFediverseの世界が広がります]"></MfmPreview>
### Search
A search box can be displayed.
```
misskey 検索
```
<MfmPreview text="misskey 検索"></MfmPreview>
### Foreground and Background Color
The color of the foreground and background can be changed.
Colors are expressed using 3, 4, or 6 digit color codes.
```
$[fg.color=f00 赤字]
$[bg.color=ff0 黄背景]
```
<MfmPreview text="$[fg.color=f00 赤字]
$[bg.color=ff0 黄背景]"></MfmPreview>
### Border
Content can be surrounded borders.The borders can have various styles.
```
$[border.style=solid,width=4 Default]
$[border.style=hidden No border]
$[border.style=dotted,width=2 Dotted]
$[border.style=dashed,width=2 Dashed]
$[border.style=double,width=4 Double]
$[border.style=groove,width=4 Embossed A]
$[border.style=ridge,width=4 Embossed B]
$[border.style=inset,width=4 Inset A]
$[border.style=outset,width=4 Inset B]
$[border.color=d00 Border color]
$[border.width=5 Border width]
$[border.radius=6,width=2 Border radius]
$[border.radius=5,width=2,color=888 $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]
$[border.radius=5,width=2,color=888,noclip $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]
```
<MfmPreview text="$[border.style=solid,width=4 Default]\
$[border.style=hidden No border]\
$[border.style=dotted,width=2 Dotted]\
$[border.style=dashed,width=2 Dashed]\
$[border.style=double,width=4 Double]\
$[border.style=groove,width=4 Embossed A]\
$[border.style=ridge,width=4 Embossed B]\
$[border.style=inset,width=4 Inset A]\
$[border.style=outset,width=4 Inset B]\
$[border.color=d00 Border color]\
$[border.width=5 Border width]\
$[border.radius=6,width=2 Border radius]\
$[border.radius=5,width=2,color=888 $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]\
$[border.radius=5,width=2,color=888,noclip $[position.x=1.5 ]
$[position.x=1.5 完全に理解した]]"></MfmPreview>
### Rotate
Rotate by a specified angle.
```
$[rotate.deg=30 misskey]
```
<MfmPreview text="$[rotate.deg=30 misskey]"></MfmPreview>
### Shift Position
The position can be shifted.
```
😏$[position.x=0.8,y=0.5 🍮]😀
```
<MfmPreview text="😏$[position.x=0.8,y=0.5 🍮]😀"></MfmPreview>
### Expand
Displays enlarged text.
```
$[scale.x=4,y=2 🍮]
```
<MfmPreview text="$[scale.x=4,y=2 🍮]"></MfmPreview>
```
$[x2 x2]
$[x3 x3]
$[x4 x4]
```
<MfmPreview text="$[x2 x2]
$[x3 x3]
$[x4 x4]"></MfmPreview>
### Animation (Jelly)
```
$[jelly 🍮] $[jelly.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[jelly 🍮] $[jelly.speed=5s 🍮]]"></MfmPreview>
### Animation (Tada)
```
$[tada 🍮] $[tada.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[tada 🍮] $[tada.speed=5s 🍮]]"></MfmPreview>
### Animation (Jump)
```
$[jump 🍮] $[jump.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[jump 🍮] $[jump.speed=5s 🍮]]"></MfmPreview>
### Animation (Bounce)
```
$[bounce 🍮] $[bounce.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[bounce 🍮] $[bounce.speed=5s 🍮]]"></MfmPreview>
### Animation (Spin)
```
$[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮]
$[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮]
$[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮]
$[spin.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[spin 🍮] $[spin.left 🍮] $[spin.alternate 🍮]
$[spin.x 🍮] $[spin.x,left 🍮] $[spin.x,alternate 🍮]
$[spin.y 🍮] $[spin.y,left 🍮] $[spin.y,alternate 🍮]
$[spin.speed=5s 🍮]]"></MfmPreview>
### Animation (Shake)
```
$[shake 🍮] $[shake.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[shake 🍮] $[shake.speed=5s 🍮]]"></MfmPreview>
### Animation (Twitch)
```
$[twitch 🍮] $[twitch.speed=5s 🍮]
```
<MfmPreview text="$[x2 $[twitch 🍮] $[twitch.speed=5s 🍮]]"></MfmPreview>
### Rainbow
```
$[rainbow 🍮] $[rainbow.speed=5s 🍮]
$[rainbow 色なし文字]
$[rainbow $[fg.color=f0f 色付き文字]]
```
<MfmPreview text="$[rainbow 🍮] $[rainbow.speed=5s 🍮]
$[rainbow 色なし文字]
$[rainbow $[fg.color=f0f 色付き文字]]"></MfmPreview>
### Sparkle
```
$[sparkle 🍮]
```
<MfmPreview text="$[x2 $[sparkle 🍮]]"></MfmPreview>
### Plain Text
Disable formatting of content.
```
<plain>**bold** @mention #hashtag `code` $[x2 🍮]</plain>
```
<MfmPreview text="<plain>**bold** @mention #hashtag `code` $[x2 🍮]</plain>"></MfmPreview>
## Information for developers
MFM parsing and rendering implementations are published as libraries, making it easy to incorporate MFM into clients.
- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScript parser implementation
- [mfm-renderer](https://www.npmjs.com/package/mfm-renderer) - Vue.js component
- [mfm.kt](https://github.com/samunohito/mfm.kt) - Kotlin parser implementation
- [mfm_parser](https://pub.dev/packages/mfm_parser) - Dart parser implementation
- [mfm](https://pub.dev/packages/mfm) - Flutter rendering widget

View File

@ -0,0 +1,64 @@
# Mutes and Blocks
If you don't like someone, you can mute them so they're no longer visible to you. Or, as a more powerful measure, you can block someone so they can't see your content or interact with you. The other person won't know that they are muted, but they will know that they are blocked.It is up to you to decide which one to use.
:::tip
Mutes and blocks can be used together.
:::
:::warning
If there are any troublesome users who violate the terms of service, please consider reporting them to the administrator.
:::
On Misskey Web, you can view the users you have muted or blocked by going to Settings > Mutes and Blocks.
## Mute
When you mute a user, the following content about that user will no longer appear in Misskey:
- Their notes on your timeline and search results (including replies and renotes from them)
- Notifications from them
- History of messages with them
- etc.
To mute a user on Misskey Web, open the menu on the target user's page and press the "Mute" button.
:::tip
The other person won't be notified that you've muted them, nor will they know that they've been muted.
:::
## Block
Blocking a user prevents them from seeing your content and from taking any of the following actions against you:
- Following you
- Adding you to their user list
- Replying to you, renoting you
- Reacting, voting in surveys
- Sending messages to you
- etc.
In addition:
- If the user is already following you when you block them, their follow will be removed.
- If the user already has you on their user list when you block them, you will be removed from it.
To block a user on Misskey Web, open the menu on the target user's page and press the "Block" button.
:::warning
The person will not be notified that you have blocked them, but they may be able to figure it out indirectly - as they will no longer be able to perform the actions listed above.
:::
:::warning
Your content will not be visible to the other user, but they may be able to if they switch accounts or log out.Please think of this as a simple and supplementary tool.
:::

Some files were not shown because too many files have changed in this diff Show More