This commit is contained in:
kakkokari-gtyih 2023-07-08 17:36:02 +09:00
commit 8e52c51c49
1174 changed files with 54299 additions and 0 deletions

10
.editorconfig Normal file
View File

@ -0,0 +1,10 @@
root = true
[*]
indent_style = tab
indent_size = 4
charset = utf-8
insert_final_newline = true
[*.yml]
indent_style = space

23
.gitignore vendored Normal file
View File

@ -0,0 +1,23 @@
# Nuxt dev/build outputs
.output
.nuxt
.nitro
.cache
dist
# Node dependencies
node_modules
# Logs
logs
*.log
# Misc
.DS_Store
.fleet
.idea
# Local env files
.env
.env.*
!.env.example

2
.npmrc Normal file
View File

@ -0,0 +1,2 @@
shamefully-hoist=true
strict-peer-dependencies=false

65
README.md Normal file
View File

@ -0,0 +1,65 @@
# About Misskey
Misskey website.
Built with [Nuxt](https://nuxt.com/).
## Setup
Make sure to install the dependencies:
```bash
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
```
## Development Server
Start the development server on `http://localhost:3000`:
```bash
# npm
npm run dev
# pnpm
pnpm run dev
# yarn
yarn dev
```
## Production
Build the application for production:
```bash
# npm
npm run build
# pnpm
pnpm run build
# yarn
yarn build
```
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm run preview
# yarn
yarn preview
```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.

91
app.vue Normal file
View File

@ -0,0 +1,91 @@
<script setup lang="ts">
import type { Graph, Thing } from 'schema-dts';
const { t, locale } = useI18n();
const route = useRoute();
const getDescription = (): string => {
if (route.meta.description != null && route.meta.description != "") {
return route.meta.description;
} else {
return t('_seo.defaultDescription');
}
}
const getTitle = () => route.meta.title ? `${route.meta.title} | ${t('_seo.siteName')}` : t('_seo.siteName');
const getLdJson = (additionalGraphes: Thing[] = []): string => {
const ldJson: Graph = {
"@context": "https://schema.org",
"@graph": [
{
"@type": "Organization",
"@id": "https://misskey-hub.net/#Organization",
"name": "Misskey",
"url": `https://misskey-hub.net/`,
"sameAs": [
"https://join.misskey.page/",
"https://ja.wikipedia.org/wiki/Misskey",
],
"logo": {
"@type": "ImageObject",
// TODO
"url": "https://misskey-hub.net/img/logo.png"
}
},
{
"@type": "WebSite",
"@id": "https://misskey-hub.net/#WebPage",
"name": t('_seo.siteName'),
"inLanguage": locale.value,
"url": `https://misskey-hub.net${route.path}`,
"publisher": {
"@type": "Organization",
"@id": "https://misskey-hub.net/#Organization"
},
"headline": getTitle(),
"description": getDescription()
},
]
};
ldJson['@graph'] = ldJson['@graph'].concat(additionalGraphes);
return JSON.stringify(ldJson);
};
useHead((): Record<string, any> => ({
htmlAttrs: {
lang: locale.value,
},
title: getTitle(),
meta: [
{
name: "description",
content: getDescription(),
},
{
property: "og:title",
content: getTitle(),
},
{
property: "og:description",
content: getDescription(),
},
{
property: "og:image",
// TODO
content: () => route.meta.thumbnail ? route.meta.thumbnail : "https://misskey-hub.net/img/logo.jpg",
}
],
link: [
{ rel: "canonical", href: "https://misskey-hub.net" + route.path },
],
script: [
{ type: "application/ld+json", children: getLdJson(route.meta.graph) }
],
}));
</script>
<template>
<div>
<noscript class="block bg-accent-800 text-white text-center py-1.5 px-3 keep-all relative z-[10005]">Please turn on Javascript from your browser's settings.</noscript>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</div>
</template>

3
assets/css/tailwind.css Normal file
View File

@ -0,0 +1,3 @@
@tailwind base;
@tailwind components;
@tailwind utilities;

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-433.5,483.5)">
<path d="M979.5,-329C1170.19,-329 1325,-174.187 1325,16.5C1325,207.187 1170.19,362 979.5,362C788.813,362 542,165.187 542,-25.5C542,-216.187 788.813,-329 979.5,-329Z" style="fill:url(#_Linear1);"/>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(783,0,0,691,542,16.5)"><stop offset="0" style="stop-color:rgb(43,180,0);stop-opacity:1"/><stop offset="1" style="stop-color:rgb(113,180,0);stop-opacity:1"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1000 1000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-504.5,476.5)">
<path d="M965.5,-315C1156.19,-315 1375,-172.187 1375,18.5C1375,209.187 1170.19,362 979.5,362C788.813,362 634,207.187 634,16.5C634,-174.187 774.813,-315 965.5,-315Z" style="fill:url(#_Linear1);"/>
</g>
<defs>
<linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(741,0,0,677,634,23.5)"><stop offset="0" style="stop-color:rgb(113,180,0);stop-opacity:0.5"/><stop offset="1" style="stop-color:rgb(37,180,0);stop-opacity:0.5"/></linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

13
components/g/Footer.vue Normal file
View File

@ -0,0 +1,13 @@
<template>
<div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
</style>

13
components/g/Nav.vue Normal file
View File

@ -0,0 +1,13 @@
<template>
<div>
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
</style>

69
components/index/Bg.vue Normal file
View File

@ -0,0 +1,69 @@
<template>
<div class="absolute top-0 left-0 w-full h-full overflow-hidden">
<div v-parallax="1.2" class="blobs object1"><Blob1 aria-hidden="true" /></div>
<div v-parallax="1.2" class="blobs object2"><Blob2 aria-hidden="true" /></div>
<div v-parallax="1.2" class="blobs object3"><Blob2 aria-hidden="true" /></div>
</div>
</template>
<script setup lang="ts">
import type { Ref } from 'vue';
import Blob1 from '@/assets/svg/top-bg-object1.svg';
import Blob2 from '@/assets/svg/top-bg-object2.svg';
const vParallax = {
mounted: (src: HTMLElement, binding: Ref<number>) => {
src.style.willChange = 'transform';
window.addEventListener('scroll', () => {
src.style.transform = `translateY(${window.scrollY / binding.value}px)`;
}, { passive: true });
}
}
</script>
<style scoped>
.blobs {
@apply absolute select-none pointer-events-none;
}
.blobs > svg {
@apply w-full;
}
.object1 {
right: -300px;
top: -400px;
width: 1000px;
}
.object1 > svg {
animation: 60s linear 0s infinite normal none running spin;
}
.object2 {
left: -250px;
top: 500px;
width: 1000px;
}
.object2 > svg {
animation: 80s linear 0s infinite reverse none running spin;
}
.object3 {
right: -300px;
top: 1400px;
width: 1000px;
}
.object3 > svg {
animation: 80s linear 0s infinite normal none running spin;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>

23
components/index/Hero.vue Normal file
View File

@ -0,0 +1,23 @@
<template>
<div class="container mx-auto">
<MkLogo />
<div class="tagline" id="tagline">
<div class="row">Interplanetary</div>
<div class="row">microblogging</div>
<div class="row">platform.🚀</div>
</div>
<div class="description">{{ $t('_landing._hero.description') }}</div>
<div class="buttons">
<a class="start" href="#gettingStarted">{{ $t('_landing._hero.gettingStarted') }}</a>
<a class="more" href="#learnMore">{{ $t('_landing._hero.learnMore') }}</a>
</div>
</div>
</template>
<script setup lang="ts">
import MkLogo from '@/assets/svg/misskey-logotype.svg';
</script>
<style scoped>
</style>

85
content/en-US/README.md Normal file
View File

@ -0,0 +1,85 @@
---
layout: Landing
description: "Misskey is an open source, decentralized social media platform that's free forever!"
gettingStarted: "Get started!"
learnMore: "Learn more"
keyFeatures:
open:
title: "Open"
description: "Misskey is open source software that anyone can contribute to and everyone can use for free whenever and wherever."
federated:
title: "Federated"
description: "Misskey is a decentralized platform, so communities on different instances can connect with each other."
multifunction:
title: "Powerful"
description: "Misskey is both easy to understand for beginners and has powerful features for advanced users."
customizable:
title: "Customizable"
description: "Make Misskey yours! With themes, widgets, layouts, and more, you make make Misskey just the way you like it."
sections:
federatedSoftware:
title: "Misskey is a <b data-marker>decentralized</b> platform."
description: "Misskey is just a platform for server owners to make their own instances of Misskey, and they can all talk to each other! There's large instances for the masses, smaller ones for groups, fandoms, and subcultures, and even instances just for individuals and their friends. Want to have even more control? You can make your own instance on your server with relative ease, cutting ties from any large company who wants to spy on you and sell your data. Misskey is about community and sharing, not corporations and big tech. Have friends not on Misskey? No problem! Because Misskey is on the Fediverse (ActivityPub), you can interact with people on other platforms like Mastodon, PixelFed, PeerTube, and more!"
features:
title: "Features"
description: "Misskey has a wide variety of unique features!"
list:
note:
title: "Note"
description: "On Misskey, posts from users are called \"notes\". Reply, quote, add custom emojis, animated text, content warnings, attach multiple images, videos, GIFs, audio clips, or anything else!"
reaction:
title: "Reactions"
description: "You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button."
theme:
title: "Theme"
description: "Why be limited by just a Light or Dark theme when you can change all the colors? Use Misskey's intuitive theming functions to make Misskey just how you like it."
charts:
title: "Charts"
description: "For those who need to see everything, Misskey has powerful charts for both users and admins to see what exactly is going on in your instance in real time."
federation:
title: "Federation"
description: "Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!"
drive:
title: "Drive"
description: "Hate not being able to find something you uploaded? With Drive, you get managed and powerful cloud storage right in your social media!"
thread:
title: "Threads"
description: "Have a lot on your mind? Make a thread! Each post can have up to 3,000 characters by default, and you can keep the conversation going for hours."
widgets:
title: "Widgets"
description: "Have everything at your fingertips with over a dozen customizable widgets!"
gettingStarted:
title: "Join Misskey today!"
find:
title: "Find an instance!"
list: "List of instances"
create:
title: "Make your own instance"
guide: "Setup guide"
docs:
title: "Learn more"
docs: "See docs"
donation:
title: "Donation"
description: "Because Misskey is a non-profit, we rely on your donations to fund our development. If you like Misskey, please consider donating so that we can continue to make Misskey awesome for years to come!"
sponsors:
title: "Sponsors"
---
<!--
<style>
.ai {
display: none;
}
.screenshot.desktop {
content: url("/screenshot-desktop-en.png");
}
.screenshot.mobile {
content: url("/screenshot-mobile-en.png");
}
.widgets {
content: url("/top-features-widgets-en.png");
}
</style>
-->

View File

@ -0,0 +1,51 @@
---
description: 'collection of Misskey logos, icons, and other assets.'
---
# Assets collection
This is a collection of Misskey logos, icons, and other assets.
::: tip
These assets are free to use under the **CC BY-NC-SA** license!🎉
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="CC BY-NC-SA" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
:::
::: tip
All assets are managed in [misskey-dev/assets](https://github.com/misskey-dev/assets).
:::
## Logo
<a class="asset" href="https://raw.githubusercontent.com/misskey-dev/assets/main/misskey.svg" target="_blank" download>
<img src="https://raw.githubusercontent.com/misskey-dev/assets/main/misskey.svg">
</a>
## Icon
<a class="asset" href="https://raw.githubusercontent.com/misskey-dev/assets/main/icon.png" target="_blank" download>
<img src="https://raw.githubusercontent.com/misskey-dev/assets/main/icon.png">
</a>
<style>
.asset {
display: block;
background-color: #777;
background-image:
linear-gradient(45deg, #999 25%, transparent 25%),
linear-gradient(135deg, #999 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #999 75%),
linear-gradient(135deg, transparent 75%, #999 75%);
background-size: 25px 25px; /* Must be a square */
background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; /* Must be half of one side of the square */
animation: asset-bg 0.5s linear infinite;
margin: 1em 0;
padding: 16px;
text-align: center;
}
@keyframes asset-bg {
0% {background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px;}
100% {background-position: 12.5px 12.5px, 25px 12.5px, 25px 0px, 12.5px 25px;}
}
</style>

View File

@ -0,0 +1,17 @@
# Set up a CDN
When publishing your Misskey instance, we strongly recommend using a CDN such as [Cloudflare](https://www.cloudflare.com/).
Using a CDN has the following advantages
- You can have static content cached, which reduces the load on your server
- The IP address of the server is less exposed, which can mitigate DoS attacks etc.
## Caching
Misskey Web is completely static and does not require a server to run. Therefore the whole Misskey Web can be cached in a CDN.
The Misskey API cannot be cached.
You need to configure the following settings in your CDN
- Cache all requests except `/api/*`.
::: tip
You don't need to clear the cache when you update Misskey.
::::

View File

@ -0,0 +1,2 @@
# Changing the default Reaction
You can change the default reaction that is used when an ActivityPub "Like" is received from '👍' to '⭐' by changing the boolean value `meta.useStarForReactionFallback` in the databse respectively.

View File

@ -0,0 +1,111 @@
# Managing Custom Emoji
Custom emoji can be managed by administrators or moderators by going to the instance settings and then the custom emoji submenu.
By default you will see a list of the current locally installed emoji.
At the start this list will be empty, but you can add custom emoji in different ways.
## Copying Emoji from another Instance
Emoji can be easily copied from another instance.
To do this, switch to the "remote" tab in the custom emoji settings.
You can search emoji by name and/or host they are from.
When you have found an emoji you want, click it to open a small menu which will allow you to import the emoji.
Please note that Emoji may be subject to copyright and you are responsible for checking whether you may legally use another emoji.
## Individual Emoji Import
If you have an image file that you would like to turn into a custom emoji you can import the image as an emoji.
This works just like attaching files to a note:
You can choose to upload a new file, pick a file from your Misskey drive or upload a file from another URL.
::: danger
When you import emoji from your drive, the file will remain inside your drive.
Misskey does not make a copy of this file so if you delete it, the emoji will be broken.
:::
The emoji will be added to the instance and you will then be able to edit or delete it as usual.
## Bulk Emoji import
Emojis can be imported in bulk as packed ZIP files with a special format.
This ability can be found in the three dots menu in the top right corner of the custom emoji menu.
::: warning
Bulk emoji import may overwrite existing emoji or otherwise mess up your instance.
Be sure to only import emoji from trusted sources, ideally only ones you exported yourself.
:::
### Packed emoji format
At the top level is a file called `meta.json` which contains information about the emoji contained in the packed file.
A type definition for this file would look like this, where `Meta` is the structure of the whole file.
```typescript
class Meta {
metaVersion: number;
host: string;
/**
* Date and time representation returned by ECMAScript `Date.prototype.toString`.
*/
exportedAt: string;
emojis: Emoji[];
}
class Emoji {
downloaded: boolean;
fileName: string;
emoji: {
id: string;
updatedAt: string;
name: string;
host: null;
category: string;
originalUrl: string;
publicUrl: string;
uri: null;
type: string;
aliases: string[];
};
}
```
The fields of `Meta` are currently not used or checked when importing emoji, except for the `emojis` field.
For each `Emoji`:
- `downloaded`: should always be true. If the field is missing or not truthy, the emoji will not be imported.
- `fileName`: name of the image file inside the packed file.
- `emoji`: data associated with the emoji as it was stored in the database. Currently most of these fields are
not even checked for existence. The following are currently used:
- `name`: name of the emoji for the user, e.g. `blobfox` if a user should type in `:blobfox:` to get the emoji.
If a previous emoji with the same name exists, it **will be overwritten**!
- `category`: category of the emoji
- `aliases`: list of strings that should be added as aliases. The admin UI calls these "tags".
## Editing and Deleting Emoji
The properties of an emoji can be edited by clicking it in the list of local emoji.
When you click on a custom emoji, a dialog for editing the properties will open.
This dialog will also allow you to delete an emoji.
::: danger
When you delete a custom emoji, old notes that contain it will still have the text name of the emoji in it.
The emoji will no longer be rendered correctly.
:::
Note that remote emoji can not be edited or deleted.
Each emoji can have a name and a category and several tags.
The category is used for structuring the emoji picker.
Meanwhile the tags can be used as alternate names by which the emoji can be found when searching in the emoji picker.
When you are done editing, save your changes by clicking the check mark in the top right corner of the dialog.
### Bulk Editing
Emoji can be edited in bulk by checking the box below the search field.
With this enabled, clicking on an emoji will select it instead of opening the editing dialog.
The Editing options will be displayed as buttons below the checkbox.
To return to the normal behaviour just uncheck the box again.

View File

@ -0,0 +1,87 @@
# Nginx configuration
1. Create `/etc/nginx/conf.d/misskey.conf` or `/etc/nginx/sites-available/misskey.conf` and copy the following example to the file.\
(The file name does not have to be "misskey".)
2. Edit as follows:
1. Replace example.tld with the domain you have prepared.\
`ssl_certificate` and `ssl_certificate_key` should be the path to the certificate obtained from Let's Encrypt.
2. If using a CDN such as Cloudflare, remove 4 lines from "If it's behind another reverse proxy or CDN, remove the following."
3. If you create `/etc/nginx/sites-available/misskey.conf`, create symlink as `/etc/nginx/sites-enabled/misskey.conf`.\
`sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf`
4. Run `sudo nginx -t` to verify that the configuration file will be loaded successfully.
5. Run `sudo systemctl restart nginx` to restart nginx.
# Nginx config example
```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,6 @@
# How to use GitHub Actions to push to Docker Hub
::: warning
Sorry, this page is not translated yet. If you can, please edit this page to translate the [Japanese version](/docs/admin/push-docker-hub.md).
Until then, try using a machine translator.
:::

View File

@ -0,0 +1,7 @@
# Troubleshooting guide
::: warning
Sorry, this page is not translated yet. If you can, please edit this page to translate the [Japanese version](/docs/admin/troubleshooting.html).
Until then, try using a machine translator.
:::

View File

@ -0,0 +1,73 @@
---
description: MiAuth導入以前のアクセストークン取得方法について説明する。
---
# アプリ作成方式でのアクセストークン取得方法
MiAuth導入12.27.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,40 @@
{
refs: {},
errors: {
'1384574d-a912-4b81-8601-c7b1c4085df1': {
id: '1384574d-a912-4b81-8601-c7b1c4085df1',
code: 'CREDENTIAL_REQUIRED',
description: 'Credential-required endpoint requested without credentials.',
},
'd5826d14-3982-4d2e-8011-b9e9f02499ef': {
id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
code: 'RATE_LIMIT_EXCEEDED',
description: 'Temporarily unavailable due to rate limit restrictions.',
},
'56f35758-7dd5-468b-8439-5d6fb8ec9b8e': {
id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e',
code: 'ACCESS_DENIED',
description: 'You do not have access privileges.',
},
'1370e5b7-d4eb-4566-bb1d-7748ee6a1838': {
id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838',
code: 'PERMISSION_DENIED',
description: 'The given credential does not have the required permissions.',
},
'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': {
id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370',
code: 'YOUR_ACCOUNT_SUSPENDED',
description: 'Unavailable due to your account has been suspended.',
},
'3d81ceae-475f-4600-b2a8-2bc116157532': {
id: '3d81ceae-475f-4600-b2a8-2bc116157532',
code: 'INVALID_PARAM',
description: 'The request contains incorrect parameters.',
},
'5d37dbcb-891e-41ca-a3d6-e690c97775ac': {
id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac',
code: 'INTERNAL_ERROR',
description: 'Internal error occurred. Please contact the administrator if the error persists.',
},
},
}

View File

@ -0,0 +1,126 @@
---
description: 'Misskey exposes an API that you can use to develop Misskey clients, Misskey-connected web services, bots, etc. ("Applications").'
---
# Misskey API
Misskey exposes an API that you can use to develop Misskey clients, Misskey-connected web services, bots, etc. ("Applications").
We also have a streaming API, so you can create applications with real-time capabilities.
::: tip
By using the official Misskey SDK or third party libraries, you can use the API more conveniently, for example by simplifying some of the steps described in this document.
See [here](TODO) for more information about libraries.
:::
To start using the API, you will need to obtain an **access token** associated with the account you wish to use the API with.
This document will walk you through the process of obtaining an access token and then show you how to use the API in a basic way.
## Getting an access token
The API generally requires an access token to make a request.
An access token is a set of credentials associated with a user, which identifies the user using the API and controls what operations each access token is authorised to perform.
::: tip
There is a one-to-many relationship between a user and the access token associated with that user, and multiple access tokens can be issued for a given user.
:::
You can easily [obtain an access token for yourself](#Manually-issue-an-access-token), or you can [obtain an access token for an user who will be using your application](#Request-an-access-token-to-be-issued).
### Manually issue an access token
You can issue your own access token in Misskey Web under 'Settings > API'.
::: danger
Please do not share your access token with anyone.
:::
### Request an access token to be issued
To obtain an access token for a user of the application ( simply "the user"), you can request it to be issued in the following way.
::: tip
The method described below is called MiAuth, ant it issues an instant access token without creating an app.
You can still [create an app to obtain access token](./app.md).
:::
#### Step 1
Generate a UUID. This will be referred to as the **session ID** from now on.
::: danger
This session ID should be generated each time and should not be reused.
:::
#### Step 2
The application authentication form should be displayed in the user's browser. The authentication form can be opened with a URL similar to this:
```:no-line-numbers
https://{host}/miauth/{session}
```
where
- `{host}` is the host of the user's instance (usually this is entered by the user) and
- `{session}` is the session ID.
You can also set a few options as query parameters to the URL:
| name | description |
| ---- | ---- |
| `name` | application name |
| `icon` | application icon image URL。 |
| `callback` | The URL to which the user will be redirected after authentication, with the session ID added to the redirect with the query parameter `session`. |
| `permission` | The permissions that the application requires. <br>List the permissions to be requested, separated by `,`. The list of permissions can be found [here](TODO). |
::: tip Example
```:no-line-numbers
https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive
```
:::
#### Step 3
After the user has been granted application access, a POST request to a URL of the following form will return JSON containing the access token as a response.
```:no-line-numbers
https://{host}/api/miauth/{session}/check
```
where
- `{host}` is the host of the user's instance and
- `{session}` is the session ID.
The properties included in the response are as follows:
| name | description |
| ---- | ---- |
| `token` | access token for the user |
| `user` | information about the user |
## Using the API
Once you have your API access token, you can use the API by making requests to the various endpoints.
::: tip
- All HTTP APIs are POST, and both request and response are in JSON format (excluding drive/files/create).
- Specify `Content-Type: application/json` in the request header.
- The access token is included in the request body JSON with the parameter name `i`.
:::
Example of a body with an access token (for meta):
```json
{
"i": "HogEFugA1341",
"detail": false
}
```
The access token is included in the request body JSON at the parameter `i`.
For more information on the API, see the [API Reference](./endpoints.html).
::: warning
Misskey does not use REST.
:::
In addition to the HTTP API, Misskey also provides a streaming API. More information about the streaming API can be found [here](./streaming/).
::: tip
Your Misskey instance also provides API documentation at `/api-doc`.
:::

View File

@ -0,0 +1,20 @@
---
description: "Channel where nots from the global timeline are streamed."
---
# `globalTimeline`
Channel where nots from the global timeline are streamed.
## Parameters
none
## Events
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a new note is added to the global timeline.
## Operations
none

View File

@ -0,0 +1,20 @@
---
description: "Channel where nots from the home timeline are streamed."
---
# `homeTimeline`
Channel where nots from the home timeline are streamed.
## Parameters
none
## Events
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a new note is added to the home timeline.
## Operations
none

View File

@ -0,0 +1,20 @@
---
description: "Channel where nots from the social timeline are streamed."
---
# `hybridTimeline`
Channel where nots from the social timeline are streamed.
## Parameters
none
## Events
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a new note is added to the social timeline.
## Operations
none

View File

@ -0,0 +1,3 @@
# Channel list
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,20 @@
---
description: "Channel where nots from the local timeline are streamed."
---
# `localTimeline`
Channel where nots from the local timeline are streamed.
## Parameters
none
## Events
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a new note is added to the local timeline.
## Operations
none

View File

@ -0,0 +1,93 @@
---
description: "This channel provides basic information."
---
# `main`
This channel provides basic information.
## Parameters
none
## Events
### `notification`
<MkSchemaViewer :schema="{
$ref: 'misskey://Notification'
}"/>
Occurs when you receive a notification.
### `mention`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a message is sent.
### `reply`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when a reply is received.
### `renote`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Occurs when one of your notes is renoted.
### `follow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Occurs when you follow another user.
### `followed`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Occurs when another user follows you.
### `unfollow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Occurs when you unfollow another user.
### `messagingMessage`
<MkSchemaViewer :schema="{
$ref: 'misskey://MessagingMessage'
}"/>
Occurs when a chat message is received.
### `readAllNotifications`
Occurs when all notifications have been read.
### `unreadNotification`
Occurs when there is a new notification.
### `unreadMention`
Occurs when there is a new mention.
### `readAllUnreadMentions`
Occurs when all mentions have been seen.
### `unreadSpecifiedNote`
Occurs when there is a new direct note.
### `readAllUnreadSpecifiedNotes`
Occurs when all direct notes have been read.
### `unreadMessagingMessage`
Occurs when there is a new chat message.
### `readAllMessagingMessages`
Occurs when all chat messages have been read.
## Operations
none

View File

@ -0,0 +1,194 @@
---
description: 'The streaming API provides real-time information (e.g., new posts in the timeline, reactions, followers, etc.) and various other operations.'
---
# Streaming API
::: tip
You should read the [Misskey API documentation](../index.md) first.
:::
The streaming API provides real-time information (e.g., new posts in the timeline, reactions, followers, etc.) and various other operations.
## Connecting to the stream.
To use the streaming API, you have to connect to the Misskey server using **websocket**.
The websocket URL looks like this:
```:no-line-numbers
wss://{host}/streaming?i={token}
```
where
- `{host}` is the host of the instance you want to connect to.
- `{token}` is the users access token.
::: tip
You can also connect without the access token, but this will limit the information you receive and operations you can perform.
:::
Once you are connected to the stream, you can subscribe to posts as described below, but at this stage you cannot, for example, receive new posts from your timeline.
To receive such events, you need to join a **channel** on the stream, as described below.
**All data should be encoded as JSON.**
## Channel
Misskey's streaming API has the concept of channels. This is a mechanism for separating the information to be sent and received.
By joining channels on the stream, you will be able to receive various kinds of information and send information.
::: tip
You can join multiple channels simultaneously on a single stream connection.
:::
The following sections describe how to use the channels. To see what channels are available, please refer to the [Channel List](./channel/index.md).
### Joining a channel
To join a channel, send the following JSON data on the stream:
```js
{
type: 'connect',
body: {
channel: 'xxxxxxxx',
id: 'foobar',
params: {
...
}
}
}
```
where
- `channel` is the name of the channel you want to connect to. The types of channels are described later in this section.
- `id` is an arbitrary ID for interacting with that channel. This is necessary to identify which channel the message is coming from, because a stream contains multiple channels. This ID can be something like a UUID or a random number.
- `params` are parameters required when joining a channel. Different channels require different parameters when connecting. When connecting to a channel that does not require parameters, this property can be omitted.
::: tip
The ID is not per channel but per channel connection, because a channel may be needed multiple times but with different parameters.
:::
### Receiving messages from channels
For example, a timeline channel will send out a message when there is a new post. By receiving the message, you will know in real time that a new post has been published on your timeline.
When a channel issues a message, the following JSON data is sent:
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
where
- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you know from which channel (instantiation) this message is coming.
- `type` is the type of message. The types of messages that get sent depend on the channel.
- `body` holds the content of the message. The content of the message depends on the channel.
### Sending a message to a channel
On some channels, it is also possible to send messages and perform other operations in addition to receiving messages.
To send a message to a channel, send the following JSON data to the stream:
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
where
- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you determine which channel (instantiation) the message is for.
- `type` is the type of message. Different channels accept different types of messages.
- `body` contains the content of the message. Different channels accept different message contents.
### Disconnecting from a channel
To disconnect from a channel (instantiation), send the following JSON data to the stream:
```js
{
type: 'disconnect',
body: {
id: 'foobar'
}
}
```
where
- `id` is the ID that you set when connecting to that channel as mentioned above. This lets you determine which channel (instantiation) you want to disconnect from.
## Capturing Notes
Misskey provides a mechanism called note capture. This is the ability to receive a stream of events for a given note.
For example, let's say you grab a timeline and display it to your users. Let's say someone reacts to one of the posts in the timeline.
However, since the client has no way of knowing that a note has been reacted to, it is not possible to reflect the reaction in the timeline in real time.
To solve this problem, Misskey provides a note capture mechanism. When you capture a note, you will receive events related to that note, and you can display reactions to it in real time.
The following sections describe how to use the note capture function. To see what kind of capture events are available, see the [Capture Events List](./note-capture-events.md).
### Capturing a Note
To capture a note, send the following JSON data to the stream:
```js
{
type: 'subNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
where
- `id` is the ID of the note you want to capture.
When you send this message, you are asking Misskey to capture the note, and events related to that note will then be streamed to you.
For example, when a note gets a reaction, you will see a message like the following:
```js
{
type: 'noteUpdated',
body: {
id: 'xxxxxxxxxxxxxxxx',
type: 'reacted',
body: {
reaction: 'like',
userId: 'yyyyyyyyyyyyyyyy'
}
}
}
```
where
- `body.id` will be set to the ID of the post that triggered the event.
- `body.type` will be the type of the event.
- `body.body` will contain the details of the event.
### Un-capturing a Note
If you no longer want to receive events related to a note, such as when it no longer appears on your screen, you can remove the capture request.
Send the following JSON data:
```js
{
type: 'unsubNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
where
- `id` is the ID of the note you want to uncapture.
Once you send this message, no more events related to that note will be sent to you.

View File

@ -0,0 +1,48 @@
# Note Capture Events
## `reacted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
reaction: {
type: 'string',
description: 'type of reaction',
},
userId: {
type: 'string',
description: 'ID of the user who made the reaction',
},
}
}"/>
Occurs when a reaction is made to the target note.
## `pollVoted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
choice: {
type: 'number',
description: 'choice ID',
},
userId: {
type: 'string',
description: 'ID of the user who cast the vote',
},
}
}"/>
Occurs when the survey attached to the target note is voted on.
## `deleted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
deletedAt: {
type: 'string',
description: 'deletion time',
},
}
}"/>
Occurs when the target note is deleted.

View File

@ -0,0 +1,4 @@
# Donation to this project
Misskey is not a business, and stays free to use by receiving its earnings through donations from everyone.(Depending on the instance, some revenue may be earned through showing advertisements, but these earnings go straight to the instance administrator and not to the developers of Misskey.) As donations make it possible for the project to continue to be developed, they are another way of supporting Misskey. Donations are generally accepted via [Patreon](https://www.patreon.com/syuilo). By donating a certain amount of money, you can also have your username displayed on Misskey's [About page](/about-misskey).
In addition to this, server administrators are also generally speaking not earning revenue. As operating a server costs money, please also consider supporting your server's administrator. This does not have a direct relation to the development of Misskey, but the existence of servers is what makes up the project, meaning the continued existence of servers is just about as important as that of the project itself.

28
content/en-US/docs/faq.md Normal file
View File

@ -0,0 +1,28 @@
# Frequently Asked Questions
This document will list answers to frequently asked questions regarding the usage of Misskey. Answers to frequently asked questions related to Misskey as a project can be found [here](../misskey#frequently-asked-questions).
## "Are there any apps for iOS / Android available?"
While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps).
However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo).
## "Can't I log in through a Mastodon client?"
As Misskey is not compatible with the Mastodon API, barring some exceptions, using Mastodon clients to log into Misskey is not possible.
## "What do I do when I want to follow users from other servers?"
Select the search bar from the menu and enter their username including their host server. E.g.: `@syuilo@misskey.io`
## "How do I take back a Renote?"
Press the three dots ("...") displayed next to the renote timestamp and select "Take back Renote". To read more about Renotes, please check [here](../features/note#renote).
## "I don't want the preview of an URL to be displayed."
You can prevent an URL from being previewed using MFM. Please check the MFM Cheatsheet which you can see it in your instance with typing a following URL `https://YourInstanceHostname/mfm-cheat-sheet`.
## "I want to add custom emoji."
Only administrators can add, edit or delete custom emoji. If you'd like to do either of these things, please ask your instance administrator.
## "I want to develop a Bot."
It is possible to develop a Bot using the Misskey API. Please, [see here](../docs/api).
## Which service does the note translation function use?
[DeepL](https://www.deepl.com/) is being used for this.

View File

@ -0,0 +1,13 @@
# Advertisements
Misskey can display ads in the instance timeline and other places if enabled by the instance administrator.
You can reduce how often an ad is shown by clicking in the upper right corner of it.
::: tip
If the total number of ads being shown on the instance is small then an ad may still be shown to you often even after you choose to reduce how often it is displayed.
:::
## Configuring Ads (Admins)
You can add, edit, and delete ads from the control panel of your instance.
In there you can set any image, destination URL, shape, and display percentage for the ad.

View File

@ -0,0 +1,8 @@
# Antenna
Antenna is a feature that allows you to freely set conditions for a custom timeline and automatically collect matching notes.
Antenna conditions can include conditions to include/exclude certain keywords and tags in different combinations as well as other options.
When a note matching an antenna's conditions is posted, the note will automatically be added to that antenna's timeline.
To create an antenna, click "Add" in the Manage antennas page. Then fill in the options to customize your antenna.

View File

@ -0,0 +1,72 @@
# Charts
Misskey can generate and display charts for an instance's various federated data sources.
Charts allow you to get a visual depiction of the usage, federation status, and activity of each user.
Instance charts can be viewed from the *instance information* page (accessible by clicking the instance logo in the navigation menu).
Below is a description of each chart and its contents.
## Federation Chart
This chart shows information about federated instances.
### Pub
The number of instances that this instance is publishing activities to.
### Sub
The number of instances that this instance is receiving activities from.
### Received
The number of instances that have sent an activity to this instance.
### Delivered
The number of instances that this instance has delivered an activity to.
### Stalled
The number of instances where an error was encountered when delivering an activity.
## Active Users Chart
Chart of user activity on this instance.
### Read & Write
The number of users that have read and written.
### Read
The number of users that have read.
### Write
The number of users that have written.
### < Week
The number of users with an account less than one week old.
### < Month
The number of users with an account less than one month old.
### < Year
The number of users with an account less than one year old.
### > Week
The number of users with an account older than one week.
### > Month
The number of users with an account older than one month.
### > Year
The number of users with an account older than one year.

View File

@ -0,0 +1,10 @@
# Clip
Clip is a feature that allows you to create collections of notes.
The notes can be your own or created by others.
You can create multiple clips and manage them by giving a name and description to each.
You can also choose to make your clips public to make them available to other users.
To create a clip, click "Add" from the clip management page.
To add notes to a clip, choose the "Clip" option on the note's menu. Then select the clip to add the note to.

View File

@ -0,0 +1,8 @@
# Custom Emoji
Custom Emojis are a feature that allows you to use any image provided by your instance as an emoji.
You can use them in places like notes, reactions, chat, your profile, your name, etc.
To use a custom emoji in one of those places, press the emoji picker button (if available) or type `:` to display emoji suggestions.
If a string of the form `:foo:` is found in the text, the `foo` part will be interpreted as a custom emoji name and it will be replaced by the corresponding custom emoji when displayed.
You can see which custom emojis are available on your instance by visiting `/emojis` on your instance's Misskey site.

View File

@ -0,0 +1,30 @@
# Deck UI
Deck UI is one of the available UIs in Misskey. It is characterized by the ability to build highly customizable and informative UIs by displaying multiple views, called "columns", side by side.
The deck option is only available on sufficiently large screens like a laptop computer.
## Adding Columns
You can add a column by right-clicking on the deck background and selecting "Add Column". You can also click the '+' icon on the right side of the screen.
## Move Columns
Columns can be repositioned by drag-and-drop or by using the column menu "Move" option (right-click on the column header).
## Horizontal Division of Columns
Columns can be arranged vertically as well as horizontally. Open the column's menu and select "Stack with the left column" to move the current column below the column to its left.
To unstack a column, select "Pop column to the right" from the column's menu.
## Configure Column Layout
Select "Column settings" in the column menu to edit column layout settings. Here you can change the column name and width.
If the colum is set to flexible then it will expand beyond its set width to fill remaining horizontal space on the screen.
## Deck Settings
Deck-related settings can be changed in the settings menu (click the gear icon in the bottom right of the screen.
## Deck Profiles
You can create/load a deck profile by clicking on the menu in the top right of the screen. Choose "New profile" to create a new blank deck to customize. Select another profile to switch to it. The trash button deletes the current profile.

View File

@ -0,0 +1,25 @@
# Drive
Drive is a feature that allows you to manage your files on Misskey.
::: tip
Technically speaking, the drive can be seen as an interface where all the files are centrally managed on Misskey's system, which is also open to users.
:::
You can upload any file directly on the Drive page on Misskey Web, and any images you have set as your avatar or files you have attached to your notes will also be uploaded to the Drive.
Files uploaded to the drive can be downloaded at any time, or files can be reused by using 'attach files from drive' when creating notes.
You can also create folders on your drive to organize multiple files together.
::: warning
At the moment, when you delete a file from your drive, **all the content (notes, pages, etc.)** attached to that file will also be deleted.
:::
## Warning (NSFW)
Warning or NSFW (Not safe for work) is a flag that can be set on files in your drive.
Files that have been flagged as unsafe to view will not be displayed without user interaction.
This flag can be used, for example, to prevent images that are not suitable for viewing in the workplace or in public places from suddenly appearing.
This flag can be toggled on and off manually, or it can be set at a moderator's discretion.

View File

@ -0,0 +1,7 @@
# Favorites
This function allows you to mark a [note](./note) as a favorite.
You can view your favorited notes on the [Favorite](./my/favorites) page.
Other users will not be notified that you have added their note to your favorites, and only you can see your favorites.
To favorite a note, press "Add to favorites" in the note's menu. To un-favorite a note, click "Remove from favorites" in the note's menu.

View File

@ -0,0 +1,5 @@
# Follow
When you follow a user, you will see their posts on your home timeline; however, their replies to other users will not be included.
To follow a user, click the "Follow" button on the user's profile page. To unfollow a user, click the button again.

View File

@ -0,0 +1,3 @@
# Functions
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,72 @@
---
description: 'MFM is a dedicated markup language that can be used in various places on Misskey.'
---
# MFM
MFM, which stands for Misskey Flavoured Markdown, is a dedicated markup language that can be used in various places on Misskey.
::: tip
Some of the syntax is compatible with Markdown.
:::
## examples of where misskey is allowed
- note body
- content warnings
- user name
- user profile
## Syntax
### Mentions
::: tip
For more information about Mentions, see [here](./mention.md).
:::
```:no-line-numbers
@alice
```
```:no-line-numbers
@alice@example.com
```
### Hashtags
::: tip
For more information about hashtags, see [here](./hashtag).
:::
```:no-line-numbers
#misskey
```
### Custom Emoji
::: tip
For more information about custom emoji, see [here](./custom-emoji).
:::
```:no-line-numbers
:misskey:
```
### Links
```:no-line-numbers
[example link](https://example.com)
```
### Bold
```:no-line-numbers
**Bold**
```
---
::: tip
More available syntax can be found in the **MFM cheat sheet** provided by the Misskey web UI under `/mfm-cheat-sheet` on your instance.
:::
## Information for Developers
The parser implementation of MFM is available as a library, making it easier to embed MFM in your clients.
- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - parser implementation in JavaScript

View File

@ -0,0 +1,56 @@
# Muting and Blocking
If you don't like a user, you can mute them to make them disappear from your timelines.
Alternatively, you can block a user to prevent them from seeing your content or engaging with you in any way.
People won't know that you have muted them, but they will know that you have blocked them. It is up to you to decide which option you prefer.
::: tip
Mute and block can be used together.
:::
::: warning
Please consider reporting any users who violate the Terms of Service to the moderators.
:::
In Misskey Web, you can see the list of users you have muted or blocked by going to Settings > Mute & Block.
## Muting
If you mute a user, the following content about that user will no longer appear in Misskey:
- the user's posts (and replies and Renotes to those posts) in the timeline and post search results
- notifications from that user
- message history with the user in Misskey chat
- etc.
To mute a user in Misskey Web, open the menu on the user's profile page and press the "Mute" button.
::: tip
They will not be notified that you have muted them, and they will not know that you have muted them.
:::
## Blocking
If you block a user, they will not be able to see your content and they will not be able to do any the following actions:
- follow you
- add you to a user list
- reply or renote you
- react or vote in one of your polls
- send a message to you
- etc.
Also,
- if the user is already following you when you block them, they will unfollow you
- if the user has you in their user lists when you block them, you will be removed from those lists
To block a user on Misskey Web, open the menu on the user's profile page and press the "Block" button.
::: warning
You will not be notified that you have been blocked by someone, but you will know indirectly that you have been blocked because you will not be able to take any of the above actions, such as following someone.
:::
::: warning
The other person will not be able to see your content, but they will be able to see it if they switch accounts or log out. Blocking is only a simple, but useful feature.
You can change your privacy settings in Settings > Privacy to make it more difficult for blocked users to view your content by requiring approval for follow requests and setting your default note visibility to "Followers".
:::

View File

@ -0,0 +1,83 @@
# Notes
Notes are a central concept within Misskey, and refer to content that may include text, images, polls and more that has been posted to Misskey. In this context, "to note" is also used as a verb referring to the creation of a note.
By composing a note, it will be added to the [timeline](./timeline) and sent to your followers and other users from your server.
On Misskey, it is also possible to add [Reactions](./reaction) to notes. Additionally, you can reply to or quote notes.
By adding a note to your [Favorites](./favorite), you can easily find it at a later point in time.
## Composing Notes
To compose a note, press one of the buttons with a pencil icon on your screen to open the posting form (either at the top of your timeline or at the bottom of the navigation menu). Enter the content you want to post in the form, and press the "Note" button to publish it. Notes can contain text, files such as images or videos, and [Polls](./poll). In addition, by using [MFM](./mfm) within your text, you can include [Mentions](./mention) and [Hashtags](./hashtag). There are also other settings such as CW (Content Warning) or note visibility that are explained below.
::: tip
If you are on a computer and have an image saved in your clipboard, you can attach it to your note by using the usual paste keyboard shortcut within the text box.
:::
::: tip
You can also press <kbd class="key">Ctrl + Enter</kbd> within the text box to publish your note.
:::
## Renote
The act of quoting an existing note or sharing an existing note. The note created as a result of these acts are all called a Renote/RN (or "renoting" as verb). Most of the time, this is used when you want to share a note you like to your own followers, or when you want a share a note that you posted in the past once more. While it is possible to renote the same note multiple times, please be aware that doing so may be seen as annoying by others.
::: warning
If you've set your note's visibility to Followers-only or Direct, then others will not be able to renote it.
:::
To take back a renote, press the "..." next to the renote timestamp and select "Take back Renote".
## CW
An abbreviation of "Content Warning", resulting in the content of a note being hidden unless explicitly requested to be shown by a viewing user. It is mainly used to hide the content of long notes or to prevent posting spoilers publicly. To enable CW for a note, press the "Hide content" button (eye icon) in the post form. By doing so a new text input area will appear, where you can write a summary of the content hidden by the CW.
## Visiblility
It's possible to individually set where your note will be visible (Visibility) for each of your notes. By pressing the icon to the left of the "Note" button in the post form, you can choose from the visibility settings listed below.
### Public
Your note will be visible to all users and will show up on all timelines (home, local, social, global).
::: warning
This visibility will be unavailable if your account is <a href="./silence">silenced</a>.
:::
### Home
Your note will be visible to all users, but will not show up on the local, social or global timeline for non-followers.
### Followers
Your note will only be visible to those that are following you. The note will show up on all timelines of your followers.
### Direct
Your note will only be visible to individually specified users. The note will show up on all timelines of the specified users.
### The "Local only" option
If you enable this option, your note won't be federated to remote instances.
### Visibility comparison
<table>
<tr><th></th><th>Public</th><th>Home</th><th>Followers</th><th>Direct</th></tr>
<tr><th>LTL/STL/GTL of Followers</th><td></td><td></td><td></td><td></td></tr>
<tr><th>LTL/STL/GTL of Others</th><td></td><td></td><td></td><td></td></tr>
</table>
## Pin to profile
By pinning a note to your profile it will be constantly displayed on your profile page. To pin a note, open the note menu and press "Pin to profile".
::: tip
It's possible to pin multiple notes to your profile.
:::
## Watch
You can get notifications for replies, reactions etc. for a note that is not yours by watching it. To watch a note, select "Watch" from the note's menu.

View File

@ -0,0 +1,39 @@
# Online Status
A user's **online status** is an indication of their Misskey usage status.
Your online status is displayed as an indicator in the corner of the user icon on your user page and elsewhere.
<table>
<tr>
<th>Colour</th>
<th>State</th>
<th>Description</th>
</tr>
<tr>
<td>🟢 green</td>
<td>online</td>
<td>Misskey is being used right now.</td>
</tr>
<tr>
<td>🟡 yellow</td>
<td>active</td>
<td>The user is absent but Misskey is still being used.</td>
</tr>
<tr>
<td>🔴 red</td>
<td>offline</td>
<td>Misskey is not used.</td>
</tr>
<tr>
<td>⚫ grey</td>
<td>unknown</td>
<td>The status is private or not available for remote users etc.</td>
</tr>
</table>
Your online status will change automatically and cannot be set manually.
You can set your online status to be private.
::: warning
Some features, such as user suggestions, may be based on online status, so making your status private may make it harder for other users to find you.
:::

View File

@ -0,0 +1,52 @@
# Pages
Misskey Pages are a feature where you can create custom web pages. In them you can include different types of media and formatting. and even run programming scripts. Like with many other areas of Misskey, you can format your content using [MFM](./mfm.md).
Pages in Misskey are composed of different types of Blocks, and the blocks can be moved around using drag-and-drop.
## Content Blocks
Content blocks display different types of content to the user.
### Section
A grouping block that can contain other blocks. Each content block has a title that it will display at its top.
### Text
Displays text content to the user. The text content can be formatted and can include variables interpolation (See Variables below).
### Images
Displays an image that you can select from your drive.
### Text Area
Displays text in a text area tag. This block does not support MFM but variable interpolation is allowed.
### Embedded Note
TODO
### Canvas
TODO
## Input Blocks
Input blocks can be used to create interactive pages with form elements. These blocks can be used to interact with the variables and scripts in a page.
## Special Blocks
Special blocks provide unique features for your page. This includes a note posting form and page control flow.
## Variables
Variables can be used to create dynamic pages. You can embed the value of a variable by writing <b>{ variable name }</b> in the text. For example, in <b>Hello { thing } world!</b>, if the value of the variable (thing) was <b>ai</b>, then the text would become <b>Hello ai world!</b>.
Variables are evaluated from top to bottom, so you cannot refer to a variable defined below you in a given variable. For example, if there are three variables, <b>A, B, C</b>, that are defined in that order, <b>A</b> and <b>B</b> can be referenced inside of <b>C</b>'s definition; however, <b>B</b> and <b>C</b> cannot be referenced inside of <b>A</b>'s.
To receive input from the user, place an "Input" block on the page and set the "Variable Name" to the name of the variable in which you want to store the value (the variable will automatically be created by the block).
The variable can the be used to perform actions in response to user input.
Functions can be used to encapsulate value calculations in a reusable form. To create a function, create a variable of type "Function". A function can have slots (arguments), and the values of the slots are available as variables within the function. There are also functions called higher-order functions that take another function as an argument. Functions can be predefined or instantiated in-line in slots of such higher order functions.

View File

@ -0,0 +1,5 @@
# Plug-ins
Misskey Web has a plugin facility that allows users to extend the functionality of Misskey Web.
For information on how to create a plugin, see [this document](./advanced/create-plugin.md).

View File

@ -0,0 +1,29 @@
# Reaction
This feature allows you to easily convey your reactions to other people's notes by adding emojis.
To react in Misskey Web, click the + icon on the note to show the picker and select an emoji.
You can also react using [custom emoji](./custom-emoji.md).
## Customising the Reaction Picker
In Misskey Web you can choose which emojis should appear in the picker and change the order they should appear in.
You can set this in the "Reactions" section of the settings.
## Reactions to Remote Posts
Since Reactions are an original Misskey feature, most of the time the activity will be sent to other instances as a "Like" unless the remote instance supports them.
Usually, ActivityPub's "Like" is implemented as a favorite.
## Reactions from remote instances
Since Misskey does not have likes, a "Like" from a remote instance will be displayed as a '👍' reaction.
::: tip
Your instance administrator may change this to be displayed as a '⭐' reaction.
If you are an admin, see [here](../admin/default-reaction.md).
:::
## See a list of all your reactions
In Misskey Web, you can see the list of all the reactions you have made by opening the "Reactions" tab on your profile page.
You can also choose to make this list public in the settings.

View File

@ -0,0 +1,58 @@
# Share Form
When you open `/share` in Misskey Web, you open a sharing submission form. This sharing form is useful if you want users to share the content of your page with Misskey from an external web page.
You can specify a number of options in the URL, including the shared content, as a query parameters.
## Query Parameters
::: tip
All parameters are **optional**.
:::
| name | description |
| ---- | ---- |
| `title` | title, will be inserted before the main body in brackets |
| `text` | main body |
| `url` | URL, inserted after the main body |
### Reply Information
You can make the note being composed a reply to a given note by specifying one of the following.
| name | description |
| ---- | ---- |
| `replyId` | ID of the note you are replying to |
| `replyUri` | URL to reply to (specify the remote note object) |
### Renote Information
You can make the note being composed a renote of a given note by specifying one of the following.
| name | description |
| ---- | ---- |
| `renoteId` | ID of the note to renote |
| `renoteUri` | URL of the note to renote (specify the remote note object) |
### Publication Scope
The following options allow to select a scope.
| name | description |
| ---- | ---- |
| `visibility` | one of `public`, `home`, `followers`, `specified` |
| `localOnly` | 0(false) or 1(true) |
| `visibleUserIds` | target user IDs |
| `visibleAccts` | target user [acct](../glossary.md#acct)s (comma separated) |
::: warning
If `visibility` is set to `specified`, either `visibleUserIds` or `visibleAccts` must be set too.
:::
### Attachments
You can specify attachments with the following options.
| name | description |
| ---- | ---- |
| `fileIds` | IDs of files to be attached (comma separated) |

View File

@ -0,0 +1,9 @@
# Silence
Silence is one of the states that an account can be set to.
When your account is silenced, you cannot set the visibility of your notes to Public.
Home, Followers, and Direct are still selectable, so even if your account is silenced, followers and direct visitors to your page will still be able to view your posts.
They will just not be able to view them in the GTL (Global Timeline) or LTL (Local Timeline).
The silence status of an account is set by the instance moderators.

View File

@ -0,0 +1,83 @@
# Theme
You can change the look and feel of the Missky client by applying a theme.
## Theme Settings
Settings > Themes
## Creating a Theme
The theme object code is written using JSON5.
The theme has an object type like the one shown below.
``` 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` ... Unique theme ID. A UUID is recommended.
* `name` ... Theme name
* `author` ... Theme author
* `desc` ... Theme description (Object)
* `base` ... light or dark theme
* Use `light` for a light theme and `dark` for a dark theme.
* The theme inherits the base theme that is set here.
* `props` ... Theme style definition. Explained in the following sections.
### Theme Style Definition
Define the theme style within the `props`.
The keys are the names of CSS variables, and the values specify the contents.
Furthermore, this `props` object inherits from the base theme.
The base theme is [_light.json5] if the `base` of this theme is `light` and [_dark.json5] if `dark`.
That is, if there is no `props` key named `panel` in this theme, then it is set to the `panel` in the base theme.
[_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
#### Value Syntax
* Colors expressed with hexadecimal
* example: `#00ff00`
* Colors expressed with `rgb(r, g, b)` format
* example: `rgb(0, 255, 0)`
* Colors that contain alpha/transparency values expressed with `rgb(r, g, b, a)` format
* example: `rgba(0, 255, 0, 0.5)`
* Other key value reference
* `@{key name}` is a reference to the value of another key. Replace `{key name}` with the name of the key you wish to reference.
* example: `@panel`
* Constant (discussed below) reference
* `${constant name}` is a reference to a constant. Replace `{constant name}` with the name of the constant you with to reference.
* example: `$main`
* Functions (discussed below)
* `:{関数名}<{引数}<{色}`
#### Constants
Constants are useful when you have values that you do not want to output as CSS variables, but want to use as values for other CSS variables."I don't want to output it as a CSS variable, but I do want to use it as a value for other CSS variables.
#### Functions
WIP

View File

@ -0,0 +1,15 @@
# Thread mute
::: tip
This feature is available since version 12.95.0.
:::
Thread Mute mutes the thread of a given note. This includes all replies connected to the uppermost note.
If you mute a thread, you will no longer be notified of new replies to that thread, nor will any of the replies mention you.
To mute a thread in Misskey Web, open the menu of any note belonging to the thread in question or the note from which it originated and select 'Mute Thread'.
::: warning
The entire thread will be muted, regardless of which note in the thread the mute operation is performed from.
:::

View File

@ -0,0 +1,43 @@
# Timeline
The timeline displays [notes](.note) in reverse chronological order.
There are different types of timelines as shown below, and the notes displayed differ depending on the type.
Note that some types of timelines may be disabled by the instance.
## Home
Posts by users you are following will be displayed. Abbreviated as HTL.
## Local
All local users' posts that do not have the visibility of "Home" will be shown. Abbreviated as LTL.
## Social
Posts of users you are following and all local users's posts that do not have the visibility of "Home" will be shown. Abbreviated as STL. Think of it as STL = HTL + LTL.
## Global
All local users' posts that do not have the visibility of "Home" and all remote users' posts that do not have the visibility of "Home" that reach the server. Abbreviated as GTL.
## Custom Timelines
Misskey has other features where you can create timelines with more granularity. See [Lists](./list.md) and [Antennas](./antenna.md) for details.
## Comparison
| Source | | | Timeline | | |
|-----------------------|------------|--------|---------|------------|------------|
| User | Visibility | Home | Local | Social | Global |
| Local (Followers) | Public | ✔ | ✔ | ✔ | ✔ |
| | Home | ✔ | | ✔ | |
| | Followers | ✔ | | ✔ | |
| Remote (Followers) | Public | ✔ | | ✔ | ✔ |
| | Home | ✔ | | ✔ | |
| | Followers | ✔ | | ✔ | |
| local (Non-followers) | Public | | ✔ | ✔ | ✔ |
| | Home | | | | |
| | Followers | | | | |
| Remote (Non-followers)| Public | | | | ✔ |
| | Home | | | | |
| | Followers | | | | |

View File

@ -0,0 +1,154 @@
# Webhook
::: tip
This feature is available as of Misskey version 12.109.0.
:::
::: warning
This is an experimental feature and may be unstable or subject to change in the future.
:::
Misskey provides a webhook which allows you to receive various events from Misskey in real time.
You can manage your webhooks by going to Settings > Webhook.
Once a webhook is registered, an HTTP request is sent to the specified URL each time the specified event occurs. The request method will be POST and contain JSON in its body.
In addition, the request header will contain the secret that was set during registration with the name `X-Misskey-Hook-Secret`. You can use this secret to verify that the request is legitimate.
The payload wil contain the following properties.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
hookId: {
type: 'string',
description: 'Webhook ID',
},
userId: {
type: 'string',
description: 'User ID of webhook creator',
},
eventId: {
type: 'string',
description: 'Event ID',
},
createdAt: {
type: 'integer',
description: 'Date and time of event occurrence (UNIX time, ms)',
},
type: {
type: 'string',
description: 'Event type',
},
body: {
type: 'object',
description: 'Event payload',
},
}
}"/>
If the destination server returns a 5XX error or does not respond, the request is resent after a time delay.
Webhooks can individually have their active status changed from the administration screen to temporarily stop sending requests.
## Event
The following is a description and payload for each event type.
### follow
Occurs when you follow someone.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'User that is followed',
},
}
}"/>
### followed
Occurs when you are followed by someone.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'User that is following you',
},
}
}"/>
### unfollow
Occurs when you unfollow someone.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
user: {
$ref: 'misskey://User',
description: 'The user being unfollowed',
},
}
}"/>
### note
Occurs when you post a note.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'The composed note',
},
}
}"/>
### reply
Occurs when someone has replied to your note.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'The reply',
},
}
}"/>
### renote
Occurs when your note is renoted.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'Renote',
},
}
}"/>
### mention
Occurs when someone has mentioned you.
<MkSchemaViewerItemObject :schema="{
type: 'object',
properties: {
note: {
$ref: 'misskey://Note',
description: 'The note that contains the mention',
},
}
}"/>

View File

@ -0,0 +1,98 @@
# Widgets
A widget is a small display element that can be added to the Misskey UI to display and interact with information.
By default they are displayed on the right side of the screen or accessed from the stack icon in the mobile web app navigation menu.
To edit widgets, switch to widget edit mode at the bottom of the widget view. In widget edit mode you can add, delete, and reorder widgets.
After you close out of the widget layout editor, you can also configure settings for each widget's behavior.
## List of Available Widgets
### Notifications
Shows a list of your notifications. You can change the types of notifications shown by opening the notification widget menu. If you disable "User global settings" you can choose to only show certain types of notifications.
### Timeline
Display a timeline. You can choose from one of the standard timelines (Home, Local, Social, and Global) or one of your custom user [Lists](./list.md) or [Antennas](./antenna.md).
### RSS Reader
Displays a list of items from an RSS feed. You can provide any valid RSS feed URL in the configuration.
### RSS-Ticker
Similar to the RSS Reader, but the ticker shows the feed as a scrolling ticker on a single line. There are also more options to customize how the the feed will be refreshed and displayed.
### Trending
Displays trending [Hashtags](./hashtag.md) as well as statistics of how many users have mentioned it and a graph of that hashtag's activity.
### Activity
Displays a visualization of activity over time.
### Online Users
Displays the number of users that are active on this instance.
### Photos
Displays a gallery of your recent photos.
### Slideshow
Displays a slideshow of photos one of your specified drive folders. To select the drive folder, left-click on the slideshow widget after you have exited the widget layout editor. Then select the checkbox of folders you want included in the slideshow and click the check mark to confirm.
### Calendar
Displays the current date as well as a graphic showing the date progression.
### Clock
Displays an analog clock. The analog clock has many options to customize its appearance.
### Digital Clock
Displays a digital clock.
### UNIX Clock
Displays the seconds elapsed since the UNIX Epoch (1970-01-01T00:00:00Z).
### Federation
List of federated instances and graphs of their recent activity.
### Instance Cloud
An interactive animation that shows federated instances.
### Sticky Notes
A text area where you can jot down short notes for yourself. You can save your sticky note and it will be available wherever you access Misskey Web.
### Posting Form
A widget form of the [Note](./note.md) composition menu.
### Server Metrics
A display of the server metrics. The type of metrics displayed can changed by clicking the arrows in the header of the widget.
### Job Queue
A display of the server job queue statistics.
### AiScript Console
A widget version that you can use to test and execute [AiScript](../advanced/aiscript.md) programs. This is a widget version of the Scratchpad page accessible through the help menu.
### Button
An interactive button that when clicked runs your own custom [AiScript](../advanced/aiscript.md) program.
### Ai
A digital version of the Misskey mascot, Ai, that will follow you around the site.

View File

@ -0,0 +1,23 @@
# Word Mute
Through setting up word mutes, you can make notes matching certain conditions not appear on your timeline anymore.
There are two types of word mutes: soft and hard. Below is an explanation of the setup process and effect of both.
## Soft Word Mute
With soft mutes, the word mute is processed within the client (app) you are using.
When a note meets the set conditions, it will be hidden behind text stating "(username) said something".
You can display the hidden note contents by clicking on this text.
## Hard Word Mute
With hard mutes, the server judges whether the content of a new incoming note meets the set conditions similar to antennas, and will completely exclude it from your timeline if so.
To summarize, a hard word mute has the following features:
- Only new notes created after configuration will be affected by the mute.
- If the conditions are changed, previously hard muted notes will still remain muted.
- Timelines will not be filled with "(...) said something".
- Hard mutes will function even for apps without functionality for soft mutes.

View File

@ -0,0 +1,24 @@
# Getting Started with Misskey
Misskey is a program and a project.
The server running Misskey, which is open to the public on the Internet, is called an **instance**.
To use Misskey, you need to create an account in one of the instances and use that instance.
You can select an instance of your choice from the [instance list](../instances.md).
::: tip
No matter which instance you choose, you will be able to interact with users on other instances.
::: details
Misskey has the ability to federate.
Misskey has built-in federation support, which allows users in different instances to follow, react, and renote in the same way as users on the same instance.
Misskey's federation is based on an open common standard called ActivityPub, and is compatible with other software such as Mastodon and Pleroma.
:::
## Choosing an Instance
### Instance Themes
Some instances may have a specific theme, for example, "I like certain stuff and activities".
It is recommended to find an instance of the theme that suits you best.
### Instance user base

View File

@ -0,0 +1,92 @@
# Glossary
A glossary about terms related to Misskey.
## Acct
TODO
## ActivityPub
The protocol (method) used for enabling the distributed nature of Misskey. By adhering to this protocol, communication with other instances that also follow it becomes possible, forming what is known as the Fediverse.
## AiScript
A programming language available for use on Misskey. For details, see [here.](../advanced/aiscript)
## API
An interface that can be used for interacting with Misskey through a program, available for each individiual instance. For details, see [here.](../docs/api)
## Bot
An account that is being controlled by a program.
## CW
An abbreviation of "Content Warning". A feature to hide the content of a note unless explicitly requested to be shown by a user. Mainly used to hide the content of long notes or to prevent posting spoilers publicly. For details, see [here.](../docs/features/note.html#cw)
## Fediverse
A network of instances composed of various different platforms that communicate with each other, including Misskey.
## GTL
An abbreviation for "Global TimeLine". For details about timelines, please see [here](../features/timeline).
## HTL
An abbreviation for "Home TimeLine". For details about timelines, please see [here](../features/timeline)
## LTL
An abbreviation for "Local TimeLine". For details about timelines, please see [here](../features/timeline)
## MFM
An abbreviation for "Markup language For Misskey", a markdown language available for use on Misskey. For details, see [here.](../features/mfm)
## NSFW
An abbreviation for "Not Safe For Work". A feature to tag an image as "NSFW" and hide it unless explicitly requested to be shown by a user.
## Renote
The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts. For details, see [here.](../docs/features/note.html#renote)
## STL
An abbreviation for "Social TimeLine". For details about timelines, please see [here.](../features/timeline)
## Ai(藍)
Ai(藍) is Misskey's official mascot.
## Active users
Those users amongst all existing ones who are continually using their account.
## Instance
TODO
## Custom Emoji
Emoji provided by your instance. Emoji that are not specifically provided by your instance but are available by default are called "Unicode Emoji". For details, see [here.](../docs/features/custom-emoji)
## Control Panel
TODO
## Silence
A state in which the visibility of the notes by said user cannot be set to "Public" anymore. Can be set for individual users by the discretion of Moderators. For details, see [here.](../features/silence)
## Job Queue
A system used for sequentially broadcasting activities to other instances etc.
## Suspend
A state which makes the account of a user unusable.
## Drive
A feature allowing users to organize the files they have uploaded to Misskey. For details, see [here.](../features/drive)
## Notes
Content which may include text, images, surveys and others that has been posted to Misskey. For details, see [here.](../docs/features/note)
## Misskist
Users of Misskey.
## Moderator
Users with the authority to manage the community of a instance by deactivating spam accounts, silencing users, deleting inappropriate posts, etc.
## License
TODO
## Remote
Used in context of instances separate from your own. Also used as prefix in other words like "Remote user". The opposite of "Local".
## Federation
The act of sharing information created on one's instance with other instances.
## Local
Used in context of your own instance.Also used as prefix in other words like "Local users", "local timeline". The opposite of "Remote".

View File

@ -0,0 +1,30 @@
# Create your own Misskey instance
Thank you for your interest in building a Misskey instance 🚀
There are several ways to create an instance, so please choose one below and read the guide.
::: danger
Never change the domain name (hostname) of an instance once you start using it!
:::
::: danger
If you use Cloudflare for your own server, do not use the Auto Minify setting.
Misskey will not work properly because Cloudflare will not interpret the latest JavaScript and will break the source code inside.
See also: [misskey-dev/misskey #9791](https://github.com/misskey-dev/misskey/issues/9791)
:::
## Using Docker
[See here](./install/docker.html)
## Using Bash Script
[See here](./install/bash.html)
## Manually
[See here](./install/manual.html)
## Using Yunohost
Misskey can be installed as an App on YunoHost. For more information see [the repository of the Misskey package for YunoHost](https://github.com/YunoHost-Apps/misskey_ynh).
## Using Kubernetes/TrueNAS Scale
[See here](./install/kubernetes.html)

View File

@ -0,0 +1,230 @@
# Misskey install shell script v3.0.0
Install Misskey with one shell script!
You can install misskey on an Ubuntu server just by answering some questions.
There is also an update script.
[For v12](https://github.com/joinmisskey/bash-install/blob/a096e874f93d493aa68975a31be9ce12d644e767/README.en.md)
[**日本語版はこちら**](./README.md)
## License
[MIT License](./LICENSE)
## Ingredients
1. A Domain
2. An Ubuntu Server
3. A Cloudflare Account (recommended)
::: danger
Never change the domain name (hostname) of an instance once you start using it!
:::
## Configure Cloudflare
If you are using nginx and Cloudflare, you must configure Cloudflare:
- Set DNS.
- On SSL/TLS setting tab, switch the encryption mode to "Full".
## Procedures
### 1. SSH
Connect to the server via SSH.
(If you have the server's desktop open, open the shell.)
### 2. Clean up
Make sure all packages are up to date and reboot.
```
sudo apt update; sudo apt full-upgrade -y; sudo reboot
```
### 3. Start the installation
Reconnect SSH and let's start installing Misskey.
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh
```
### 4. To update
There is also an update script.
The update script does not update the environment.
Please refer to CHANGELOG (Japanese) and [GitHub release list (English)](https://github.com/joinmisskey/bash-install/releases) and perform migration operations accordingly.
First, download the script.
```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh
```
Run it when you want to update Misskey.
```
sudo bash update.sh
```
- In the systemd environment, the `-r` option can be used to update and reboot the system.
- In the docker environment, you can specify repository:tag as an argument.
## Environments in which the operation was tested
### Oracle Cloud Infrastructure
This script runs well on following compute shapes complemented by Oracle Cloud Infrastructure Always Free services.
- VM.Standard.E2.1.Micro (AMD)
- VM.Standard.A1.Flex (ARM) [1OCPU RAM6GB or greater]
Answer to use iptables.
## Issues & PRs Welcome
If it does not work in the above environment, it may be a bug. We would appreciate it if you could report it as an issue, with the specified requirements you entered to the script.
It is difficult to provide assistance for environments other than the above, but we may be able to solve your problem if you provide us with details of your environment.
Suggestions for features are also welcome.
# 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設定](https://github.com/misskey-dev/misskey/blob/develop/docs/examples/misskey.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,79 @@
Create Misskey instance with Docker Compose
================================================================
This guide describes how to install and setup Misskey with Docker Compose.
::: danger
Never change the domain name (hostname) of an instance once you start using it!
:::
::: tip Requirement
- docker and dockercompose installed
:::
Get the repository
----------------------------------------------------------------
```sh
git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master
```
Configure
----------------------------------------------------------------
Copy example configuration files with following:
```sh
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./docker-compose.yml.example ./docker-compose.yml
```
Edit `default.yml` and `docker.env` according to the instructions in the files.
Edit `docker-compose.yml` if necessary. (e.g. if you want to change the port).
Build and initialize
----------------------------------------------------------------
The following command will build Misskey and initialize the database.
This will take some time.
``` shell
sudo docker compose build
sudo docker compose run --rm web pnpm run init
```
Launch
----------------------------------------------------------------
Well done! You can start Misskey with the following command.
```sh
sudo docker compose up -d
```
GLHF✨
How to update your Misskey server
----------------------------------------------------------------
::: warning
When updating, be sure to check the [release notes](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md) to know in advance the changes and whether or not additional work is required (in most cases, it is not).
:::
```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
```
It may take some time depending on the contents of the update and the size of the database.
How to execute CLI command
----------------------------------------------------------------
```sh
sudo docker compose run --rm web node packages/backend/built/tools/foo bar
```

View File

@ -0,0 +1,29 @@
# Create Misskey Instance with Kubernetes/TrueNAS
This guide describes how to install and setup Misskey using Kubernetes and Helm charts.
::: danger
Never change the domain name (hostname) of an instance once you start using it!
:::
## TrueCharts and TrueNAS Scale
The Helm chart for Misskey is hosted on TrueCharts which is a repository designed to be used with TrueNAS Scale, but its charts can also be installed as normal Helm charts. The [TrueCharts](https://truecharts.org/charts/incubator/misskey/) site has a list of all the charts available as well as documentation on how to install. The TrueCharts [Discord](https://discord.gg/Ax9ZgzKx9t) server is also a resource that can be used if you have questions. Misskey is currently on the *incubator* train.
::: tip Requirements
- TrueNAS Scale
OR
- Kubernetes cluster and Helm
:::
## TrueNAS Scale
Follow the instructions on the [TrueCharts Guide](https://truecharts.org/manual/guides/Adding-TrueCharts/). Add the *incubator* train, and install the Misskey app. The only Misskey configuration option that is required is the instance URL. The app also uses the Traefik reverse proxy to expose the service to the outside world over HTTPS. TrueCharts integrates with Traefik by default, but other options can be used with manual configuration.
## Manual Helm
If you are not using TrueNAS Scale, you can install Misskey using Helm directly. The `misskey` object in the values.yaml file has the options that you will want to override as necessary. The `misskey.url` property is the only required change. A reverse proxy is recommended to secure access to the server as the chart does not currently support enabling TLS inside the Misskey container.
```
helm repo add TrueCharts https://charts.truecharts.org
helm repo update
helm install misskey TrueCharts/misskey
```
## Upgrade Misskey
To upgrade Misskey, use the upgrade feature built into TrueNAS Scale or if running kubernetes manually use [helm repo update](https://helm.sh/docs/helm/helm_repo_update/) and [helm upgrade](https://helm.sh/docs/helm/helm_upgrade/). It is highly recommended to create a snapshot of your data before upgrading in case there is an issue and you need to rollback.

View File

@ -0,0 +1,201 @@
Misskey Setup and Installation Guide
================================================================
We thank you for your interest in setting up your Misskey server!
This guide describes how to install and setup Misskey.
----------------------------------------------------------------
::: danger
Never change the domain name (hostname) of an instance once you start using it!
:::
*1.* Install dependencies
----------------------------------------------------------------
Please install and setup these softwares:
#### Dependencies :package:
* **[Node.js](https://nodejs.org/en/)** (20.4.x)
* **[PostgreSQL](https://www.postgresql.org/)** (15.x)
* **[Redis](https://redis.io/)**
* **[FFmpeg](https://www.ffmpeg.org/)**
If you are using Debian/Ubuntu, you should install the `build-essential` package.
corepack must be enabled.
```sh
sudo corepack enable
```
*2.* Create Misskey user
----------------------------------------------------------------
Running misskey as root is not a good idea so we create a user for that.
In debian for exemple :
```sh
adduser --disabled-password --disabled-login misskey
```
*3.* Install Misskey
----------------------------------------------------------------
1. Connect to the `misskey` user
`sudo -iu misskey`
2. Clone the Misskey repository
`git clone --recursive https://github.com/misskey-dev/misskey.git`
3. Navigate to the repository
`cd misskey`
4. Check out the [latest release](https://github.com/misskey-dev/misskey/releases/latest)
`git checkout master`
5. Download submodules
`git submodule update --init`
5. Install Misskey's dependencies
`pnpm install --frozen-lockfile`
*4.* Configure Misskey
----------------------------------------------------------------
1. Copy the `.config/example.yml` and rename it to `default.yml`.
`cp .config/example.yml .config/default.yml`
2. Edit `default.yml`
*5.* Build Misskey
----------------------------------------------------------------
Build misskey with the following:
`NODE_ENV=production pnpm run build`
If you're on Debian, you will need to install the `build-essential`, `python` package.
*6.* Init DB
----------------------------------------------------------------
1. Create the appropriate PostgreSQL users with respective passwords,
and empty database as named in the configuration file.
Make sure the database connection also works correctly when run from the
user that will later run Misskey, or it could cause problems later.
The encoding of the database should be UTF-8.
```
sudo -u postgres psql
create database misskey with encoding = 'UTF8';
create user misskey with encrypted password '{YOUR_PASSWORD}';
grant all privileges on database misskey to misskey;
alter database misskey owner to misskey;
\q
```
2. Run the database initialisation
`pnpm run init`
*7.* That is it.
----------------------------------------------------------------
Well done! Now, you have an environment that run to Misskey.
### Launch normally
Just `NODE_ENV=production pnpm run start`. GLHF!
### Launch with systemd
1. Create a systemd service here
`/etc/systemd/system/misskey.service`
2. Edit it, and paste this and save:
::: details
```
[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
```
:::
3. Reload systemd and enable the misskey service.
`sudo systemctl daemon-reload; sudo systemctl enable misskey`
4. Start the misskey service.
`sudo systemctl start misskey`
You can check if the service is running with `systemctl status misskey`.
### Launch with OpenRC
1. Copy the following text to `/etc/init.d/misskey`:
::: details
```sh
#!/sbin/openrc-run
name=misskey
description="Misskey daemon"
command="/usr/bin/npm"
command_args="start"
command_user="misskey"
supervisor="supervise-daemon"
supervise_daemon_args=" -d /home/misskey/misskey -e NODE_ENV=\"production\""
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
use logger
# alternatively, uncomment if using nginx reverse proxy
#use logger nginx
}
```
:::
2. Set the service to start on boot
`rc-update add misskey`
3. Start the Misskey service
`rc-service misskey start`
You can check if the service is running with `rc-service misskey status`.
### How to update your Misskey server to the latest version
1. `git checkout master`
2. `git pull`
3. `git submodule update --init`
4. `NODE_ENV=production pnpm install --frozen-lockfile`
5. `NODE_ENV=production pnpm run build`
6. `pnpm run migrate`
7. Restart your Misskey process to apply changes
8. Enjoy
If you encounter any problems with updating, please try the following:
1. `pnpm run clean` or `pnpm run clean-all`
2. Retry update (Don't forget `pnpm install`

View File

@ -0,0 +1,14 @@
# About Misskey Hub
Misskey Hub is Misskey's official website, which provides documentation, a documentation blog, a plugin store and more.
We aim to be the place for "everything Misskey".
Misskey Hub is [open source](https://github.com/misskey-dev/misskey-hub).
::: tip
Misskey Hub is a static site built with [VuePress](https://github.com/vuepress/vuepress-next).
:::
- [change log](../updates.md)
## Contributing to Misskey Hub
Additional documentation and translations are welcome.

View File

@ -0,0 +1,86 @@
# About Misskey
Misskey is an open-source and distributed platform for microblogging. Development was started in 2014 by syuilo in Japan. It features an abundance of features such as Drive or Reactions as well as a very high UI customizability.
## 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 "Distributed" mean?
A <b>Distributed</b> service, also called a <b>Decentralized</b> service, refers to a service which features the division of a community into many servers that all mutually <b>communicate (federate)</b> with each other to share their contents, building a <b>network (Fediverse)</b>. Services for which only one server exists, or for which many independent server exist, are called centralized. Most services fall under the category of centralized, some examples for this are Twitter or Facebook. The advantage of distributed services is being able to select the administration or server theme that suits you freely.It's also possible for you to make your own server.Thanks to the federated nature, you will be able to access the same community, no matter which server you choose.
## Always Open-Source
Misskey has always been, and will always be, open source.Open source means, simply speaking, <b>making the source code of software (a program) 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 [being licensed](https://github.com/misskey-dev) 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 being managed via Git, and its repository is being hosted at [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're always waiting for you.
### Adding features or fixing bugs
If you possess software engineering skills, you can contribute to the project through editing its source code. For guidelines regarding this, please see [here](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md).
### Participating in discussions
You can contribute by sharing your opinion on new or existing features, as well as by reporting bugs. Such discussions can be held at [GitHub](https://github.com/misskey-dev) or the [Forums](https://forum.misskey.io/) etc.
### 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. Helping out with this translation work is also a form of contributing. Misskey uses a service called [Crowdin to manage its translations.](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.
### 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 take a look here](./donate.md)
## Frequently Asked Questions
### What is this project aiming to achieve?
To put it bluntly, while this is a bit vague, Misskey is aiming to be a widely-used all-purpose platform. 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. On the other hand though, this creates a flexibility due to not being bound by a specific direction to go towards.
<!-- TODO: ここにロードマップへのリンク -->
### Is Misskey being developed by a company?
No.Misskey is being developed by an individual person 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 distributed nature of Misskey, each individual server has their own administration.Therefore, not all of Misskey is managed by one individual person or company. This means that, as the development team does not control individual servers, for management-related questions you should contact your server's administration instead. You can verify who is managing your individual server on [this page](/about). If you were to create a server, then you would also become its administrator.
### Which server should I choose?
[You can find an (incomplete) list of servers here.](../instances.md) 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.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. In the current year of 2022 there is no specialized Misskey hosting service, so creating a new server requires a certain amount of knowledge. Please see [here](./install.md) for more information regarding this.
### What kind of technology does Misskey use?
As development on Misskey progressed, the technology it has used has changed greatly.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 distributed 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?
While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps).
However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo).
### Where can I download Misskey's logo or icon?
Please refer to the [assets collection](../appendix/assets.html).
### Who's that cute cat-eared girl that you see sometimes?
It's Misskey's guardian deity, Ai.(They called Ai cute, yay!)
<div class="info"> To read more about Ai, check <a href="https://xn--931a.moe/" target="_blank">here</a> (Japanese-only).</div>

View File

@ -0,0 +1,748 @@
# Release Notes
Notes for indivudual misskey releases.
::: tip
Information updates may not be translated yet. For the latest information see [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md).
:::
## 13.0.0
Released at: 2023/01/16
### TL;DR
- New features (Role system, Misskey Play, New widgets, New charts, 🍪👈, etc)
- Rewriten backend
- Better performance (backend and frontend)
- Various usability improvements
- Various UI tweaks
### Notable features
- Role
- User policies can be managed more flexibly than before. For example, "instance patrons can create up to 30 antennas," "many users cannot see LTL, but only those who have permission can view it," "it is an invitation-only instance, but any user can invite others," and of course, it is also possible to set up automatic role assignment by combining multiple conditions, such as "Local users and users who have created their accounts less than one day ago are not allowed to make public posts."
- Misskey Play
- Misskey Play is a new platform that replaces the traditional dynamic Pages. It specializes in dynamic content (applications) and allows for the creation of much more flexible applications than Pages.
### Changes
#### For server admins
- Node.js 18.x or later is required
- PostgreSQL 15.x is required
- Misskey not using 15 specific features at 13.0.0, but may do so in the future.
- Elasticsearch support has been removed
- Instead, we envision a mechanism that allows you to set up an arbitrary search provider in the future. With this mechanism, Elasticsearch will still be available.
- Migrated from Yarn to pnpm
It is recommended to activate corepack: `sudo corepack enable`
- Instance blocking will now also apply to subdomains
- With the introduction of roles, several functions have been integrated with roles
- Moderators have been merged into roles. Please keep a record of the moderator list in advance and create a moderator role and reassign it. After the update, the moderator information will be lost.
- Silences have been merged into roles. It is recommended to record the list of silences beforehand, as previous users will be pardoned.
- Per-user drive capacity settings have been integrated into roles.
- Instance default drive capacity settings have been integrated into roles. After updating, please edit the drive capacity for the base role or conditional role.
- LTL/GTL release status has been integrated into the role.
- Docker is no longer run as root; if you are running Docker and not using object storage, run `chown -hR 991.991 . /files`.
https://github.com/misskey-dev/misskey/pull/9560
#### For users
- Note watch function has been removed
- Notification of poll voted has been removed
- Formula embedding in notes has been removed
- It is no longer possible to create new dynamic Pages
- Instead, a Misskey Play feature is implemented that allows for more flexible dynamic content creation using AiScript.
- AiScript has been updated to 0.12.2
- About changengs of 0.12.x: https://github.com/syuilo/aiscript/blob/master/CHANGELOG.md#0120
- Plug-ins less than 0.12.x cannot be loaded
- iOS 15 and below are no longer supported
- Firefox 110 and below are no longer supported
- In 109, you can use it without problems by enabling the ContainerQueries flag.
#### For app developers
- API: meta responses no longer include the `emojis` property
- To get custom emoji list information, request to `emojis` endpoint
- API: custom emoji entities no longer include the `url` property
- To display an emoji image, request `<instance host>/emoji/<emoji name>.webp` which will return the image.
- e.g. `https://p1.a9z.dev/emoji/misskey.webp`
- remote: `https://p1.a9z.dev/emoji/syuilo_birth_present@mk.f72u.net.webp`
- API: `user` and `note` entities no longer contain the `emojis` property
- API: `user` entities no longer contain the `avatarColor` and `bannerColor` properties
- API: `instance` entities no longer contain the `latestStatus`, `lastCommunicatedAt`, and `latestRequestSentAt` properties
- API: The `caughtAt` of the `instance` entity has been renamed to `firstRetrievedAt`.
### Improvements
- Role system @syuilo
- Misskey Play @syuilo
- Introduce retention-rate aggregation @syuilo
- Make possible to export favorited notes @syuilo
- Add per user pv chart @syuilo
- Push notification of Antenna note @tamaina
- AVIF support @tamaina
- Add Cloudflare Turnstile CAPTCHA support @CyberRex0
- Rate limits can now be adjusted per user @syuilo
- Non-moderator users assigned to roles with permissions can now issue instance invitation codes @syuilo
- Non-moderator users with assigned roles can now add, edit, and delete custom emoji @syuilo
- Allow users to set the number of clips and notes within a clip @syuilo
- Allowed to set the number of users in user list and user list @syuilo
- Maximum number of characters for hardword mute @syuilo
- Maximum number of webhooks that can be created @syuilo
- Can set the number of notes that can be pinned @syuilo
- Server: signToActivityPubGet is set to true by default @syuilo
- Server: improve syslog performance @syuilo
- Server: Use undici instead of node-fetch and got @tamaina
- Server: Judge instance block by endsWith @tamaina
- Server: improve note scoring for featured notes @CyberRex0
- Server: Relaxed character limit for survey choices @syuilo
- Server: Relaxed character limit for profile @syuilo
- Server: add rate limits for some endpoints @syuilo
- Server: improve stats api performance @syuilo
- Server: improve nodeinfo performance @syuilo
- Server: delete outdated notifications regularly to improve db performance @syuilo
- Server: delete outdated hard-mutes regularly to improve db performance @syuilo
- Server: delete outdated notes of antenna regularly to improve db performance @syuilo
- Server: improve activitypub deliver performance @syuilo
- Client: use tabler-icons instead of fontawesome to better design @syuilo
- Client: Add new gabber kick sounds (thanks for noizenecio)
- Client: Add link to user RSS feed in profile menu @ssmucny
- Client: Compress non-animated PNG files @saschanaz
- Client: YouTube window player @sim1222
- Client: show readable error when rate limit exceeded @syuilo
- Client: enhance dashboard of control panel @syuilo
- Client: Vite is upgraded to v4 @syuilo, @tamaina
- Client: HMR is available while yarn dev @tamaina
- Client: Implement the button to subscribe push notification @tamaina
- Client: Implement the toggle to or not to close push notifications when notifications or messages are read @tamaina
- Client: show Unicode emoji tooltip with its name in MkReactionsViewer.reaction @saschanaz
- Client: OpenSearch support @SoniEx2 @chaoticryptidz
- Client: Support remote objects in search @SoniEx2
- Client: user activity page @syuilo
- Client: Make widgets of universal/classic sync between devices @tamaina
- Client: add user list widget @syuilo
- Client: Add AiScript App widget
- Client: add profile widget @syuilo
- Client: add instance info widget @syuilo
- Client: Improve RSS widget @tamaina
- Client: add heatmap of daily active users to about page @syuilo
- Client: introduce fluent emoji @syuilo
- Client: add new theme @syuilo
- Client: add new mfm function (position, fg, bg) @syuilo
- Client: show fireworks when visit user who today is birthday @syuilo
- Client: show bot warning on screen when logged in as bot account @syuilo
- Client: AiScript can refer to custom emoji list @syuilo
- Client: improve overall performance of client @syuilo
- Client: ui tweaks @syuilo
- Client: clicker game @syuilo
### Bugfixes
- Server: Fix @tensorflow/tfjs-core's MODULE_NOT_FOUND error @ikuradon
- Server: Fixed a problem that sentences in quotes are nyaized @kabo2468
- Server: Bug fix for Pinned Users lookup on instance @squidicuzz
- Server: Fix peers API returning suspended instances @ineffyble
- Server: trim long text of note from ap @syuilo
- Server: Ap inbox max payload size limited to 64kb @syuilo
- Server: add limit to number of antennae created @syuilo
- Server: Fixed duplicate error IDs in pages/like @syuilo
- Server: Fixed that summary values are not updated depending on pages/update parameters @syuilo
- Server: Escape SQL LIKE @mei23
- Server: fix problem with certain PNG image uploads failing @usbharu
- Server: fix problem with OGP rendering with URLs of non-public clips @syuilo
- Server: Antenna timeline (streaming) picks up key posts of users not followed @syuilo
- Server: follow request list api pagination @sim1222
- Server: Fixed an issue where an error when drive capacity is exceeded is not properly responded @syuilo
- Client: Fixed a problem that user name is not auto-completed in password manager @massongit
- Client: Fixed a problem that date strings are displayed as custom pictograms @syuilo
- Client: case insensitive emoji search @saschanaz
- Client: Fixed that there is no way to close widget drawer when screen width is narrow @syuilo
- Client: Fixed InApp window sometimes becoming inoperable @tamaina
- Client: use proxied image for instance icon @syuilo
- Client: Fixed an issue where the content cannot be saved in the Webhook edit screen @m-hayabusa
- Client: Fixed issue where blocks cannot be moved in Page edit @syuilo
- Client: update emoji picker immediately on all input @saschanaz
- Client: fixed tooltip of chart may remain on screen @syuilo
- Client: fix wrong link in tutorial @syuilo
### Special thanks
- All contributors
- All who have created instances for the beta test
- All who participated in the beta test
## 12.119.1
Released at: 2022/12/03
### Bugfixes
- Server: Mitigate AP reference chain DoS vector @skehmatics
## 12.119.0
Released at: 2022/09/10
### Improvements
- Client: Add following badge to user preview popup @nvisser
- Client: mobile twitter url can be used as widget @caipira113
- Client: Improve clock widget @syuilo
### Bugfixes
- Fix an issue that can cause migration failures
- Server: Fix an issue that allows marking others' notification as read @syuilo
- Client: Fix an issue where 'Manage access tokens' and 'Manage Accounts' page is not shown @futchitwo
## 12.118.0
Released at: 2022/08/07
### Improvements
- Client: Preference backups feature
- Client: Add vi-VN language support
- Client: Add unix time widget @syuilo
### Bugfixes
- Server: Fix blocking users from remote instances @xianonn
- Client: Fix webhook page freeze after webhook is first created @syuilo
- Client: Fix broken MiAuth page @syuilo
- Client: Fix an issue where drag-and-drop to the post form doesn't work with some applications @m-hayabusa
## 12.117.1
Released at: 2022/07/19
### Improvements
- Client: UI brushup @syuilo
### Bugfixes
- Server: Fix an issue where upload fails intermittently @acid-chicken
- Client: Fix an issue where reaction picker is shown behind other in-app windows @syuilo
- Client: Fix user information lookup retry feature @xianonn
- Client: Update MFM cheatsheet behavior @syuilo
- Client: Fix an issue that prevents changing 'Receive notifications from this instance' setting @syuilo
## 12.117.0
Released at: 2022/07/18
### Improvements
- Client: Support maximizing windows @syuilo
- Client: Shift-clicking on the link opens it in-app @syuilo
- Client: Ctrl-clicking on the link will force page transition on Deck UI @syuilo
- Client: UI brushup @syuilo
## 12.116.1
Released at: 2022/07/17
### Bugfixes
- Client: Fix an issue that prevents 'Show in page' button from working on Deck UI @syuilo
- Error During Migration Run to 12.111.x
## 12.116.0
Released at: 2022/07/16
### Improvements
- Client: registry editor @syuilo
- Client: UI brushup @syuilo
### Bugfixes
- Error During Migration Run to 12.111.x
- Server: TypeError: Cannot convert undefined or null to object @syuilo
## 12.115.0
Released at: 2022/07/16
### Improvements
- Client: Easier account switching on the Deck @syuilo
- Client: UI brushup @syuilo
## 12.114.0
Released at: 2022/07/15
### Improvements
- Add article order shuffle feature to the RSS ticker @syuilo
### Bugfixes
- Fix an issue that prevents client from booting @syuilo
## 12.113.0
Released at: 2022/07/13
### Improvements
- Support `<plain>` syntax for MFM
### Bugfixes
- Server: Fix crash at startup if TensorFlow is not supported @mei23
- Client: Fix routing of the URL encoded string
## 12.112.3
Released at: 2022/07/09
### Improvements
- Make active email validation configurable
### Bugfixes
- Server: Fix Attempts to update all notifications @mei23
## 12.112.2
Released at: 2022/07/08
### Bugfixes
- Fix Docker doesn't work @mei23
Still not working on arm64 environment. (See 12.112.0)
## 12.112.1
Released at: 2022/07/07
same as 12.112.0
## 12.112.0
Released at: 2022/07/07
### Known issues
- Installation is currently not working on arm64 environment. This will be fixed in the next version.
### Changes
- Highlight menu has been merged into the Explore menu.
- Custom Emoji page has been merged into the Instance Information page.
- Federation page has been merged into the Instance Information page.
- Mentions menu has been merged into the Notification menu.
- Direct notes menu has been merged into the Notifications menu.
- You can now access Antennas via the top icon of the Timeline, instead of the main menu.
- You can now access Lists via the top icon of the Timeline, instead of the main menu.
### Improvements
- Server: Allow GET method for some endpoints @syuilo
- Server: Auto NSFW detection @syuilo
- Server: Add rate limit to i/notifications @tamaina
- Client: Improve control panel @syuilo
- Client: Show warning in control panel when there is an unresolved abuse report @syuilo
- Client: Statusbars @syuilo
- Client: Add instance-cloud widget @syuilo
- Client: Add rss-ticker widget @syuilo
- Client: Removing entries from a clip @futchitwo
- Client: Poll highlights in explore page @syuilo
- Client: Improve deck UI @syuilo
- Client: Word mute also checks content warnings @Johann150
- Client: Page reload from menu @syuilo
- Client: Improve emoji picker performance @syuilo
- Client: For notes with specified visibility, show recipients when hovering over visibility symbol. @Johann150
- Client: Make widgets available again on a tablet @syuilo
- Add possibility to leave moderation notes on users @syuilo
- Make possible to delete an account by admin @syuilo
- Improve player detection in URL preview @mei23
- Add Badge Image to Push Notification #8012 @tamaina
- Server: Improve performance
- Server: Supports IPv6 on Redis transport. @mei23
IPv4/IPv6 is used by default. You can tune this behavior via `redis.family`.
- Server: Add possibility to log IP addresses of users @syuilo
- Add additional drive capacity change support @CyberRex0
### Bugfixes
- Server: Fix GenerateVideoThumbnail failed @mei23
- Server: Ensure temp directory cleanup @Johann150
- favicons of federated instances not showing @syuilo
- Admin: The checkbox for blocking an instance works again @Johann150
- Client: Prevent access to user pages when not logged in @pixeldesu @Johann150
- Client: Disable some hotkeys (e.g. for creating a post) for not logged in users @pixeldesu
- Client: Ask users that are not logged in to log in when trying to vote in a poll @Johann150
- Instance mutes also apply in antennas etc. @Johann150
## 12.111.1
Released at: 2022/06/13
### Bugfixes
- some fixes of multiple notification read @tamaina
- some GenerateVideoThumbnail failed @Johann150
- Client: fix problem with widget information not being saved in Deck mode @syuilo
- Client: edit screen appears when trying to open gallery posts @futchitwo
## 12.111.0
Released at: 2022/06/11
### Note
- Node.js 16.15.0 or later is required
### Improvements
- Supports Unicode Emoji 14.0 @mei23
- Push notifications for multiple accounts #7667 @tamaina
- Set click and `action` for Push notifications #7667 @tamaina
- Option to discard original image and only keep `WebPublic` one when uploading it to Drive @tamaina
- Server: always remove completed tasks of job queue @Johann150
- Client: allow cropping of images in avatar settings @syuilo
- Client: make emoji stand out more on reaction button @Johann150
- Client: display URL of QR code for TOTP registration @tamaina
- Client: render quote renote CWs as MFM @pixeldesu
- API: `notifications/read` also accepts in arrays #7667 @tamaina
- API: if the query meets the `username` condition, `username` is also `LIKE` searched when searching users @tamaina
- MFM: Allow speed changes in all animated MFMs @Johann150
- The theme color is now better validated. @Johann150
Your own theme color may be unset if it was in an invalid format.
Admins should check their instance settings if in doubt.
- Perform port diagnosis at startup only when Listen fails @mei23
- Rate limiting is now also usable for non-authenticated users. @Johann150 @mei23
Admins should make sure the reverse proxy sets the `X-Forwarded-For` header to the original address.
### Bugfixes
- Server: keep file order of note attachement @Johann150
- Server: fix missing foreign key for reports leading to reports page being unusable @Johann150
- Server: fix internal in-memory caching @Johann150
- Server: prevent crash when processing certain PNGs @syuilo
- Server: Fix unable to generate video thumbnails @mei23
- Server: Fix `Cannot find module` issue @mei23
- Federation: Add rel attribute to host-meta @mei23
- Federation: add id for activitypub follows @Johann150
- Federation: use `source` instead of `_misskey_content` @Johann150
- Federation: ensure resolver does not fetch local resources via HTTP(S) @Johann150
- Federation: correctly render empty note text @Johann150
- Federation: Fix quote renotes containing no text being federated correctly @Johann150
- Federation: remove duplicate br tag/newline @Johann150
- Federation: add missing authorization checks @Johann150
- Client: fix profile picture height in mentions @tamaina
- Client: fix abuse reports page to be able to show all reports @Johann150
- Client: fix settings page @tamaina
- Client: fix profile tabs @futchitwo
- Client: fix popout URL @futchitwo
- Client: correctly handle MiAuth URLs with query string @sn0w
- Client: correct behavior of the function to display new Note on its details page @xianonn
- MFM: more animated functions support `speed` parameter @futchitwo
- MFM: limit large MFM @Johann150
## 12.110.12022/04/23
### Bugfixes
- Fix GOP rendering @syuilo
- Improve performance of antenna, clip, and list @xianonn
## 12.110.0
Released at: 2022/04/11
### Improvements
- Improve webhook @syuilo
- Client: Show loading icon on splash screen @syuilo
### Bugfixes
- API: parameter validation of users/show was wrong
- Federation: fixed problem with direct posts to remote instances not reaching @syuilo
## 12.109.2
Released at: 2022/04/03
### Bugfixes
- API: admin/update-meta was not working @syuilo
- Client: fix issue where meta[name="theme-color"] content was undefined when switching or loading themes @tamaina
## 12.109.1
Released at: 2022/04/02
### Bugfixes
- API: Fixed problem with Renote
## 12.109.0
Released at: 2022/04/02
### Improvements
- Webhooks @syuilo
- Bull Dashboard built in to check and manipulate job queues @syuilo
- To open the Bull Dashboard, you must relog (log out and log back in) to misskey once with your admin account
- Check that installed Node.js version fulfils version requirement @ThatOneCalculator
- Server: overall performance improvements @syuilo
- Federation: avoid duplicate activity delivery @Johann150
- Federation: limit federation of reactions on direct notes @Johann150
- Client: improved deck handling on touchpad/touchscreen @tamaina
### Bugfixes.
- Email address validation was not working @ybw2016v
- API: fix endpoint endpoint @Johann150
- API: fix admin/meta endpoint @syuilo
- API: improved validation and documentation for endpoints that accept different variants of input @Johann150
- API: `notes/create`: The `mediaIds` property is now deprecated.
- Use `fileIds` instead, it has the same behaviour.
- Client: fixed problem with URLs not displaying if decodeURIComponent fails due to abnormal URI encoding @tamaina
## 12.108.1
Released at: 2022-03-12
### Bugfixes
- Fixed relay not working @xianonn
- Fixed problem with ulid not working @syuilo
- Fixed a problem that OGP cannot be obtained correctly from outside @syuilo
- Instance can't get the files from other instance when there are items in allowedPrivateNetworks in .config/default.yml @ybw2016v
## 12.108.0
Released at: 2022-03-09
### Note
- Node v16.14.0 or later is required from this version
### Changes
- The ability to set the maximum number of characters in a note has been removed and the default is now a flat 3000 characters @syuilo
- Misskey can no longer terminate HTTPS connections. @Johann150
- If you did not use a reverse proxy (e.g. nginx) before, you will probably need to adjust your configuration file and set up a reverse proxy. The https configuration key is no longer recognized!
### Improvements
- Instance default theme can be set @syuilo
- Allow mute to set expiration date @syuilo
- Create a notification when a survey is closed @syuilo
- Allow up to 16 profile fields to be saved @syuilo
- Add Pub&Sub to federation chart @syuilo
- Add Active to federation chart @syuilo
- Queries to databases that take longer than 10 seconds by default will be aborted @syuilo
- You can change the timeout period by setting `statement_timeout` in the configuration file `db.extra`
- Client: display instance icon on splash screen @syuilo
### Bugfixes
- Client: Fixed reaction picker height sometimes remains low and does not return @syuilo
- Client: Fixed username autocomplete not working properly @syuilo
- Client: Fixed difficulty in editing widgets with touch operation @xianonn
- Client: Fixed register_note_view_interruptor() not working @syuilo
- Client: iPhone X or later(?) Fixed: Fixed page content not being fully displayed on iPhone X or later(?) @tamaina
- Client: Fix image caption on mobile @nullobsi
## 12.107.0
Released at: 2022/02/12
### Improvements
- Client: add theme @syuilo
### Bugfixes
- API: fixed internal error in stats API @syuilo
- Client: Fixed soft mute sometimes causing everything to match @tamaina
- Client: take screen safe area into account of the device @syuilo
- Client: Fixed issue with sidebar post button not showing in some environments @syuilo
## 12.106.3
Released at: 2022/02/11
### Improvements
- Client: adjust margins on smart phones @syuilo
### Bugfixes
- Client: fixed issue with note details not showing @syuilo
## 12.106.2
Released at: 2022/02/11
### Bugfixes
- Client: Fixed an issue where deleted notes did not automatically disappear from the timeline @syuilo
- Client: Fixed an issue where the number of reactions may be incorrect @syuilo
- Fixed problem with migration not working in some environments @syuilo
## 12.106.1
Released at: 2022/02/11
### Bugfixes
- Client: fixed problem with word mute not saving @syuilo
## 12.106.0
Released at: 2022/02/11
### Improvements
- Improve federation chart @syuilo
- Client: Allow to set the size of the reaction picker @syuilo
- Client: Relaxed reaction picker width and height restrictions @syuilo
- Docker: Update to Node v16.13.2 @mei23
- Update dependencies
### Bugfixes
- validate regular expressions in word mutes @Johann150
## 12.105.0
Released at: 2022/02/09
### Improvements
- Allow to set the theme color of the instance @syuilo
#### Bugfixes
- Fixed migration failure in some environments @syuilo
## 12.104.0
Released at: 2022/02/09
### Note
Please run `npm run clean` before building.
Due to the large scale of migration in this release, migration may take some time for some instances.
If the migration does not finish, you can delete all **records** in the table starting with `__chart__` (do not delete the table itself) and try again, although the chart information will be reset.
### Improvements
- Chart engine enhancements @syuilo
- Reduced table size
- Added number of notes with attachments to notes/instance/perUserNotes chart
- Added new entry to activeUsers chart
- Added new entry to federation chart
- Added apRequest chart
- network chart eliminated
- Client: Enable to see the chart on own instance info page @syuilo
- Client: Allow manual specification of device type @syuilo
- Client: updated UI icons @syuilo
- Client: self-hosting UI icons @syuilo
- Review NodeInfo user and post count content @xianonn
### Bugfixes
- Client: Fixed "There is a new note" display remains when switching timeline type @tamaina
- Client: fix UI size issue @tamaina
- Client: Setting instance information of notes to always show breaks the timeline @Johann150
- Client: Fixed an issue where the cursor position was not correct when replying depending on the environment @syuilo
- Client: Fixed a problem that switching the display range of instances does not work in the control panel users and files @syuilo
- Client: Fixed no update notification dialog @syuilo
- Client: Follows/Followers Visibility changes won't be saved unless clicking on an other checkbox @Johann150
- API: Fix API cast @mei23
- Add instance favicon where it's missing @solfisher
- Fixed problems with periodic resync of charts not working @syuilo
## 12.103.1
Released at: 2022/02/02
### Bugfixes
- Client: Fixed an issue with tooltip display position being incorrect.
## 12.103.0
Released at: 2022/02/02
### Improvements
- Client: Allow instance information to be reacquired from the coalition instance page.
### Bugfixes
- Client: Fixed an issue where images are hidden when reactions are updated after displaying NSFW images of a post.
- Client: Fixed problem with "Clip" page not opening
- Client: Fixed Trends widget not working
- Client: Fixed Federation widget not working
- Client: Fixed emoji picker not opening in reaction settings
- Client: Fixed issue with inclusion of mentions on DM page
- Client: hashtag retention field in submission form not working
- Client: Fixed side view not working
- Client: ensure that specified users does not get duplicates
- Add `img-src` and `media-src` directives to `Content-Security-Policy` for files and media proxy
## 12.102.1
Released at: 2022/01/27
### Bugfixes
- Fixed problem with chat not displaying
## 12.102.0
Released at: 2022/01/27
### Note
After the update, some custom emoji may not be displayed. In this case, batch exporting the emoji from the emoji management page and then batch importing them again from the control panel will fix the problem.
⚠ It is not compatible with zips exported prior to 12.102.0. Please update before exporting.
### Changes
- Room functionality has been removed.
- It will be restored as a separate repository at a later date.
- Reversi function has been removed.
- It will be restored as a separate repository at a later date.
- Chat UI has been removed.
- The number of files that can be attached to a note has been increased to 16.
- SVG custom emoji are now converted to PNGs for display
### Improvments
- Custom emoji batch editing function
- Batch import of custom emoji
- Posting form now allows temporary switching of posting accounts
- Unifying Misskey-specific IRIs in JSON-LD `@context`.
- Improved client performance
- Security Improvements
### Bugfixes
- Fixed handling of upload errors
## 12.101.1
Released at: 2021/12/29
### Bugfixes
- Fixed SVG emoji not displaying
- Fixed a case where the extension of exported emoji is false.
## 12.101.0
Released at: 2021/12/29
### Improvements
- Client: Improved accuracy of note previews
- Client: Improvement of MFM sparkle effect
- Client: Design adjustments
- Security Improvements
### Bugfixes
- Client: Fixed some components being hidden behind the scenes
- Fix html blockquote conversion
## 12.100.2
Released at: 2021/12/18
### Bugfixes
- Client: Fixed issue where Deck column increases/decreases were not properly reflected until page was reloaded.
- Client: Fixed some components being hidden behind the scenes
- Client: Fixed heavy load on custom emoji list page
## 12.100.1
Released at: 2021/12/17
### Bugfixes
- Client: Design coordination
- Client: Improved display of various menus and reaction picker on mobile
## 12.100.0
Released at: 2021/12/17
### Improvements
- Client: Improved display of various menus and reaction picker on mobile
### Bugfixes
- Client: Fixed some components hiding in the background
## 12.99.3
Released at: 2021/12/14
### Bugfixes
- Client: Fixed problem with autocomplete being hidden behind dialogs
## 12.99.2
Released at: 2021/12/14
## 12.99.1
Released at: 2021/12/14
## 12.99.0
Released at: 2021/12/14
### Improvements
- Added a user-level instance mute in user settings
- Added option to not include muted users in follow export
- Added option to not include unused accounts in follow export
- Custom emoji export function
- Chart performance improvements
- Allowed to exit from a group
### Bugfixes
- Client: Fixed a problem that prevented some functions from working when using a display with touch functionality and mouse operation.
- Client: Fixed an issue where clip settings could not be edited.
- Client: Fixed a problem with menus etc. being hidden behind windows
## 12.98.0
Released at: 12/03/2021
### Improvements
- API: /antennas/notes API now allows filtering by date
- Client: Confirmation dialog box when voting on a survey
- Client: Renote note detail page to the original note page.
- Client: Image popups can be closed by clicking on them.
- Client: Design adjustments
- Ability to remove followers
### Bugfixes
- Client: fixed the issue of tabs being displayed on the UI even when LTL and GTL are disabled
- Client: Fixed problem with incorrect error message for incorrect password in login
- Client: Corrected the order of users in the Reaction tooltip and Renote tooltip.
- Client: Fixed problem with master volume of sound not being saved correctly.
- Client: Fixed an inoperability issue in some environments when notifications are displayed.
- Client: Fixed problem with tooltips when tapped on mobile
- Client: Fixed an issue where, when replying to a note in a remote instance, if the target note contained a mentions to a user in that remote instance, it was sometimes passed on as a mentions to the local user in the reply text.
- Client: Fixed a problem in the image viewer where only a portion of the top image is displayed when the entire image is displayed.
- API: Fixed an internal error when retrieving users depending on conditions
### Changes
- Client: Moderator badge no longer displayed in notes
## 12.97.0 (2021-11-19)
### Improvements
- client: auto-folding also applies to renotes
- client: improved display of long threads
- client: also apply MFM to translations, so that it retains the formatting (line breaks, etc.) of the original text.
- client: add a confirmation dialog before deleting an account
### Bugfixes
- client: fixed an issue where "All" in user search did not work
- client: fixed the style of the Reaction List and Renote List tooltips
::: warning
Older releases are not translated yet. If you can, please edit this page to add them from the Japanese changelog on [GitHub](https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md).
:::

View File

@ -0,0 +1,10 @@
# Disabling the LTL/STL/GTL
In Misskey, it's possible to individually deactivate the LTL/STL/GTL.You can enable or disable these individual timelines via the instance control panel.
As all posts across your instance can be seen in both the LTL and STL, they have the advantage of making it easy for new users to find others that they are interested in without having to use the manual user search. At the same time however, this means that following other users to see their posts is less important and inappropriate posts may be shown to users more frequently. Additionally, the experience becomes more alike that of a Chatroom, which in turn may make it more difficult for new users to join in one conversations with those who have been taking part for a long time. As the weight of these advantages and disadvantages may vary from server to server, the choice of using or not using them has been left to each individual instance. If you feel like the demerits outweigh the merits, please consider deactivating these respective timelines.
::: warning
Disabling timelines can lead to confusion and possibly to a short-time drop in users.Therefore, please carefully consider the effects of disabling a timeline, and explain the reasoning for doing so in advance, so that your users can prepare by e.g. following users they often talk with on the LTL/STL.
:::
Additionally, Administrators / Moderators will be able to continue viewing these timelines even after they have been disabled.

View File

@ -0,0 +1,49 @@
---
description: 'If you run into a problem, please check this page first.'
---
# Troubleshooting
::: tip
Please also use the [Frequently asked questions](./faq.md) page.
:::
If you run into a problem, please check this page first. In the case that you can't find your problem here, or the steps described here don't solve your issue, please contact your server's administrator or [Report it as a bug](./report-issue).
## The client does not start
In most of the cases, this is due your used browser's or operating system's version being outdated. Please try updating your browser or operating system to the latest version and then try again.
Although this does not happen frequently, if your client will still not start after this, it is possible for the cache to be at fault.In this case, please try clearing your cache and then try again.
## Pages cannot be loaded
If your client does boot, but you get an error when trying to load a page, please check your network connection for errors.In addition, check that the server you are trying to access is not down.
Although this does not happen frequently, cases where the cache is at fault can happen.In this case, please try clearing your cache and then try again.
Any remaining problems are likely related to the server you are trying to access, so please contact its administrator.
## The client is slow
Please try the following:
- Activate "Reduce UI animations" in the client settings
- Deactivate "Use blur effect for modals" in the client settings
- Activate hardware acceleration in your browser's settings
- Upgrade the specs of your used device
## Parts of the UI are weird (For example, the background is transparent)
Broken UI display may be caused by the theme cache system when the UI is changed as part of an update. Pressing "Clear cache" in the settings will fix this.
::: warning
Specifically clear the "Client's" cache. Don't clear the "Browser's" cache.
:::
## The blinking light of a notification or Antenna won't go away
A blinking light indicates unread content.In cases where this light won't go away, there is usually unread content that has been pushed away by new incoming content. If you believe to have read all content, but the light still won't go away (likely a bug), you can forcibly mark all content as read via the user settings.
## The renote button is blocked out
Followers-only notes cannot be renoted.
## Specific parts of the Misskey Web UI are not being displayed
Problems like these can arise if you are using an Adblocker. For an optimized experience on Misskey, please turn it off.
## Some parts of the Misskey Web UI are untranslated
In most cases, this is simply a matter of the translation not having been done yet instead of being a bug.Please wait until the translation of this area has been completed. You can alternatively also [participate in translation](./misskey) yourself.

3
content/en-US/help.md Normal file
View File

@ -0,0 +1,3 @@
# Help
- [List of functions](./docs/features/index.md)

60
content/en-US/home.md Normal file
View File

@ -0,0 +1,60 @@
---
home: true
title: Misskey Hub
heroImage: /banner.svg
tagline: Official web site of open-source interplanetary micro-blogging platform Misskey
footer: Copyright &copy; 2023 syuilo and other contributors
actions:
- text: Getting started
link: ./docs/getting-started
type: primary
- text: What is Misskey?
link: ./docs/misskey
type: secondary
features:
- title: Distributed 🪐
details: Independent communities are run on multiple servers, and these are interconnected.
- title: Lightweight 🚀
details: Because it uses Node.js, which runs at high speed, it is lightweight even when federated with a large number of servers.
- title: Fun 🍮
details: It has distinctive features such as reactions and a highly customizable UI.
---
<ClientOnly>
<MkParticles/>
</ClientOnly>
<div class="contents">
# Sponsors
<div class="sponsors">
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank"><img src="/sponsors/rss3.svg" alt="RSS3"></a>
</div>
</div>
<style>
.hero {
position: relative;
z-index: 2;
}
.contents {
text-align: center;
}
.sponsors {
text-align: center;
margin-bottom: 32px;
}
.sponsors > .rss3 {
display: inline-block;
padding: 0px 20px;
background: #fff;
border: solid 1px #000;
}
.sponsors > .rss3 img {
display: inline-block;
height: 120px;
}
</style>

View File

@ -0,0 +1,17 @@
# List of instances
::: tip
If you would like to list your instance here, please feel free to contact us via [Discord](https://discord.gg/Wp8gVStHW3) or make a pull request on this site's [GitHub](https://github.com/misskey-dev/misskey-hub).
:::
<MkInstances/>
Alternatively, you can find an instance from the [unofficial list of instances](https://join.misskey.page/en-US/instances).
<style>
.mkAd {
display: none !important;
}
.aiModeButton {
display: none;
}
</style>

12
content/en-US/plugins.md Normal file
View File

@ -0,0 +1,12 @@
# Plugin Store
A collection of [plugins](./docs/features/plugin.md) that you can install in the Misskey web UI.
::: tip
If you would like to see your plugin here, please see [the section on submitting plugins](#Submitting-Plugins).
:::
## Plugins
- TODO
## Submitting Plugins
TODO

3
content/en-US/updates.md Normal file
View File

@ -0,0 +1,3 @@
# Recent changes
<!--[RECENT_UPDATES]-->

85
content/fr-FR/README.md Normal file
View File

@ -0,0 +1,85 @@
---
layout: Landing
description: "Misskey est une plateforme libre et décentralisée de média social qui sera toujours gratuite!"
gettingStarted: "Allons-y!"
learnMore: "En savoir plus"
keyFeatures:
open:
title: "Libre"
description: "Misskey est un logiciel libre auquel tout le monde peut contribuer et qui est utilisable gratuitement tout le temps et partout."
federated:
title: "Féderée"
description: "Misskey est une plateforme décentralisée où les communautées de différentes instances peuvent interagir ensemble."
multifunction:
title: "Puissante"
description: "Misskey est à la fois simple à prendre en main et plein de fonctions avancées."
customizable:
title: "Personnalisable"
description: "Personnalisez Misskey! Avec des thèmes, des extensions, des présentations, et plus encores, faites de Misskey la plateforme que vous voulez."
sections:
federatedSoftware:
title: "Misskey est une plateforme <b data-marker>décentralisée</b>."
description: "Misskey est une simple plateforme pour les propriétaires de serveurs souhaitant créer leur propre instance Misskey, et échanger ensemble! Il existe de grandes instances pour les foules, de plus petites pour les groupes et sous-cultures, et même des instances pour des personnes et leur cercle de proches. Vous voulez encore plus de contrôle? Vous pouvez créer votre propre instance sur votre serveur très simplement, coupant les ponts avec les grandes entreprises qui cherchent à vous espionner et vendre vos données. Misskey est destiné aux communautés et léchange, pas les enterprises et leur technologie. Des proches ne sont pas sur Misskey? Aucun soucis! Misskey fait partie du Fédivers (ActivityPub), vous pourrez interagir avec des personnes dautres plateformes comme Mastodon, PixelFed, PeerTube, et plus encore!"
features:
title: "Fonctionnalités"
description: "Misskey dispose dun large choix de fonctionnalités uniques!"
list:
note:
title: "Note"
description: "Sur Misskey, les publications sont appelées des «Notes». Répondez, citez, ajoutez des émoticônes personnalisés, du texte animé, des avertissements de contenu, des images, des vidéos, des GIFs, des fichiers audio, et plus encore!"
reaction:
title: "Réactions"
description: "Vous pouvez ajouter des émoticônes à nimporte quelle publication! Adieu la limitation dun bouton «Jaime», partagez vos émotions via un simple bouton."
theme:
title: "Thème"
description: "Pourquoi se limiter à un thème clair et un thème sombre alors que vous contrôlez toutes les couleurs? Utilisez les fonctions de personnalisation intuitives de Misskey pour le rendre unique."
charts:
title: "Diagrammes"
description: "Besoin dinformations? Misskey offre des diagrammes pour savoir exactement ce quil se passe en direct."
federation:
title: "Féderation"
description: "Pas sur Misskey? Pas de soucis! Non seulement les instances Misskey peuvent interagir, mais vous pouvez également communiquer avec dautres réseaux comme Mastodon et PixelFed!"
drive:
title: "Drive"
description: "Vous détestez perdre votre contenu? Drive vous offre un stockage en ligne, puissant et contrôlé, directment dans votre média social!"
thread:
title: "Fils"
description: "Vous avez la parlotte? Faites un fil! Chaque publication peut contenir jusquà 3000caractères par défaut, de quoi faire durer vos conversations durant de longues heures."
widgets:
title: "Extensions"
description: "Disposez de nombreuses fonctions à portée de doigt avec plus dune douzaine dextensions personnalisables!"
gettingStarted:
title: "Rejoignez Misskey aujourdhui!"
find:
title: "Trouvez une instance!"
list: "Liste dinstances"
create:
title: "Créer votre instance"
guide: "Guide dinstallation"
docs:
title: "En savoir plus"
docs: "Consulter la documentation"
donation:
title: "Donation"
description: "Misskey étant un logiciel gratit, son développement repose sur vos dons. Si vous aimez Misskey, montrez le via une donation qui nous permettra de continuer à garder Misskey fabuleux durant les années à venir!"
sponsors:
title: "Sponsors"
---
<!--
<style>
.ai {
display: none;
}
.screenshot.desktop {
content: url("/screenshot-desktop-en.png");
}
.screenshot.mobile {
content: url("/screenshot-mobile-en.png");
}
.widgets {
content: url("/top-features-widgets-en.png");
}
</style>
-->

View File

@ -0,0 +1,50 @@
---
description: 'Liste de logos, icônes, et autres ressources Misskey.'
---
# Liste de ressources
Voici une liste de logos, icônes, et autres ressources Misskey.
::: tip
Ces ressources sont libres dutilisation sous la licence **CC BY-NC-SA**!🎉
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="CC BY-NC-SA" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
:::
::: tip
Toutes les ressources sont disponibles dans [misskey-dev/assets](https://github.com/misskey-dev/assets).
:::
## Logo
<a class="asset" href="https://raw.githubusercontent.com/misskey-dev/assets/main/misskey.svg" target="_blank" download>
<img src="https://raw.githubusercontent.com/misskey-dev/assets/main/misskey.svg">
</a>
## Icône
<a class="asset" href="https://raw.githubusercontent.com/misskey-dev/assets/main/icon.png" target="_blank" download>
<img src="https://raw.githubusercontent.com/misskey-dev/assets/main/icon.png">
</a>
<style>
.asset {
display: block;
background-color: #777;
background-image:
linear-gradient(45deg, #999 25%, transparent 25%),
linear-gradient(135deg, #999 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, #999 75%),
linear-gradient(135deg, transparent 75%, #999 75%);
background-size: 25px 25px; /* Must be a square */
background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px; /* Must be half of one side of the square */
animation: asset-bg 0.5s linear infinite;
margin: 1em 0;
padding: 16px;
text-align: center;
}
@keyframes asset-bg {
0% {background-position: 0 0, 12.5px 0, 12.5px -12.5px, 0px 12.5px;}
100% {background-position: 12.5px 12.5px, 25px 12.5px, 25px 0px, 12.5px 25px;}
}
</style>

View File

@ -0,0 +1,17 @@
# Configurer un CDN
En publiant votre instance Misskey, nous recommandons dutiliser un CDN comme [Cloudflare](https://www.cloudflare.com/).
Utiliser un CDN présente les avantages suivants :
- Le contenu statique peut être mis en cache, ce qui réduit la charge sur votre serveur ;
- Ladresse IP de votre serveur est moins exposée, ce qui limite les risques dattaque DoS et autres.
## Mise en cache
Misskey Web est complétement statique et ne nécessite pas de serveur. Il peut de fait être intégralement mis en cache par un CDN.
LAPI Misskey ne peut pas être mise en cache.
Vous devez configurer loption suivante dans votre CDN :
- Mettre en cache toutes les requêtes sauf `/api/*`.
::: tip
Pas besoin de vider le cache lorsque vous mettez à jour Misskey.
::::

View File

@ -0,0 +1,2 @@
# Modifier la Réaction par défaut
Vous pouvez changer la réaction par défaut, un favori ActivityPub, de '👍' à '⭐' en changent le booléen `meta.useStarForReactionFallback` dans la base de données.

View File

@ -0,0 +1,109 @@
# Émoticônes personnalisées
Les émoticônes personnalisées peuvent être modifiées par ladministration et la modération via les paramètres dinstance dans le menu correspondant.
Par défaut, vous verrez une liste des émoticônes installées localement.
Au démarrage, cette liste sera vide, mais vous pouvez lalimenter de différentes manières.
## Copier depuis dautres instances
Les émoticônes peuvent être facilement copiées depuis dautres instances.
Pour cela, utiliser longles «Remote» dans les paramètres.
Vous pouvez alors chercher des émoticônes par nom ou instance.
Cliquez sur lémoticône de votre choix pour ouvrir un menu qui vous permettra de limporter.
À noter que les droits dauteur sappliquent et quil est de votre responsabilité de vous assurer que vous pouvez lutiliser.
## Import individuel
Si vous disposez dune image que vous souhaiter utiliser, celle-ci peut être importée.
Cela fonctionne comme en joignant des fichiers à une note :
Vous pouvez choisir de téléverser un nouveau fichier, et le sélectionner depuis votre Drive Misskey ou une URL distante.
::: warning
En important une émoticône sur votre Drive, le fichier y restera.
Misskey ne fait pas de copies de ce fichier et si vous le supprimez celui-ci sera cassé.
:::
Lémoticône sera ajoutée à linstance et vous pourez la modifier ou supprimer.
## Import en masse
Les émoticônes peuvent être importées en masse à partir dun format spécial au sein dune archive ZIP.
Cette fonction est disponible dans le menu du coin supérieur droit de longlet démoticônes personnalisées.
::: warning
Limport en masse peut écraser les émoticônes existant et créer de nombreux problèmes sur linstance.
Assurez vous de nimporter que depuis des sources de confiance, voire que vous aurez-vous même exporté dans lidéal.
:::
### Format émoticône empaquetée
À la racine se trouve un fichier `meta.json` contenant les informations à propos des émoticônes contenus.
Un exemple de définition de type pour ce fichier serait comme suit, où `Meta` est la structure du fichier complet :
```typescript
class Meta {
metaVersion: number;
host: string;
/**
* Date and time representation returned by ECMAScript `Date.prototype.toString`.
*/
exportedAt: string;
emojis: Emoji[];
}
class Emoji {
downloaded: boolean;
fileName: string;
emoji: {
id: string;
updatedAt: string;
name: string;
host: null;
category: string;
originalUrl: string;
publicUrl: string;
uri: null;
type: string;
aliases: string[];
};
}
```
Les champs de `Meta` ne sont actuellement pas utilisés ou vérifiés lors dun import à lexception de `emojis`.
Pour chaque `Emoji` :
- `downloaded` : doit toujours être `true`, à défaut lémoticône ne sera pas importée ;
- `fileName` : nom du fichier au sein de larchive ;
- `emoji` : les données associées comme stockées dans la base de données. Généralement les champs ne sont pas vérifiés.
Seul les suivants sont utilisés :
- `name` : nom de lémoticône (ex : `blobfox` sil faut taper `:blobfox:` pour utiliser lémoticône) ;
Si une émoticône utilisait ce nom, elle ** sera écrasée**!
- `category` : catégorie de lémoticône ;
- `aliases` : liste de mots pouvant être utilisés comme alias. Référencés dans linterface administration comme «étiquettes».
## Modifier et supprimer
Les propriétés dune émoticône peuvent être modifiése en la sélectionnant dans la liste locale.
Un menu permet de la modifier ou supprimer.
::: warning
En supprimant une émoticône personnalisées, les anciennes notes seront modifiées.
:::
À noter que les émoticônes distantes ne peuvent être modifiées ou supprimées.
Chaque émoticône peut avoir un nom, une catégorie, et plusieurs étiquettes.
La catégorie est utilisée pour la structure de lassistant de sélection.
Les étiquettes sont utilisées comme noms altenatifs permettant de trouver une émoticône.
Une fois les modifications faites, validez les en cliquant sur le symbole dans le coin supérieur droit.
### Modification en masse
Les émoticônes peuvent être modifiées en masse en cochant la case sous le champ de recherche.
Cela permet de sélectionner les émoticônes plutôt que douvrir la fenêtre de modifications.
Les options de modifications seront disponibles via un bouton à proximité de la case à cocher.
Pour revenir au comportement normal, décocher la case à nouveau.

View File

@ -0,0 +1,86 @@
# Configuration Nginx
1. Créez `/etc/nginx/conf.d/misskey.conf` ou `/etc/nginx/sites-available/misskey.conf` et y insérer lexemple ci-dessous.\
(Le nom du fichier peut être modifié.)
2. Faites les modifications suivantes :
1. Remplacez example.tld avec votre nom de domaine ;\
`ssl_certificate` and `ssl_certificate_key` should be the path to the certificate obtained from Let's Encrypt.
2. Si vous utilisez un CDN, comme Cloudflare, retirez les 4lignes à partir de «If it's behind another reverse proxy or CDN, remove the following» ;
3. Si vous créez `/etc/nginx/sites-available/misskey.conf`, pensez à ajouter un symlink `/etc/nginx/sites-enabled/misskey.conf`.\
`sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf`
4. Lancez `sudo nginx -t` pour vérifier le bon chargement du fichier de configuration ;
5. Lancez `sudo systemctl restart nginx` pour redémarrer nginx.
# Exemple de configuration 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,6 @@
# Comment utiliser GitHub Actions pour pousser vers un Docker Hub
::: warning
Cette page nest pas encore traduite. Le contenu est disponible en [japonais exclusivement](/docs/admin/push-docker-hub.md).
En attendant, essayez dutiliser un traducteur automatique.
:::

View File

@ -0,0 +1,6 @@
# Guide de dépannage
::: warning
Cette page nest pas encore traduite. Vous trouverez le contenu dans la version [japonaise exclusivement](/docs/admin/troubleshooting.html).
En attendant, veuillez utiliser un traducteur automatique.
:::

View File

@ -0,0 +1,73 @@
---
description: MiAuth導入以前のアクセストークン取得方法について説明する。
---
# アプリ作成方式でのアクセストークン取得方法
MiAuth導入12.27.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,40 @@
{
refs: {},
errors: {
'1384574d-a912-4b81-8601-c7b1c4085df1': {
id: '1384574d-a912-4b81-8601-c7b1c4085df1',
code: 'CREDENTIAL_REQUIRED',
description: 'Credential-required endpoint requested without credentials.',
},
'd5826d14-3982-4d2e-8011-b9e9f02499ef': {
id: 'd5826d14-3982-4d2e-8011-b9e9f02499ef',
code: 'RATE_LIMIT_EXCEEDED',
description: 'Temporarily unavailable due to rate limit restrictions.',
},
'56f35758-7dd5-468b-8439-5d6fb8ec9b8e': {
id: '56f35758-7dd5-468b-8439-5d6fb8ec9b8e',
code: 'ACCESS_DENIED',
description: 'You do not have access privileges.',
},
'1370e5b7-d4eb-4566-bb1d-7748ee6a1838': {
id: '1370e5b7-d4eb-4566-bb1d-7748ee6a1838',
code: 'PERMISSION_DENIED',
description: 'The given credential does not have the required permissions.',
},
'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370': {
id: 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370',
code: 'YOUR_ACCOUNT_SUSPENDED',
description: 'Unavailable due to your account has been suspended.',
},
'3d81ceae-475f-4600-b2a8-2bc116157532': {
id: '3d81ceae-475f-4600-b2a8-2bc116157532',
code: 'INVALID_PARAM',
description: 'The request contains incorrect parameters.',
},
'5d37dbcb-891e-41ca-a3d6-e690c97775ac': {
id: '5d37dbcb-891e-41ca-a3d6-e690c97775ac',
code: 'INTERNAL_ERROR',
description: 'Internal error occurred. Please contact the administrator if the error persists.',
},
},
}

View File

@ -0,0 +1,121 @@
---
description: 'Misskey offre une API pour développer son propre client Misskey, des services, des bots, etc… («Applications».'
---
# API Misskey
Misskey dispose dune APi pour développer son propre client Misskey, des services liés, des bots, etc… («Applications»).
Il existe également un flux API pour créer des applications avec des fonctions en temps réel.
::: tip
En utilisant le SDK officiel Misskey ou une librairie tierce, vous pouvez utiliser lAPI de manière à simplifier des étapes décrites dans ce document.
Voir [ici](TODO) pour plus dinformations à propos des librairies.
:::
Pour commencer à utiliser lAPI vous aurez besoin une **clé daccès** associée à un compte.
Ce document vous accompagne dans lobtention de cette clé et montre comment lutiliser pour un usage basique.
## Obtenir une clé daccès
LAPI requiert une clé daccès pour ses requêtes.
Une clé daccès est un ensemble de données associée à une personne, lidentifiant comme utilisant lAPI et contrôlant les opérations qui sont effectuées.
::: tip
La clé est nominative et ne peut être utilisée que par une personne, plusieurs clés peuvent être possédées par une personne.
:::
Vous pouvez facilement [obtenir votre clé daccès](#Méthode-manuelle), ou une [clé pour une personne utilisant votre application](#Demander-une-clé-daccès)..
### Méthode manuelle
Vous pouvez créer votre propre clé daccès via linterface Misskey Web dans la section API des paramètres.
::: warning
Ne communiquez pas cette clé.
:::
### Demander une clé daccès
Pour obtenir une clé daccès pour une personne utilisant votre application, suivre les étapes suivantes :
::: tip
以下に説明する方法は、アプリを作成せずインスタントにアクセストークンを発行する、MiAuthと呼ばれるものです。
[アプリ作成方式でのアクセストークン取得方法もあります(旧来型)。](./app)
:::
#### Étape 1
Générer un UUID, ci-après dénommé **ID session**.
::: warning
Cet ID session est à usage unique.
:::
#### Étape 2
Le formulaire didentification de lapplication doit safficher dans le navigateur. Cela peut être fait via une URL de format :
```:no-line-numbers
https://{host}/miauth/{session}
```
- `{host}` est lhôte de linstance, généralement entré manuellement ;
- `{session}` est lID session.
Vous pouvez également ajouter des options telles que des paramètres dans lURL :
| nom | description |
| ---- | ---- |
| `name` | nom de lapplication |
| `icon` | URL de licône de lapplication |
| `callback` | LURL de redirection après identificaton, avec lID session en tant que `session`. |
| `permission` | Les permissions requises par lapplication. <br>Liste les permissions à demander, séparées par `,`. La liste complète est consultable [ici](TODO). |
```:no-line-numbers
https://misskey.io/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f?name=MyApp&callback=https%3A%2F%2Fmyapp.example.com%2Fcallback&permisson=write:notes,write:following,read:drive
```
#### Étape 3
Après lidentification, une requête POST à une URL du format suivant retournera en un JSON contenant la clé daccès :
```:no-line-numbers
https://{host}/api/miauth/{session}/check
```
- `{host}` est lhôte de linstance ;
- `{session}` est lID session.
Les propriétés incluses dans la réponse sont les suivantes :
| nom | description |
| ---- | ---- |
| `token` | clé daccès |
| `user` | information sur la personne |
## Utilisation de lAPI
Une fois la clé en main, vous pouvez utiliser lAPI pour faire des requêtes.
::: tip
- Toutes les API HTTP sont POST, et les requête comme les réponses sont au format JSON (à lexception de drive/files/create ;
- Indiquez `Content-Type: application/json` dans lentête de requête ;
- La clé daccès est dans le corps de requête JSON avec comme valeur de name `i`.
:::
Exemple de corps avec une clé daccès pour meta :
```json
{
"i": "HogEFugA1341",
"detail": false
}
```
La clé daccès est incluse dans le corps de requête JSON comme paramètre `i`.
Pour plus dinformations à propos de lAPI voir [référence API](./endpoints.html).
::: warning
Misskey nutilise pas REST.
:::
En plus de lAPIHTTP, Misskey fourni un flux API. Plus dinformations à ce sujet [ici](.streaming/).
::: tip
Votre instance Misskey dispose de sa propre documentation dAPI à `/api-doc`.
:::

View File

@ -0,0 +1,20 @@
---
description: "Canal des notes du fil public global."
---
# `globalTimeline`
Canal des notes venant du fil public global.
## Paramètres
Aucun
## Évènements
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorsquune nouvelle note est ajoutée dans le fil public global.
## Opérations
Aucune

View File

@ -0,0 +1,20 @@
---
description: "Canal de notes du fil daccueil."
---
# `homeTimeline`
Canal de notes du fil daccueil.
## Paramètres
Aucun
## Évènements
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorsquune nouvelle note est ajoutée au fil daccueil.
## Opérations
Aucune

View File

@ -0,0 +1,20 @@
---
description: "Canal de notes venant du fil social."
---
# `hybridTimeline`
Canal de notes venant du fil social.
## Paramètres
Aucun
## Évènements
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorsquune nouvelle note est ajoutée au fil social.
## Opérations
Aucune

View File

@ -0,0 +1,3 @@
# Liste des canaux
<MkIndex :sort="(a, b) => b.name - a.name"></MkIndex>

View File

@ -0,0 +1,20 @@
---
description: "Canal de notes du fil public local."
---
# `localTimeline`
Canal de notes du fil public local.
## Paramètres
Aucun
## Évènements
### `note`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorsquune nouvelle note est ajoutée dans le fil public local.
## Opérations
Aucune

View File

@ -0,0 +1,93 @@
---
description: "Ce canal fournit des informations basiques."
---
# `main`
Ce canal fournit des informations basiques.
## Paramètres
Aucun
## Évènements
### `notification`
<MkSchemaViewer :schema="{
$ref: 'misskey://Notification'
}"/>
Lorsque vous recevez une notification.
### `mention`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorquun message est envoyé.
### `reply`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lors de la réception dune réponse.
### `renote`
<MkSchemaViewer :schema="{
$ref: 'misskey://Note'
}"/>
Lorquune de vos notes est renotée.
### `follow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Lorqsue vous vous abonnez à une autre personne.
### `followed`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Lorsquune autre personne vous suit.
### `unfollow`
<MkSchemaViewer :schema="{
$ref: 'misskey://User'
}"/>
Lorsque vous arrêtez de suivre une autre personne.
### `messagingMessage`
<MkSchemaViewer :schema="{
$ref: 'misskey://MessagingMessage'
}"/>
Lorsquun message instantané est reçu.
### `readAllNotifications`
Lorsque toutes les notifications ont été lues.
### `unreadNotification`
Lorsquil y a de nouvelles notifications.
### `unreadMention`
Lorsquil y a une nouvelle mention.
### `readAllUnreadMentions`
Lorsque toutes les mentions ont été vues.
### `unreadSpecifiedNote`
Lorquil y a de nouvelles notes directes.
### `readAllUnreadSpecifiedNotes`
Lorsque toutes les notes directes ont été lues.
### `unreadMessagingMessage`
Lorsquil y a un nouveau message instantané.
### `readAllMessagingMessages`
Lorsque ltous les messages instantanés ont été lus.
## Opérations
Aucune

View File

@ -0,0 +1,192 @@
---
description: 'LAPI de flux fournit des informations en temps réel (ex : nouvelles notes, réactions, abonnements, etc…) ainsi que dautres opérations.'
---
# API de flux
::: tip
Assurez-vous davoir lu la [documention API Misskey](../index.md) au préalable.
:::
LAPI de flux fournit des informations en temps réel (ex : nouvelles notes, réactions, abonnements, etc…) ains que dautres opérations.
## Se connecter au flux
Pour utiliser lAPI vous devez vous connecter au serveur Misskey via **websocket**.
LURL de celui-ci ressemble à :
```:no-line-numbers
wss://{host}/streaming?i={token}
```
- `{host}` est le nom de lhôte de linstance ;
- `{token}` est la clé daccès.
::: tip
Vous pouvez vous connecter sans clé daccès, mais cela limitera les informations reçues et les opérations possibles.
:::
Une fois la connexion établie, vous pourrez vous abonner aux publications décrites ci-dessous. Il nest pas encore possible, par exemple, de recevoir les nouvelles publications de votre fil.
Pour recevoir ces évènements, vous devez rejoindre un **canal** sur le flux, tel que décrit ci-dessous.
**Toutes les données sont au format JSON**
## Canal
LAPI de flux Misskey utilise un concept de canaux. Ce mécanisme sépare les informations reçus et envoyées.
En rejoignant des canux, vous aurez la possibilité de recevoir et envoyer de nombreuses informations.
::: tip
Vous pouvez rejoindre plusieurs canaux simultanément via un flux unique.
:::
Les sections suivantes décrivent comment utiliser les canaux. Pour voir quels canaux sont disponible, se référer à la [liste des canaux](./channel/index.md).
### Rejoindre un canal
Pour rejoindre un canad, envoyez les données JSON suivant sur le flux :
```js
{
type: 'connect',
body: {
channel: 'xxxxxxxx',
id: 'foobar',
params: {
...
}
}
}
```
- `channel` est le nom du canal auquel se connecter. Les type de canaux sont décrits par la suite ;
- `id` est un identifiant arbitraire pour interragir avec ce canal. Il est nécessaire pour identifier de quel canal le message provient, un flux pouvant contenir différent canaux. Cet identifiant peut être un UUID ou un nombre aléatoire ;
- `params` sont les paramètres requis pour rejoindre un canal. Chaque canal requiert des paramètres propres. Si un canal nen demande pas, alors cette propriété peut être laissée vide.
::: tip
Lidentifiant nest pas unique par canal mais par connexion car un canal peut être utilisé plusieurs fois avec différents paramètres.
:::
### Recevoir des messages de canaux
Lors de la réception dun message indiquant une nouvelle publication sur un canal, vous saurez en temps réel quune nouvelle publication est disponible sur votre fil.
Quand un canal génère un message, les données JSON suivantes sont envoyées :
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
- `id` est lidentifiant utilisé lors de la connexion au canal. Cela vous permet de savoir de quel canal le message vient ;
- `type` est le type de message. Selon le canal, celui-ci diffère ;
- `body` contient le contenu du message, celui-ci diffère selon le canal.
### Envoyer un message via un canal
Sur certains canaux, il est également possible denvoyer des messages et deffectuer dautres opérations en plus de la réception.
Pour envoyer un message à un canal, envoyez les données JSON suivantes :
```js
{
type: 'channel',
body: {
id: 'foobar',
type: 'something',
body: {
some: 'thing'
}
}
}
```
- `id` est lidentifiant utilisé lors de la connexion au canal. Cela vous permet dindiquer à quel canal le message est destiné ;
- `type` est le type de message, celui-ci diffère selon les canaux ;
- `body` contient le corps du message, celui-ci diffère selon les canaux.
### Se déconnecter dun canal
Pour se déconnecter dun canal, envoyez les données JSON suivantes :
```js
{
type: 'disconnect',
body: {
id: 'foobar'
}
}
```
- `id` est lidentifiant utilisé lors de la connexion au canal. Cela permet dindiquer de quel canal se déconnecter.
## Capturer des notes
Misskey propose un mécanisme de capture de note. Cela permet de recevoir un flux dévènements pour une note spécifique.
Par exemple, si vous affichez un fil et quune personne réagit à une des publications, le client ne peut pas savoir de quelle publication il sagit et il nest pas possible dafficher la réaction en temps réel.
En capturant une note, vous recevrez les évènements qui y sont liés, et pourrez afficher les réactions en temps réel.
La section suivante décrit lusage de cette fonction. Pour voir les type dévènements sont capturables, vour la [liste](./note-capture-events.md).
### Capturer une note
Pour capturer une note, envoyer les données JSON suivantes :
```js
{
type: 'subNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
- `id` est lidentifiant de la note à capturer.
En envoyant ce message, vous demandez à Misskey de capturer la note, et les évènements qui y sont liés vous seront relayés.
Si une note reçoit une réacton, vous recevrez un message au format suivant :
```js
{
type: 'noteUpdated',
body: {
id: 'xxxxxxxxxxxxxxxx',
type: 'reacted',
body: {
reaction: 'like',
userId: 'yyyyyyyyyyyyyyyy'
}
}
}
```
- `body.id` est lidentifiant de la note ;
- `body.type` est letype dévènement ;
- `body.body` contient les détails de lévènement.
### Dé-capturer une note
Pour ne plus recevoir dévènements liés à une note, par exemple si celle-ci nest plus affichée à lécran. envoyez les données JSON suivantes :
```js
{
type: 'unsubNote',
body: {
id: 'xxxxxxxxxxxxxxxx'
}
}
```
- `id` est lidentifiant de la note.
Une fois ce message envoyé, les évènements liés à cette note ne vous seront plus transmises.

View File

@ -0,0 +1,48 @@
# Évènements de capture de note
## `reacted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
reaction: {
type: 'string',
description: 'type of reaction',
},
userId: {
type: 'string',
description: 'ID of the user who made the reaction',
},
}
}"/>
Lorsquune personne réagit à une note.
## `pollVoted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
choice: {
type: 'number',
description: 'choice ID',
},
userId: {
type: 'string',
description: 'ID of the user who cast the vote',
},
}
}"/>
Lorsque quune personne participe à un sondage.
## `deleted`
<MkSchemaViewer :schema="{
type: 'object',
properties: {
deletedAt: {
type: 'string',
description: 'deletion time',
},
}
}"/>
Lorsquune note est supprimée.

View File

@ -0,0 +1,4 @@
# Donations à ce projet
Misskey nest pas une entreprise, et reste gratuit à utiliser grâce à vos dons. (Selon linstance, des revenus peuvent être générés via des publicités, mais ceux-ci vont directement à ladministration de linstance et non à léquipe de développement de Misskey.) Les dons assurent la pérénnité du projet et son développement, et constituent une autre forme de soutenir Misskey. Généralement acceptés via [Patreon](https://www.patreon.com/syuilo), en faisant un don votre nom peut apparaître sur la [page À Propos](/about-misskey) de Misskey.
À cela sajoute que ladministration des serveurs nest généralement pas rémunéré. La maintenance du serveur ayant un certain coût, nous vous invitons à également aider ladministration de votre serveur. Bien que nayant pas de lien direct avec le développement de Misskey, cest lexistence de ces serveurs qui matérialise ce projet rendant leur activité aussi importante que Misskey même.

28
content/fr-FR/docs/faq.md Normal file
View File

@ -0,0 +1,28 @@
# Foire Aux Questions
Ce document liste les réponses aux questions fréquentes au sujet de lusage de Misskey. Les réponses concernant le projet Misskey dans son ensemble sont consultables [ici](../misskey#frequently-asked-questions).
## «Existe-til une application Android/iOS? »
Bien quil nexiste pas dapplication Misskey officielle pour dautres systèmes dexploitations, il existe de nombreuses applications tierces. Pour les détails, voir [ici](./apps).
À noter que les fonctionnalités de ces applications seront nécessairement en retard par rapport au client Web officiel, à moins que vous ne souhaitiez vraiment utiliser une application, nous vous recommendons dutiliser le client Web officiel. Celui-ci prend en charge PWA ce qui rend possible son utilisation en tant quapplication. Pour plus de détails, voir [ici](todo).
## «Est-il possible de se connecter via un client Mastodon? »
Misskey nest pas compatible avec lAPI Mastodon, sauf exceptions, il nest pas possible dutiliser un client Mastodon pour se connecter à Misskey.
## «Comment suivre des personnes dautres serveurs? »
Sélectionnez la barre de recherche dans le menu et entrez leur pseudonyme en incluant leur serveur (ex : `@syuilo@misskey.io`).
## «Comment annuler une ReNote? »
Sélectionnez les points de suspension (« … ») à proximité de la date de publication puis «Annuler ReNote». Pour plus de détails à propos des ReNotes, voir [ici](../features/note#renote).
## «Je ne veux pas de prévisualisation des liens»
La prévisualisation des liens URL peut être évitée à laide de MFM. Un pense-bête MFM est constultable dans votre instance via lURL `https://NomDeVotreInstance/mfm-cheat-sheet`.
## «Je veux ajouter des émoticônes personnalisés»
Seule ladministration du serveur peut ajouter, modifier, et supprimer des émoticônes personnalisées. Cest auprès delle quil faut se renseigner.
## «Je veux développer un Bot»
Le développement de Bot est possible via lAPI Misskey. Voir [ici](../docs/api).
## «Quel service est utilisé pour la fonction de traduction de Note? »
[DeepL](https://www.deepl.com/) est utilisé pour cela.

View File

@ -0,0 +1,13 @@
# Publicités
Misskey peut afficher des publicités dans les fils et dautres emplacements de linterface si activé par ladministration.
Vous pouvez réduire la fréquence dapparition dune publicité en cliquant dans son coin supérieur droit.
::: tip
Si le nombre total de publicités dune instance est limité, une publicité peut apparaître souvent même si vous choisissez de réduire sa fréquence dapparition.
:::
## Configurer les publicités (Administration)
Vous pouvez ajouter, modifier, et supprimer les publicités via le tableau de bord de votre instance.
Vous pouvez choisir limage, lURL de destination, la forme, et la fréquence dapparition de la publicité.

View File

@ -0,0 +1,8 @@
# Antenne
Antenne est une fonction qui vous permet de définir des conditions pour un fil personnalisé et recevoir automatiquement les notes y correspondant.
Les conditions peuvent inclure ou exclure certains mots-clés et étiquettes en combinaison avec dautres options.
Si une note remplissant ces conditions est publiée, elle sera automatiquement ajoutée àu fil de cette antenne.
Pour créer une antenne, cliquez sur «Ajouter» sur la page de gestion des antennes et remplissez les champs pour la personnaliser.

View File

@ -0,0 +1,72 @@
# Diagrammes
Misskey peut générer et afficher des diagrammes à partir des nombreuses données fédérées dune instance.
Les diagrammes vous permettent davoir une interprétation visuelle de lutilisation, létat de fédération, et lactivité de chaque membre.
Les diagrammes dune instance sont consultables via la page d*informations dune instance* (acessible en cliquant sur le logo de linstance dans le menu de navigation).
Ci-dessous sont décrit chaque diagramme et son contenu.
## Diagramme de fédération
Ce diagramme indique les informations sur les instances fédérées.
### Publication
Le nombre dinstances vers lesquelles sont transmises les activitées de cette instance.
### Abonnement
Le nombre dinstances depuis lesquelles sont reçues les activités.
### Réception
Le nombre dinstances qui ont envoyées des activités sur cette instance.
### Envoi
Le nombre dinstances qui ont ont reçu une activité de cette instance.
### En pause
Le nombre dinstance où une erreur empêche la reception dactivités.
## Diagramme de membres en activité
Diagramme de lactivité des membres de cette instance.
### Lecture & Écriture
Le nombre de membres ayant lu et écrit.
### Lecture
Le nombre de membres ayant lu.
### Écriture
Le nombre de membres ayant écrit.
### < Semaine
Le nombre de comptes de moins dune semaine.
### < Mois
Le nombre de comptes de moins dun mois.
### < An
Le nombre de comptes de moins dun an.
### > Semaine
Le nombre de comptes de plus dune semaine.
### > Mois
Le nombre de comptes de plus dun mois.
### > An
Le nombre de comptes de plus dun an.

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